
Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/1446/m/fr/php/Embeder/Embeder.php on line 419

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/1446/m/fr/php/Embeder/Embeder.php on line 419

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/1446/m/fr/php/Embeder/Embeder.php on line 421
{"title":"PHRpdGxlPkZvcmQgbmV1ZnMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIFNvcmVsLVRyYWN5IHwgU29yZWwtVHJhY3kgRm9yZDwvdGl0bGU+","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"CgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQknaWZyYW1lX2FwaScgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycgfHwga2V5ID09ICdpZnJhbWVfYXBpJyl7CgkJCQkJCQkJCXNhKCdkYXRhLW90LWlnbm9yZScsIHRydWUpOwoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTsKCQkJCQkJCQl9IGVsc2UgaWYoY3VycmVudENvbnNlbnQgPT0gbnVsbCB8fCBjdXJyZW50Q29uc2VudC5pbmRleE9mKHVybENhdEFycltrZXldKSA9PSAtMSl7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvcGxhaW4nKTsKCQkJCQkJCQkJc2EoJ2NsYXNzJywgJ29wdGFub24tY2F0ZWdvcnktJyArIHVybENhdEFycltrZXldKTsKCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYShuLCB2KTsKCQkJfQoJCQlyZXR1cm4gczsKCQl9CgkJZnVuY3Rpb24gZ2V0Q29uc2VudCgpewoJCQlsZXQgbmFtZSA9ICdkMmNfY29va2llX2NvbnNlbnQnICsgJz0nOwoJCQlsZXQgY2EgPSAoJycrZG9jdW1lbnQuY29va2llKS5zcGxpdCgnOycpOwoJCQlmb3IobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHsKCQkJCWxldCBjID0gY2FbaV07CgkJCQljID0gYy50cmltKCk7CgkJCQlpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHsKCQkJCQl0cnl7CgkJCQkJCWMgPSBkZWNvZGVVUklDb21wb25lbnQoIGMgKTsKCQkJCQl9IGNhdGNoKCBlICkKCQkJCQl7CgkJCQkJCWNvbnNvbGUubG9nKCBlICk7CgkJCQkJCXJldHVybiBudWxsOwoJCQkJCX0KCQkJCQlyZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gbnVsbDsKCQl9Cgl9KShkb2N1bWVudCk7CgoJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewoJLy8gTGlzdGVuIGZvciBjaGFuZ2VzIHRvIHRoZSBET00KCQlsZXQgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKCQkJbXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24obXV0YXRpb24pIHsKCQkJCWlmIChtdXRhdGlvbi5hZGRlZE5vZGVzICYmIG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoID4gMCkgewoJCQkJCS8vIENoZWNrIGlmIG91ciBzY3JpcHQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIERPTQoJCQkJCWZvciAobGV0IGkgPSAwOyBpIDwgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykgewoJCQkJCQlsZXQgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbaV07CgkJCQkJCWlmIChub2RlLm5vZGVUeXBlID09PSAxICYmIG5vZGUudGFnTmFtZSA9PT0gJ1NDUklQVCcgJiYgbm9kZS5zcmMgJiYgbm9kZS5zcmMuaW5jbHVkZXMoJ2NhbmFkYS5kaWdpdGFsLWludGVydmlldy5jb20nKSAmJiB0eXBlb2YgT25lVHJ1c3QgIT09ICd1bmRlZmluZWQnKSB7CgkJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCQkJCQkJdHJ5e0RpZ2l0YWxJbnRlcnZpZXcuTGF1bmNoZXIuZW5hYmxlTGF1bmNoUG9pbnRzKCk7fWNhdGNoKGUpe30KCQkJCQkJCX0sIDEwMDApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9KTsKCQl9KTsKCQkvLyBTdGFydCBvYnNlcnZpbmcgdGhlIGRvY3VtZW50IHdpdGggdGhlIGNvbmZpZ3VyZWQgcGFyYW1ldGVycwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7CgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5oZWFkLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCX0pOwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKCSgoZCkgPT4gewoJCWNvbnN0IGNlID0gZC5jcmVhdGVFbGVtZW50OwoJCWxldCB1cmxDYXRBcnIgPSB7CgkJCSdjbGFyaXZveS5jb20nIDogJ0MwMDAyJywKCQkJJ2RlYWxlci1sZWFkcy5jYScgOiAnQzAwMDMnLAoJCQkncm9hZHN0ZXIuY29tL3JvYWRzdGVyJyA6ICdDMDAwMicsLy9EV1AtMTIyODEKCQkJJ2Z6bG5rLmNvbS9zaWduYWxzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIyODkKCQkJJ2xpdmVjaGF0aW5jLmNvbS90cmFja2luZy5qcycgOiAnQzAwMDMnLC8vRFdQLTEyMzAzCgkJCSd0aGVsaXZlY2hhdHNvZnR3YXJlLmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMjk3CgkJCSdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzMDAKCQkJJ3Nkay5hdXRvdmVyaWZ5LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAxCgkJCSdhbmFseXRpY3MuanMnIDogJ0MwMDAyJywvL0RXUC0xMjMwOQoJCQknaHMtc2NyaXB0cy5jb20nIDogJ0MwMDA0JywvL0RXUC0xMjMyMAoJCQknbWFya2V0aW5nYXV0b21hdGlvbi5zZXJ2aWNlcycgOiAnQzAwMDQnLC8vRFdQLTEyMzIyCgkJCSdsZWFkZm94LmNvJyA6ICdDMDAwNCcsCgkJCSdzdGF0aWMudXB0cmFjcy5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjM1NAogCQkJJ2JhdC5iaW5nLmNvbScgOiAnQzAwMDInLC8vRFdQLTEyMzU0CgkJCSdndGFnL2pzJyA6ICdDMDAwMicsCgkJCSdzZC5qcycgOiAnQzAwMDEnLAoJCQknc2RhLmpzJyA6ICdDMDAwMScsCgkJCSdpZnJhbWVfYXBpJyA6ICdDMDAwMScsCgkJCQoJCX07CgkJbGV0IHVybENhdFJlZ2V4ID0gJygnICsgT2JqZWN0LmtleXModXJsQ2F0QXJyKS5qb2luKCd8JykucmVwbGFjZSgvWys\/Ll0vZywgJ1wkJicpICsgJyknOwoJCWxldCBjdXJyZW50Q29uc2VudCA9IGdldENvbnNlbnQoKTsKCQl3aW5kb3cuc2NyaXB0VXJsQXJyID0gW107CgkJZC5jcmVhdGVFbGVtZW50ID0gZnVuY3Rpb24oLi4uYXJncykgewoJCQljb25zdCBzID0gY2UuYmluZChkKSguLi5hcmdzKSwgc2EgPSBzLnNldEF0dHJpYnV0ZS5iaW5kKHMpOwoJCQlzLnNldEF0dHJpYnV0ZSA9IGZ1bmN0aW9uKG4sIHYpIHsKCQkJCWlmKG4gPT09ICdzcmMnICYmIHdpbmRvdy5zY3JpcHRVcmxBcnIuaW5kZXhPZih2LnRvU3RyaW5nKCkpID09IC0xKSB7CgkJCQkJaWYoKG5ldyBSZWdFeHAodXJsQ2F0UmVnZXgpKS50ZXN0KHYpKXsKCQkJCQkJZm9yKGtleSBpbiB1cmxDYXRBcnIpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCQkJCQlpZiAoKG5ldyBSZWdFeHAoa2V5KSkudGVzdCh2KSkgewoJCQkJCQkJCXdpbmRvdy5zY3JpcHRVcmxBcnIucHVzaCh2LnRvU3RyaW5nKCkpOwoJCQkJCQkJCWlmKGtleSA9PSAnZ3RhZy9qcycgfHwga2V5ID09ICdiYXQuYmluZy5jb20nIHx8IGtleSA9PSAnc2QuanMnIHx8IGtleSA9PSAnc2RhLmpzJyB8fCBrZXkgPT0gJ2lmcmFtZV9hcGknKXsKCQkJCQkJCQkJc2EoJ2RhdGEtb3QtaWdub3JlJywgdHJ1ZSk7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpOwoJCQkJCQkJCX0gZWxzZSBpZihjdXJyZW50Q29uc2VudCA9PSBudWxsIHx8IGN1cnJlbnRDb25zZW50LmluZGV4T2YodXJsQ2F0QXJyW2tleV0pID09IC0xKXsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9wbGFpbicpOwoJCQkJCQkJCQlzYSgnY2xhc3MnLCAnb3B0YW5vbi1jYXRlZ29yeS0nICsgdXJsQ2F0QXJyW2tleV0pOwoJCQkJCQkJCX0KCQkJCQkJCQlicmVhazsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXNhKG4sIHYpOwoJCQl9CgkJCXJldHVybiBzOwoJCX0KCQlmdW5jdGlvbiBnZXRDb25zZW50KCl7CgkJCWxldCBuYW1lID0gJ2QyY19jb29raWVfY29uc2VudCcgKyAnPSc7CgkJCWxldCBjYSA9ICgnJytkb2N1bWVudC5jb29raWUpLnNwbGl0KCc7Jyk7CgkJCWZvcihsZXQgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykgewoJCQkJbGV0IGMgPSBjYVtpXTsKCQkJCWMgPSBjLnRyaW0oKTsKCQkJCWlmIChjLmluZGV4T2YobmFtZSkgPT0gMCkgewoJCQkJCXRyeXsKCQkJCQkJYyA9IGRlY29kZVVSSUNvbXBvbmVudCggYyApOwoJCQkJCX0gY2F0Y2goIGUgKQoJCQkJCXsKCQkJCQkJY29uc29sZS5sb2coIGUgKTsKCQkJCQkJcmV0dXJuIG51bGw7CgkJCQkJfQoJCQkJCXJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpOwoJCQkJfQoJCQl9CgkJCXJldHVybiBudWxsOwoJCX0KCX0pKGRvY3VtZW50KTsKCglkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CgkvLyBMaXN0ZW4gZm9yIGNoYW5nZXMgdG8gdGhlIERPTQoJCWxldCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewoJCQltdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXRhdGlvbikgewoJCQkJaWYgKG11dGF0aW9uLmFkZGVkTm9kZXMgJiYgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGggPiAwKSB7CgkJCQkJLy8gQ2hlY2sgaWYgb3VyIHNjcmlwdCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRE9NCgkJCQkJZm9yIChsZXQgaSA9IDA7IGkgPCBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aDsgaSsrKSB7CgkJCQkJCWxldCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1tpXTsKCQkJCQkJaWYgKG5vZGUubm9kZVR5cGUgPT09IDEgJiYgbm9kZS50YWdOYW1lID09PSAnU0NSSVBUJyAmJiBub2RlLnNyYyAmJiBub2RlLnNyYy5pbmNsdWRlcygnY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScpICYmIHR5cGVvZiBPbmVUcnVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsKCQkJCQkJCQl0cnl7RGlnaXRhbEludGVydmlldy5MYXVuY2hlci5lbmFibGVMYXVuY2hQb2ludHMoKTt9Y2F0Y2goZSl7fQoJCQkJCQkJfSwgMTAwMCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0pOwoJCX0pOwoJCS8vIFN0YXJ0IG9ic2VydmluZyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgY29uZmlndXJlZCBwYXJhbWV0ZXJzCgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmhlYWQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJfSk7CgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iWlpaLTQxNTU2NDgiCnZhciBjdXJyZW50U2l0ZUlEPTE0NDY7dmFyIGQyY19nYUFjY291bnRzPXsiYWxsIjpbXSwiaW50ZXJuYWwiOltdfTt2YXIgZDJjX2F3Y0lkPSdBVy0xMDk4MjY4NTAxMSc7dmFyIGQyY19hd2NMYWJlbD0nNThsVkNLS3dtT1FERU5QeS1mUW8nO3ZhciBsZWdhY3lfZ2E9ZmFsc2U7d2luZG93LmRhdGFMYXllcj13aW5kb3cuZGF0YUxheWVyfHxbXTtmdW5jdGlvbiBndGFnKCl7ZGF0YUxheWVyLnB1c2goYXJndW1lbnRzKTt9Cmd0YWcoJ2pzJyxuZXcgRGF0ZSgpKTtkMmNfZ2FBY2NvdW50cy5hbGwucHVzaCgnRy1aNVE4WjVDN0tGJyk7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goJ0ctQkozSlNWUTkwRicpO2lmKGQyY19hd2NJZCl7ZDJjX2dhQWNjb3VudHMuYWxsLnB1c2goZDJjX2F3Y0lkKTt9CihkMmNfZ2FBY2NvdW50cy5hbGx8fFtdKS5tYXAoZnVuY3Rpb24oaWQpe2d0YWcoJ2NvbmZpZycsaWQseydzZW5kX3BhZ2Vfdmlldyc6ZmFsc2UsJ2xpbmtlcic6eydkb21haW5zJzpKU09OLnBhcnNlKGF0b2IoIld5Sm9kSFJ3Y3pwY0wxd3ZjMmh2Y0M1a01tTnRaV1JwWVM1allTSmQiKSksJ2Nvb2tpZV9kb21haW4nOid3d3cuc29yZWwtdHJhY3lmb3JkLmNhJ319KTt9KTsKLypdXT4qLwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IkZMVC0xNTY2NDU4ODk5NjQ1MzQxMTUzODYiCnZhciBkb2NSZWFkeUFycj1bXTt2YXIgcGFnZT0iTkVXQ0FSUyI7dmFyIGZiQ2hhdFJlZj17fTt2YXIgZGVwbG95bWVudFR5cGU9J2xpdmUnO3ZhciBjdXJyZW50U2l0ZUlEPTE0NDY7dmFyIGN1cnJlbnREZWFsZXJJRD0zOTMzO3ZhciBnYVR5cGU9J2d0YWcnO3ZhciBhbGxDYW1wYWlnbnM9W1sic29yZWwtdHJhY3lmb3JkLmNhIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJUb3V0ZXMiLDE0MjY2XSxbInNvcmVsLXRyYWN5Zm9yZC5jYSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiTmV1ZnMiLDE0MjY3XSxbInNvcmVsLXRyYWN5Zm9yZC5jYSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiT2NjYXNpb24iLDE0MjY4XSxbInNvcmVsLXRyYWN5Zm9yZC5jYSIsIlNFTSIsIkFnZW5jeSIsMTQyNzVdLFsic29yZWwtdHJhY3lmb3JkLmNhIiwiVHJhZGVyIiwiUmV0YXJnZXRpbmciLDE0Mjc4XSxbInNvcmVsLXRyYWN5Zm9yZC5jYSIsIkJpbmciLCJCaW5nIiwxNDI4MV0sWyJTb3JlbC10cmFjeWZvcmQuY2EiLCJHb29nbGUiLCJOZXVmIiwxNjI3NV1dCnZhciByZXRhcmdldGluZ0NhbXBhaWducz1bXQp2YXIgQUlDdXJyZW50Q29uZmlnSUQ9MDt2YXIgQUlJRFBlck5ld0NhcnNGcmVuY2g9bmV3IEFycmF5KCk7dmFyIEFJSURQZXJOZXdDYXJzRW5nbGlzaD1uZXcgQXJyYXkoKTtmdW5jdGlvbiBwYXJzZVF1ZXJ5KHN0cil7aWYoc3RyLmxlbmd0aDwxKXJldHVybnt9CnZhciB2YXJzPXt9LHY7dmFyIHFzPXN0ci5zcGxpdCgnJicpO2Zvcih2YXIgaT0wO2k8cXMubGVuZ3RoO2krKyl7dj1leHBsb2RlKHFzW2ldLCc9JywxKTt2YXJzW3ZbMF1dPXZbMV07fQpyZXR1cm4gdmFyczt9CmZ1bmN0aW9uIGRlY29kZVN0cmluZyhzdHJpbmcsdGltZXMpe2lmKHRpbWVzPT0iInx8dGltZXM9PSJ1bmRlZmluZWQiKXt0aW1lcz0xO30KZm9yKGk9MDtpPHRpbWVzO2krKyl7c3RyaW5nPWRlY29kZVVSSUNvbXBvbmVudChzdHJpbmcpO30KcmV0dXJuIHN0cmluZzt9CmZ1bmN0aW9uIGRlY29kZUhUTUwoZW5jb2RlZCl7aWYodHlwZW9mIGVuY29kZWQhPT0nc3RyaW5nJylyZXR1cm4gZW5jb2RlZDt2YXIgZWw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGV4dGFyZWEnKTtlbC5pbm5lckhUTUw9ZW5jb2RlZDtyZXR1cm4gZWwudmFsdWU7fQpmdW5jdGlvbiBleHBsb2RlKHN0cixzZXBhcmF0b3IsbGltaXQpe3N0cj1zdHIuc3BsaXQoc2VwYXJhdG9yKTtpZihzdHIubGVuZ3RoPD1saW1pdClyZXR1cm4gc3RyO3ZhciByZXQ9c3RyLnNwbGljZSgwLGxpbWl0KTtyZXQucHVzaChzdHIuam9pbihzZXBhcmF0b3IpKTtyZXR1cm4gcmV0O30KZnVuY3Rpb24gZ2V0VXJsVmFycygpe3ZhciBxcz0od2luZG93LmxvY2F0aW9uLnNlYXJjaCkuc3Vic3RyaW5nKDEpO3JldHVybiBwYXJzZVF1ZXJ5KHFzKTt9CmZ1bmN0aW9uIGdldENvb2tpZShjX25hbWUpe3JldHVybiBDb29raWVzLmdldChjX25hbWUpO30KZnVuY3Rpb24gZ2V0Q29va2llKGNfbmFtZSl7dmFyIGNfdmFsdWU9ZG9jdW1lbnQuY29va2llO3ZhciBjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZigiICIrY19uYW1lKyI9Iik7aWYoY19zdGFydD09LTEpe2Nfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKGNfbmFtZSsiPSIpO30KaWYoY19zdGFydD09LTEpe2NfdmFsdWU9bnVsbDt9ZWxzZXtjX3N0YXJ0PWNfdmFsdWUuaW5kZXhPZigiPSIsY19zdGFydCkrMTt2YXIgY19lbmQ9Y192YWx1ZS5pbmRleE9mKCI7IixjX3N0YXJ0KTtpZihjX2VuZD09LTEpe2NfZW5kPWNfdmFsdWUubGVuZ3RoO30KY192YWx1ZT11bmVzY2FwZShjX3ZhbHVlLnN1YnN0cmluZyhjX3N0YXJ0LGNfZW5kKSk7fQpyZXR1cm4gY192YWx1ZTt9CmZ1bmN0aW9uIHNldENvb2tpZShjX25hbWUsdmFsdWUsZXhkYXlzKXtpc0Nvb2tpZUFsbG93ZWQoY19uYW1lLGZ1bmN0aW9uKGFsbG93ZWQpe2lmKCFhbGxvd2VkKXtyZXR1cm4gQ29va2llcy5zZXQoY19uYW1lLHZhbHVlLGV4ZGF5cywnLycpO2xvZ0Nvb2tpZShjX25hbWUsdmFsdWUsZXhkYXlzKTtyZXR1cm47fQp2YXIgZXhkYXRlPW5ldyBEYXRlKCk7ZXhkYXRlLnNldERhdGUoZXhkYXRlLmdldERhdGUoKStleGRheXMpO3ZhciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkrKChleGRheXM9PW51bGwpPyIiOiI7IGV4cGlyZXM9IitleGRhdGUudG9VVENTdHJpbmcoKSkrIjsgcGF0aD0vIjtkb2N1bWVudC5jb29raWU9Y19uYW1lKyI9IitjX3ZhbHVlO30pO30KZnVuY3Rpb24gbG9nQ29va2llKG5hbWUsdmFsdWUsZXhwaXJlcyx0cmllcyl7aWYodHlwZW9mIHRyaWVzPT09J3VuZGVmaW5lZCcpe3RyaWVzPTU7fQppZih0eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj09PSd1bmRlZmluZWQnKXtpZih0cmllcyl7c2V0VGltZW91dChmdW5jdGlvbigpe2xvZ0Nvb2tpZShuYW1lLHZhbHVlLGV4cGlyZXMsdHJpZXMtMSk7fSwxMDAwKTt9fWVsc2V7d2luZG93LkNvb2tpZUxvZ2dlci5sb2cobmFtZSx2YWx1ZSxleHBpcmVzKTt9fQpmdW5jdGlvbiBpc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayx0cmllcyl7aWYodHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50PT09J3VuZGVmaW5lZCcpe2lmKHR5cGVvZiB0cmllcz09PSd1bmRlZmluZWQnKXt0cmllcz01O30KaWYodHJpZXMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayx0cmllcy0xKTt9LDEwMDApO319ZWxzZXt3aW5kb3cuQ29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQobmFtZSxjYWxsYmFjayk7fX0KZnVuY3Rpb24gZ2FQYWdlVmlldyhwcCl7KGQyY19nYUFjY291bnRzLmFsbHx8W10pLm1hcChmdW5jdGlvbihpZCl7bGV0IGQ9e3BhZ2VfcGF0aDpwcH07aWYoZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJyl7Y29uc29sZS5sb2coJ2d0YWcnLCdjb25maWcnLGlkLGQpCnJldHVybjt9Cmd0YWcoJ2NvbmZpZycsaWQsZCk7fSk7fTtmdW5jdGlvbiBnYTRQYWdlVmlldyhwcCl7aWYoZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJyl7cmV0dXJuO30KZ3RhZygnc2V0Jyx7J3BhZ2VfcGF0aCc6cHB9KTtndGFnKCdldmVudCcsJ3BhZ2VfdmlldycseydzZW5kX3RvJzonRy1CSjNKU1ZROTBGJ30pO30KZnVuY3Rpb24gZ2V0R2FDbGllbnRJZCgpe3JldHVybigoKHR5cGVvZiB3aW5kb3cuZ2E9PT0nb2JqZWN0JyYmd2luZG93LmdhIT09bnVsbCl8fHR5cGVvZiB3aW5kb3cuZ2E9PT0nZnVuY3Rpb24nKSYmdHlwZW9mIGdhWydnZXRBbGwnXT09PSdmdW5jdGlvbicpP2dhLmdldEFsbCgpWzBdLmdldCgnY2xpZW50SWQnKTonJzt9CmZ1bmN0aW9uIGdhVHJhY2soYWEsYyxhLGwsdil7bGV0IGFjPVtdO2NvbnN0IGNzPWRlcGxveW1lbnRUeXBlIT0nbGl2ZSd8fCdVUychPSdDQSc7Y29uc3QgY2g9KG8sZCk9PnR5cGVvZiBvIT09J3VuZGVmaW5lZCc\/bzpkO2FhPWNoKGFhLCcnKTtjPWNoKGMsJycpO2E9Y2goYSwnJyk7bD1jaChsLCcnKTt2PWNoKHYsMSk7aWYoYWE9PSdpbnRlcm5hbCcpe2FjPWQyY19nYUFjY291bnRzLmludGVybmFsO31lbHNlIGlmKGFhLmxlbmd0aCYmL14oYnxjfGQpXC5fdHJhY2tFdmVudC8udGVzdChhYSkmJnR5cGVvZiBkMmNfZ2FBY2NvdW50c1thYVswXV0hPSd1bmRlZmluZWQnKXthYy5wdXNoKGQyY19nYUFjY291bnRzW2FhWzBdXSk7fQppZihhYy5sZW5ndGgpe2FjLm1hcCgoaWQpPT57Y29uc3QgZD17c2VuZF90bzppZCxldmVudF9hY3Rpb246YSxldmVudF9jYXRlZ29yeTpjLGV2ZW50X2xhYmVsOmwsdmFsdWU6dn07aWYoY3Mpe2NvbnNvbGUubG9nKGBHQVRSQUNLLUdUQUctU0VORC1UT1ske2lkfV06YCwnZXZlbnQnLGEsZCk7cmV0dXJuO30KZ3RhZygnZXZlbnQnLGEsZCk7fSk7fWVsc2V7Y29uc3QgZD17ZXZlbnRfYWN0aW9uOmEsZXZlbnRfY2F0ZWdvcnk6YyxldmVudF9sYWJlbDpsLHZhbHVlOnZ9O2lmKGNzKXtjb25zb2xlLmxvZygnR0FUUkFDSy1HVEFHLU5PLVNFTkQtVE86JywnZXZlbnQnLGEsZCk7fWVsc2V7Z3RhZygnZXZlbnQnLGEsZCk7fX19O2Z1bmN0aW9uIG9uQ29uZmlybVN1Ym1pdChldmVudCl7cmV0dXJuIHRydWU7fQpmdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKGNfbmFtZSx2YWx1ZSl7dmFyIGV4ZGF5cz1udWxsO3ZhciBjX3ZhbHVlPWVzY2FwZSh2YWx1ZSkrIjtleHBpcmVzPTA7cGF0aD0vIjtkb2N1bWVudC5jb29raWU9Y19uYW1lKyI9IitjX3ZhbHVlO2xvZ0Nvb2tpZShjX25hbWUpO30KZnVuY3Rpb24gaW5pdExDSShwYXJhbXMsbil7aWYobj4yMClyZXR1cm4gbjt2YXIgbj0obik\/bjowO2lmKHR5cGVvZiBMQ19BUEk9PSd1bmRlZmluZWQnfHx0eXBlb2YgTENfSW52aXRlPT0ndW5kZWZpbmVkJyl7c2V0VGltZW91dChmdW5jdGlvbigpe2luaXRMQ0kocGFyYW1zLCsrbik7fSw1MDApO3JldHVybjt9CmlmKHR5cGVvZiBMQ19BUEkhPSd1bmRlZmluZWQnJiZ0eXBlb2YgTENfSW52aXRlIT0ndW5kZWZpbmVkJyYmcGFyYW1zKXtyZXR1cm4gTENfQVBJLnNldF9jdXN0b21fdmFyaWFibGVzKHBhcmFtcyk7fX0KZnVuY3Rpb24gc2FuaXRpemVSZWZlcmVyKHJlZmVyZXIpe3JldHVybiByZWZlcmVyLnJlcGxhY2UoL1snImAoKTw+XFtcXXt9fCFdL2csJycpO30KZnVuY3Rpb24gZ2V0UmVmZXJyZXJWYXJGdW5jdGlvbihyZWZlcmVyKXtyZXR1cm4gZnVuY3Rpb24oKXtpZignJz09cmVmZXJlcilyZWZlcmVyPWRvY3VtZW50LnJlZmVycmVyO3JlZmVyZXI9c2FuaXRpemVSZWZlcmVyKHJlZmVyZXIpO3ZhciBxcyxxc2luZGV4PXJlZmVyZXIuaW5kZXhPZignPycpKzE7aWYocXNpbmRleD4wKXt2YXIgcXM9cmVmZXJlci5zbGljZShxc2luZGV4KTtyZXR1cm4gcGFyc2VRdWVyeShxcyk7fQpyZXR1cm57fX19CnZhciBnZXRSZWZlcmVyVmFycz1nZXRSZWZlcnJlclZhckZ1bmN0aW9uKCcnKTt2YXIgdXRtX2xhbmRpbmdfY29va2llPShnZXRDb29raWUoJ3V0bV9sYW5kaW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9sYW5kaW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2xhbmRpbmcnKTonJyk7aWYodXRtX2xhbmRpbmdfY29va2llLmxlbmd0aD09MCl7c2V0Q29va2llKCd1dG1fbGFuZGluZycsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKTt9CmlmKGRlcGxveW1lbnRUeXBlPT0nbGl2ZScpe3ZhciBnZW5lcmF0ZUdVSUQ9ZnVuY3Rpb24oKXt2YXIgUzQ9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjB4MTAwMDApLnRvU3RyaW5nKDE2KTt9O3JldHVybihTNCgpK1M0KCkrIi0iKwpTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpK1M0KCkrUzQoKSk7fQp2YXIgdXJsVmFycz1nZXRVcmxWYXJzKCk7dmFyIHJlZmVyZXJWYXJzPWdldFJlZmVyZXJWYXJzKCk7dmFyIHJlZmVyZXI9Jyc7dmFyIHJhd1JlZmVycmVyPXJlZmVyZXI7cmVmZXJlcj0ocmVmZXJlci5sZW5ndGg8MT8wOnJlZmVyZXIpO2lmKCcnPT1yYXdSZWZlcnJlcilyYXdSZWZlcnJlcj1kb2N1bWVudC5yZWZlcnJlcjt2YXIgaXRlbVR5cGU9J2Nhcic7aXRlbVR5cGU9KGl0ZW1UeXBlLmxlbmd0aDwxPzA6aXRlbVR5cGUpO2lmKGlzTmFOKHJlZmVyZXIpKXtyZWZlcmVyPXJlZmVyZXIucmVwbGFjZSgvXC8vZywifCIpLnJlcGxhY2UoL1w\/L2csIl9fIikucmVwbGFjZSgvXHQvZywnJykucmVwbGFjZSgvXG4vZywnJykucmVwbGFjZSgvXHIvZywnJykucmVwbGFjZUFsbCgnJTBBJywnJykucmVwbGFjZUFsbCgnJTA5JywnJykucmVwbGFjZUFsbCgnJTBCJywnJykucmVwbGFjZUFsbCgnJTAwJywnJykucmVwbGFjZUFsbCgnJTBEJywnJyk7fQp2YXIgbWFrZT0iIjtpZihtYWtlLmxlbmd0aD09MCltYWtlPSIwIjt2YXIgbW9kZWw9IiI7aWYobW9kZWwubGVuZ3RoPT0wKW1vZGVsPSIwIjt2YXIgeWVhcj0iIjtpZih5ZWFyLmxlbmd0aD09MCl5ZWFyPSIwIjt2YXIgaXNtb2JpbGU9IjEiO2lmKGlzbW9iaWxlLmxlbmd0aD09MClpc21vYmlsZT0iMCI7dmFyIG9yaWdTb3VyY2U9IiI7dmFyIG9yaWdDYW1wYWlnbj0iIjt2YXIgb3JpZ0tleXdvcmQ9IiI7aWYodXJsVmFyc1sicmVsYW5jZUlEIl0hPXVuZGVmaW5lZCkKc2V0Q29va2llKCdyZWxhbmNlSUQnLHVybFZhcnNbInJlbGFuY2VJRCJdLDE4MCk7dmFyIHNvdXJjZT0oZ2V0Q29va2llKCd1dG1fc291cmNlJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2UnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlJyk6JycpO3ZhciBzb3VyY2VDb29raWU9c291cmNlO3ZhciBzb3VyY2VVUkw9IiI7aWYoInV0bV9zb3VyY2UiaW4gdXJsVmFycyl7aWYoc291cmNlLmxlbmd0aD09MClzb3VyY2U9dXJsVmFyc1sndXRtX3NvdXJjZSddO3NvdXJjZVVSTD11cmxWYXJzWyd1dG1fc291cmNlJ107fQp2YXIgY2FtcGFpZ249KGdldENvb2tpZSgndXRtX2NhbXBhaWduJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbicpOicnKTtpZihjYW1wYWlnbi50b0xvd2VyQ2FzZSgpPT0nZWNvbGUtZXR1ZGlhbnQnKXtjYW1wYWlnbj0nJztzZXRDb29raWUoJ3V0bV9jYW1wYWlnbicsIiIsMSk7fQp2YXIgY2FtcGFpZ25Db29raWU9Y2FtcGFpZ247dmFyIGNhbXBhaWduVVJMPSIiO2lmKCJ1dG1fY2FtcGFpZ24iaW4gdXJsVmFycyl7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO2NhbXBhaWduVVJMPXVybFZhcnNbJ3V0bV9jYW1wYWlnbiddO30KdmFyIG1lZGl1bT0oZ2V0Q29va2llKCd1dG1fbWVkaXVtJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9tZWRpdW0nKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fbWVkaXVtJyk6JycpO3ZhciBtZWRpdW1Db29raWU9bWVkaXVtO3ZhciBtZWRpdW1VUkw9IiI7aWYoInV0bV9tZWRpdW0iaW4gdXJsVmFycyl7aWYobWVkaXVtLmxlbmd0aD09MCltZWRpdW09dXJsVmFyc1sndXRtX21lZGl1bSddO21lZGl1bVVSTD11cmxWYXJzWyd1dG1fbWVkaXVtJ107fQp2YXIgY29va2llSW5DYW1wYWlnbnM9ZmFsc2U7dmFyIHVybEluQ2FtcGFpZ25zPWZhbHNlO3ZhciBoYXNHb29nbGVPcmdhbmljPWZhbHNlO2Zvcih2YXIgaT0wO2k8YWxsQ2FtcGFpZ25zLmxlbmd0aDtpKyspe2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VVUkwudG9Mb3dlckNhc2UoKSYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpdXJsSW5DYW1wYWlnbnM9dHJ1ZTtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlQ29va2llLnRvTG93ZXJDYXNlKCkmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpKWNvb2tpZUluQ2FtcGFpZ25zPXRydWU7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PSdnb29nbGUnJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09J29yZ2FuaXF1ZScpaGFzR29vZ2xlT3JnYW5pYz10cnVlO30KaWYoc291cmNlVVJMPT0iIiYmY2FtcGFpZ25VUkw9PSIiJiZzb3VyY2U9PSIiJiZjYW1wYWlnbj09IiImJmhhc0dvb2dsZU9yZ2FuaWMpe3NvdXJjZVVSTD0iR29vZ2xlIjtjYW1wYWlnblVSTD0iT3JnYW5pcXVlIjt1cmxJbkNhbXBhaWducz10cnVlO30KaWYoY29va2llSW5DYW1wYWlnbnM9PWZhbHNlJiZ1cmxJbkNhbXBhaWducz09dHJ1ZSl7c291cmNlPXNvdXJjZVVSTDtjYW1wYWlnbj1jYW1wYWlnblVSTDtzb3VyY2VDb29raWU9c291cmNlVVJMO2NhbXBhaWduQ29va2llPWNhbXBhaWduVVJMO30KaWYoc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nJiZzb3VyY2VVUkwudG9Mb3dlckNhc2UoKT09J2dvb2dsZScmJnVybEluQ2FtcGFpZ25zKXtzb3VyY2U9c291cmNlVVJMO2NhbXBhaWduPWNhbXBhaWduVVJMO30KdmFyIGN1cnJlbnRTaXRlSUQ9MTQ0NjtpZigoY3VycmVudFNpdGVJRD09NTkyfHxjdXJyZW50U2l0ZUlEPT00Mzd8fGN1cnJlbnRTaXRlSUQ9PTU3OXx8Y3VycmVudFNpdGVJRD09NTg1KSYmc291cmNlQ29va2llLnRvTG93ZXJDYXNlKCk9PSdzZW0nKXtzb3VyY2VDb29raWU9J0dvb2dsZSc7c291cmNlPSdHb29nbGUnO2NhbXBhaWduQ29va2llPSdOZXVmJztjYW1wYWlnbj0nTmV1Zic7fQppZihjYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pYyd8fGNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCk9PSdvcmdhbmlxdWUnKXtzb3VyY2VDb29raWU9Jyc7Y2FtcGFpZ25Db29raWU9Jyc7bWVkaXVtQ29va2llPScnO30KaWYoc291cmNlLmxlbmd0aD4wJiYoc291cmNlQ29va2llLmxlbmd0aD09MHx8c291cmNlQ29va2llPT1zb3VyY2UpKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoY2FtcGFpZ24ubGVuZ3RoPjAmJihjYW1wYWlnbkNvb2tpZS5sZW5ndGg9PTB8fGNhbXBhaWduQ29va2llPT1jYW1wYWlnbikpc2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7aWYobWVkaXVtLmxlbmd0aD4wJiYobWVkaXVtQ29va2llLmxlbmd0aD09MHx8bWVkaXVtQ29va2llPT1tZWRpdW0pKXNldENvb2tpZSgndXRtX21lZGl1bScsbWVkaXVtLDE4MCk7dmFyIGtleXdvcmQ9KGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2tleXdvcmQnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fa2V5d29yZCcpOicnKTtpZigia3ciaW4gdXJsVmFycyl7a2V5d29yZD1kZWNvZGVTdHJpbmcodXJsVmFyc1sna3cnXSwzKTt9CmlmKGtleXdvcmQubGVuZ3RoPjApc2V0Q29va2llKCd1dG1fa2V5d29yZCcsa2V5d29yZCwxODApO3ZhciBpc1JldGFyZ2V0aW5nPWZhbHNlO2Zvcih2YXIgaT0wO2k8cmV0YXJnZXRpbmdDYW1wYWlnbnMubGVuZ3RoO2krKyl7aWYocmV0YXJnZXRpbmdDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09c291cmNlVVJMLnRvTG93ZXJDYXNlKCkmJnJldGFyZ2V0aW5nQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduVVJMLnRvTG93ZXJDYXNlKCkpaXNSZXRhcmdldGluZz10cnVlO30KaWYoaXNSZXRhcmdldGluZyl7dmFyIHNvdXJjZVJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKTonJyk7dmFyIGNhbXBhaWduUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpOicnKTtpZihzb3VyY2UhPXNvdXJjZVVSTHx8Y2FtcGFpZ24hPWNhbXBhaWduVVJMKXtpZihzb3VyY2VVUkwubGVuZ3RoPjAmJnNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnLHNvdXJjZVVSTCwxODApO2lmKGNhbXBhaWduVVJMLmxlbmd0aD4wJiZjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD09MClzZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycsY2FtcGFpZ25VUkwsMTgwKTt9CnNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlVVJMLDE4MCk7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduVVJMLDE4MCk7fQp2YXIgc291cmNlUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpOicnKTt2YXIgY2FtcGFpZ25SZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyk6JycpO2lmKHNvdXJjZVJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycsc291cmNlUmV0YXJnZXRpbmcsMTgwKTtpZihjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJyxjYW1wYWlnblJldGFyZ2V0aW5nLDE4MCk7aWYoIXNvdXJjZSl7aWYocmF3UmVmZXJyZXIhPScnKXt2YXIgc2VsZkhvc3Q9KGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpLm1hdGNoKC9eW0Etel0rOlwvXC8oW15cL10rKVwvPy4qLyk7aWYoc2VsZkhvc3Qpe3NlbGZIb3N0PXNlbGZIb3N0WzFdfQp2YXIgaG9zdD0ocmF3UmVmZXJyZXIudG9TdHJpbmcoKSkubWF0Y2goL15bQS16XSs6XC9cLyhbXlwvXSspXC8\/LiovKTtpZihob3N0KXtob3N0PWhvc3RbMV19ZWxzZXtob3N0PXNlbGZIb3N0O30KaWYoaG9zdCE9c2VsZkhvc3Qpe2hvc3Q9aG9zdC5zcGxpdCgnLicpO2lmKGhvc3QubGVuZ3RoPjIpe3NvdXJjZT1ob3N0WzFdO30KaWYoaG9zdC5sZW5ndGg9PTIpe3NvdXJjZT1ob3N0WzBdO30KaWYoc291cmNlKXNldENvb2tpZSgndXRtX3NvdXJjZScsc291cmNlLDE4MCk7aWYoIWNhbXBhaWduKXtjYW1wYWlnbj0nb3JnYW5pYyc7c2V0Q29va2llKCd1dG1fY2FtcGFpZ24nLGNhbXBhaWduLDE4MCk7fX19fQppZihzb3VyY2UubGVuZ3RoPT0wKXNvdXJjZT0iMCI7aWYoY2FtcGFpZ24ubGVuZ3RoPT0wKWNhbXBhaWduPSIwIjtpZihzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg9PTApc291cmNlUmV0YXJnZXRpbmc9IjAiO2lmKGNhbXBhaWduUmV0YXJnZXRpbmcubGVuZ3RoPT0wKWNhbXBhaWduUmV0YXJnZXRpbmc9IjAiO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXtpZihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZScpPT0ndW5kZWZpbmVkJyl7aWYodXJsVmFyc1sidXRtX2NhbXBhaWduIl0hPXVuZGVmaW5lZCYmKGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nLHVybFZhcnNbInV0bV9jYW1wYWlnbiJdLDE4MCk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQmJihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnKT09bnVsbHx8dHlwZW9mIGdldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScpPT0ndW5kZWZpbmVkJykpc2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyx1cmxWYXJzWyJ1dG1fc291cmNlIl0sMTgwKTt9CnNldENvb2tpZSgnRGlzcGxheVNvdXJjZScsdXJsVmFyc1siRGlzcGxheVNvdXJjZSJdLDE4MCk7fQp2YXIgc2V0R2NsaWRDb29raWU9dHJ1ZTtpZih1cmxWYXJzWyJ1dG1fc291cmNlIl0hPXVuZGVmaW5lZCl7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nU0VNJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nVHJhZGVyJ3x8dXJsVmFyc1sidXRtX3NvdXJjZSJdPT0nR29vZ2xlLW5lcmRtYXJrZXRpbmcnKXtzZXRHY2xpZENvb2tpZT1mYWxzZTt9fQppZih1cmxWYXJzWyJnY2xpZCJdIT11bmRlZmluZWQmJnNldEdjbGlkQ29va2llKXtzZXRDb29raWUoJ2djbGlkJyx1cmxWYXJzWyJnY2xpZCJdLDE4MCk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKGV2ZW50KXtpZigndW5kZWZpbmVkJyE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nKXtzYXZlR0NMSUQ9ZnVuY3Rpb24oKXtpZigndW5kZWZpbmVkJz09dHlwZW9mIHdpbmRvdy5qUXVlcnkpe3JldHVybjt9CiQucG9zdCgiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL2djbGlkLnJlc3QuYXBpLnBocCIse3Nlc3Npb25pZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQsZ2NsaWQ6dXJsVmFyc1snZ2NsaWQnXX0pO307dHJ5e2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrKHNhdmVHQ0xJRCk7fWNhdGNoKGVycm9yKXtjb25zb2xlLmxvZyhlcnJvcik7fX19KTt9CndpbmRvdy5hY3RpdmVQYWdlPXBhZ2U7dmFyIHVpZD0oZ2V0Q29va2llKCd1aWQnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndWlkJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndWlkJyk6Z2VuZXJhdGVHVUlEKCkpO3NldENvb2tpZSgndWlkJyx1aWQsMTgwKTt2YXIgZGVhbGVyaWQ9MzkzMzt2YXIgc2l0ZWlkPTE0NDY7d2luZG93LmFjdGl2ZVNpdGVJRD1zaXRlaWQ7d2luZG93LmFjdGl2ZURlYWxlcklEPWRlYWxlcmlkO3ZhciBjYXJpZD0nJztpZihjYXJpZC5sZW5ndGg9PTApY2FyaWQ9IjAiO2Z1bmN0aW9uIHRhZ0J1aWxkKGludGVybmFscyl7cmV0dXJuJzwnKyhpbnRlcm5hbHMuam9pbignICcpKSsnIC8+Jzt9CnZhciBjYWNoZUNsZWFyZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTkpO3ZhciBhZGRUa0ltZz1mdW5jdGlvbihzcmMpe3N3aXRjaChkb2N1bWVudC5yZWFkeVN0YXRlKXtjYXNlImxvYWRpbmciOmRvY3VtZW50LndyaXRlKHRhZ0J1aWxkKFsnaW1nJywnc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7IicsJ3NyYz0iJytzcmMrJyInLCdhbHQ9IiInXSkpO2JyZWFrO2Nhc2UiaW50ZXJhY3RpdmUiOmNhc2UiY29tcGxldGUiOmRlZmF1bHQ6dHJ5e3ZhciBpbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aW1nLnN0eWxlLmNzc1RleHQ9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JztpbWcuc2V0QXR0cmlidXRlKCdzcmMnLHNyYyk7aW1nLnNldEF0dHJpYnV0ZSgnYWx0JywnVHJhY2tpbmcgcGl4ZWwnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiRXJyb3IgdGt3aWRnZXQ6ICIrZXgubWVzc2FnZSk7fQpicmVhazt9fTtjYW1wYWlnbj1jYW1wYWlnbi5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlKCclMEEnLCcnKS5yZXBsYWNlKCclMDknLCcnKS5yZXBsYWNlKCclMEInLCcnKS5yZXBsYWNlKCclMDAnLCcnKS5yZXBsYWNlKCclMEQnLCcnKTtzb3VyY2U9c291cmNlLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2UoJyUwQScsJycpLnJlcGxhY2UoJyUwOScsJycpLnJlcGxhY2UoJyUwQicsJycpLnJlcGxhY2UoJyUwMCcsJycpLnJlcGxhY2UoJyUwRCcsJycpO3ZhciB0a3NyYz0nL3Byb3h5X3NhdWIvd2Vic2l0ZUhpdHMvJysKZGVhbGVyaWQrIi8iK3NpdGVpZCsiLyIrY2FyaWQrIi8iK2VzY2FwZSh1aWQpKyIvIitwYWdlKyIvIitlc2NhcGUoc291cmNlKSsiLyIrZXNjYXBlKGNhbXBhaWduKSsiLyIrZXNjYXBlKG1ha2UpKyIvIitlc2NhcGUobW9kZWwpKyIvIit5ZWFyKyIvIisKaXNtb2JpbGUrIi8iK2VuY29kZVVSSUNvbXBvbmVudChyZWZlcmVyKSsiLyIrZXNjYXBlKGl0ZW1UeXBlKSsiLyIrZXNjYXBlKHNvdXJjZVJldGFyZ2V0aW5nKSsiLyIrZXNjYXBlKGNhbXBhaWduUmV0YXJnZXRpbmcpKyIvIitjYWNoZUNsZWFyZXIrJy5naWYnO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZz09J3VuZGVmaW5lZCd8fCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSlhZGRUa0ltZyh0a3NyYyk7dmFyIGtleXdvcmRzPSIiO2lmKCJwImluIHJlZmVyZXJWYXJzJiZyZWZlcmVyLmluZGV4T2YoInlhaG9vIik+LTEpe2tleXdvcmRzPXJlZmVyZXJWYXJzWydwJ107fQppZigicSJpbiByZWZlcmVyVmFycyYmKHJlZmVyZXIuaW5kZXhPZigiZ29vZ2xlIik+LTF8fHJlZmVyZXIuaW5kZXhPZigiYmluZyIpPi0xKSl7a2V5d29yZHM9cmVmZXJlclZhcnNbJ3EnXTt9CnZhciB1TGFuZz0oZ2V0Q29va2llKCdsYW5nJyk9PSdlbicpPydlbic6J2ZyJzt3aW5kb3cuZmJDaGF0UmVmPXtyOidzaXRlJyxjOmNhbXBhaWduLHM6c291cmNlfTt2YXIgY3VzdG9tX3ZhcmlhYmxlcz1be25hbWU6J2xhbmd1YWdlJyx2YWx1ZTp1TGFuZ30se25hbWU6J3V0bV9jYW1wYWlnbicsdmFsdWU6Y2FtcGFpZ259LHtuYW1lOid1dG1fc291cmNlJyx2YWx1ZTpzb3VyY2V9LHtuYW1lOidwYWdlJyx2YWx1ZTpwYWdlfSx7bmFtZTondWlkJyx2YWx1ZTp1aWR9LHtuYW1lOidjYXJpZCcsdmFsdWU6Y2FyaWR9LHtuYW1lOidtYWtlJyx2YWx1ZTptYWtlfSx7bmFtZTonbW9kZWwnLHZhbHVlOm1vZGVsfSx7bmFtZToneWVhcicsdmFsdWU6eWVhcn0se25hbWU6J2lzTW9iaWxlU2l0ZScsdmFsdWU6aXNtb2JpbGV9XTt3aW5kb3cuY1ZhcmlhYmxlcz1jdXN0b21fdmFyaWFibGVzO3dpbmRvdy5yZWxhbmNlSGFuZGxlckZuYz1mdW5jdGlvbigpe3ZhciByZWxhbmNlSUQ9KGdldENvb2tpZSgncmVsYW5jZUlEJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3JlbGFuY2VJRCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3JlbGFuY2VJRCcpOjApO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50IT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChyZWxhbmNlSUQsJ3JlbGFuY2VJRCcpO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwnZGlzcGxheVNvdXJjZScpO2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwndXRtX2NhbXBhaWduJyk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fc291cmNlIl0sJ3V0bV9zb3VyY2UnKTt9fQplbHNlCnNldFRpbWVvdXQod2luZG93LnJlbGFuY2VIYW5kbGVyRm5jLDEwMDApO307dmFyIGluaXRGPWZ1bmN0aW9uKCl7aW5pdExDSShjdXN0b21fdmFyaWFibGVzKTt3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmMoKTt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsaW5pdEYpO2Vsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGluaXRGLGZhbHNlKTt2YXIgYWljdXJyZW50cGFnZT0nbmV3Y2Fycy5odG1sJztpZihBSUN1cnJlbnRDb25maWdJRD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KEFJQ3VycmVudENvbmZpZ0lELCdBSUNvbmZpZycpO30KaWYoQUlJRFBlck5ld0NhcnNGcmVuY2gubGVuZ3RoPjAmJmFpY3VycmVudHBhZ2U9PSduZXdjYXJkZXRhaWwuaHRtbCcmJmdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKSE9bnVsbCl7dmFyIGxhc3RuZXd2ZWhpY2xlPWdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKTt2YXIgbGFzdG5ld3ZlaGljbGVzcGxpdD1sYXN0bmV3dmVoaWNsZS5zcGxpdCgnfHx8Jyk7dmFyIGFpbmV3Y2FyaWQ9MDtpZih0eXBlb2YgQUlJRFBlck5ld0NhcnNGcmVuY2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dIT09J3VuZGVmaW5lZCcpYWluZXdjYXJpZD1BSUlEUGVyTmV3Q2Fyc0ZyZW5jaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYodHlwZW9mIEFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV0hPT0ndW5kZWZpbmVkJylhaW5ld2NhcmlkPUFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYoYWluZXdjYXJpZD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGFpbmV3Y2FyaWQsJ0FJQ29uZmlnTmV3Q2FyJyk7fX19CnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZm49ZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT0ndW5kZWZpbmVkJyl7cmV0dXJuIGpRdWVyeS5yZWFkeSgpO30Kc2V0VGltZW91dChmbiwxMDApO30KZm4oKTt9LDEwMDApOwovKl1dPiovCgooYXN5bmMgKCkgPT4gewoJCgl0cnkgewoJCXZhciBsYW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmNsYXNzTmFtZS5tYXRjaCgnRlJFTkNIJykgPyAnZnInIDogJ2VuJzsKCQkKCQl2YXIgdXJsID0gbmV3IFVSTChgL2pzL2pzb24vbWVudVRpdGxlc18ke2xhbmd9Lmpzb25gLCB3aW5kb3cubG9jYXRpb24ub3JpZ2luKS5ocmVmOwoJCXJlc3BvbnNlID0gYXdhaXQgZmV0Y2godXJsKTsKCQl0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpOwoJCQoJCWlmICh0ZXh0KSB7CgkJCWRhdGEgPSBKU09OLnBhcnNlKHRleHQpOwoJCQl2YXIgbXVsdGkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdVU0VEJyk7CgkJCQoJCQlpZiAobXVsdGkubGVuZ3RoKSB7CgkJCQlmb3IodmFyIGkgPSAwOyBpIDwgbXVsdGkubGVuZ3RoOyBpKyspIHsKCQkJCQltdWx0aVtpXS5xdWVyeVNlbGVjdG9yKCcuc2hyaW5rLWdyb3cnKS50ZXh0Q29udGVudCA9IGRhdGFbJ1VTRUQnXS50ZXh0OwoJCQkJfQoJCQl9CgkJCWVsc2UgewoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI01haW5NZW51X1VTRUQgPiBhJykudGV4dENvbnRlbnQgPSBkYXRhWydVU0VEJ10udGV4dDsKCQkJCXdpbmRvdy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgncmVzaXplJykpOwoJCQl9CgkJfQoJCQoJfSBjYXRjaCAoZSl7CgkJY29uc29sZS5sb2coZSk7Cgl9CgkKfSkoKTsKCgkvKjwhW0NEQVRBWyovCgl2YXIgcGFyYW1zID0gZ2V0VXJsVmFycygpOwoJLy9zZXQgcGFyYW0gdmFsdWUgaW50byBzZXNzaW9uIHN0b3JhZ2UKCWlmICh0eXBlb2Ygc2Vzc2lvblN0b3JhZ2UgIT09ICd1bmRlZmluZWQnKSB7CgoJCWlmKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnaCcpKXsKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnaCcscGFyYW1zLmgpOwoJCX0KCgkJaWYocGFyYW1zLmhhc093blByb3BlcnR5KCdtJykpewoJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCdtJyxwYXJhbXMubSk7CgkJfQoKCQl2YXIgaCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2gnKTsKCQl2YXIgbSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ20nKTsKCgkJLy9yZWFkIHNlc3Npb24gYW5kIHJlbW92ZSBoZWFkZXIgJiBtZW51IGlmIG9wdGlvbnMgaGF2ZSBiZWVuIHNldAoJCWlmKGggPT09ICdubycpewoJCQkvL3N0dWZmIHRvIHJlbW92ZSB0aGF0IGlzIGNvbnNpZGVyZWQgcGFydCBvZiB0aGUgaGVhZGVyCgkJCXZhciBoZWFkZXJzID0gWwoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1pbmZvJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLWZvb3RlcicpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmxhbmd1YWdlQmFyJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuaGVhZGVyLWxvZ28nKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2JpbGUtaGVhZGVyID4gKjpub3QoLmJ1cmdlci1tZW51LWNvbnRhaW5lciknKQoJCQldOwoKCQkJZm9yKHZhciBlbGVtIG9mIGhlYWRlcnMpewoJCQkJLy9yZW1vdmUgbm9kZSBsaXN0IHF1ZXJpZXMKCQkJCWlmIChOb2RlTGlzdC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihlbGVtKSkgewoJCQkJCWZvcih2YXIgX2VsZW0gb2YgZWxlbSl7CgkJCQkJCWlmIChfZWxlbSAhPT0gbnVsbCkgewoJCQkJCQkJX2VsZW0ucmVtb3ZlKCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQllbHNlIGlmIChlbGVtICE9PSBudWxsKXsKCQkJCQllbGVtLnJlbW92ZSgpOwoJCQkJfQoJCQl9CgkJfQoKCQkvL21lbnUKCQlpZihtID09PSAnbm8nKXsKCQkJdmFyIG1lbnVzID0gWwoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1tZW51JyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuYnVyZ2VyLW1lbnUtY29udGFpbmVyJyksCgkJCV07CgkJCWZvcih2YXIgZWxlbSBvZiBtZW51cyl7CgkJCQlpZihlbGVtICE9PSBudWxsKXsKCQkJCQllbGVtLnJlbW92ZSgpOwoJCQkJfQoJCQl9CgkJfQoKCQkvL3NpbmNlIG5vIGhlYWRlciBvciBtZW51LCByZW1vdmUgZXZlcnl0aGluZwoJCWlmIChtID09PSAnbm8nICYmIGggPT09ICdubycpIHsKCQkJdmFyIGhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5tb2JpbGUtaGVhZGVyJyk7CgkJCWlmKGhlYWRlciAhPT0gbnVsbCl7CgkJCQloZWFkZXIucmVtb3ZlKCk7CgkJCX0KCQl9CgoJfQoJLypdXT4qLwo=","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgkJCQkvKjwhW0NEQVRBWyovCgkJCQl2YXIgYm94QmxvY2tzID0geyJzdXYiOnsiZmJ4X3N1dl8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjM1MjQ0LCJjb25zbyI6Ni45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFc2NhcGUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzU4OTQsImNvbnNvIjo2LjkwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkVzY2FwZSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjQsImZ1ZWwiOjEsInByaWNlIjo0MTE5MCwiY29uc28iOjcuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiQnJvbmNvIFNwb3J0Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjQxODkwLCJjb25zbyI6Ny43OTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiQnJvbmNvIFNwb3J0Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjUxNzYwLCJjb25zbyI6MTAuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiQnJvbmNvIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl82Ijp7InZpc2libGUiOnRydWUsImlkIjo2LCJwb3NpdGlvbiI6NiwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjUzOTgwLCJjb25zbyI6OC42OTk5OTk5OTk5OTk5OTkyODk0NTcyNjQyMzk4OTk4MTQxMjg4NzU3MzI0MjE4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkV4cGxvcmVyIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl83Ijp7InZpc2libGUiOnRydWUsImlkIjo3LCJwb3NpdGlvbiI6NywiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjU0NDYwLCJjb25zbyI6MTAuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiQnJvbmNvIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl84Ijp7InZpc2libGUiOnRydWUsImlkIjo4LCJwb3NpdGlvbiI6OCwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjU0OTk1LCJjb25zbyI6OC42OTk5OTk5OTk5OTk5OTkyODk0NTcyNjQyMzk4OTk4MTQxMjg4NzU3MzI0MjE4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkV4cGxvcmVyIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl85Ijp7InZpc2libGUiOnRydWUsImlkIjo5LCJwb3NpdGlvbiI6OSwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjU1MTk1LCJjb25zbyI6OC42OTk5OTk5OTk5OTk5OTkyODk0NTcyNjQyMzk4OTk4MTQxMjg4NzU3MzI0MjE4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkV4cGxvcmVyIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8xMCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTAsInBvc2l0aW9uIjoxMCwiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjg0ODE1LCJjb25zbyI6MTAuNTk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXhwZWRpdGlvbiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfMTEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjExLCJwb3NpdGlvbiI6MTEsImRyaXZldHJhaW4iOjQsImZ1ZWwiOjEsInByaWNlIjo4NjA2NSwiY29uc28iOjEwLjU5OTk5OTk5OTk5OTk5OTY0NDcyODYzMjExOTk0OTkwNzA2NDQzNzg2NjIxMDkzNzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkV4cGVkaXRpb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzEyIjp7InZpc2libGUiOnRydWUsImlkIjoxMiwicG9zaXRpb24iOjEyLCJkcml2ZXRyYWluIjo0LCJmdWVsIjoxLCJwcmljZSI6ODkyOTUsImNvbnNvIjoxMC41OTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFeHBlZGl0aW9uIiwic3BlY2lhbE9yZGVyIjowfX0sImh5YnJpZCI6eyJmYnhfaHlicmlkXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6MzY5OTUsImNvbnNvIjo2LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik1hdmVyaWNrIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjozODE5NSwiY29uc28iOjYuNzk5OTk5OTk5OTk5OTk5ODIyMzY0MzE2MDU5OTc0OTUzNTMyMjE4OTMzMTA1NDY4NzUsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiTWF2ZXJpY2sgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ2MzQ0LCJjb25zbyI6Ni41LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFc2NhcGUgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ2OTk0LCJjb25zbyI6Ni41LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFc2NhcGUgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfX0sImNhciI6eyJmYnhfY2FyXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoyLCJmdWVsIjoxLCJwcmljZSI6NDEzMjUsImNvbnNvIjo3LjA5OTk5OTk5OTk5OTk5OTY0NDcyODYzMjExOTk0OTkwNzA2NDQzNzg2NjIxMDkzNzUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik11c3RhbmciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY2FyXzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIsInBvc2l0aW9uIjoyLCJkcml2ZXRyYWluIjoyLCJmdWVsIjoxLCJwcmljZSI6NDE0MjUsImNvbnNvIjo3LjA5OTk5OTk5OTk5OTk5OTY0NDcyODYzMjExOTk0OTkwNzA2NDQzNzg2NjIxMDkzNzUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik11c3RhbmciLCJzcGVjaWFsT3JkZXIiOjB9fSwiY29tbWVyY2lhbCI6eyJmYnhfY29tbWVyY2lhbF8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQzNDg1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtU2VyaWVzIFN0cmlwcGVkIENoYXNzaXMiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQ2OTMwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtU2VyaWVzIEN1dGF3YXkiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQ4NjM1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtU2VyaWVzIFN0cmlwcGVkIENoYXNzaXMiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjUyMDgwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtU2VyaWVzIEN1dGF3YXkiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjUyMDgwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtU2VyaWVzIEN1dGF3YXkiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF82Ijp7InZpc2libGUiOnRydWUsImlkIjo2LCJwb3NpdGlvbiI6NiwiZHJpdmV0cmFpbiI6MywiZnVlbCI6MSwicHJpY2UiOjU4ODk1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlRyYW5zaXQgQ3V0YXdheSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjozLCJmdWVsIjoxLCJwcmljZSI6NjA1NDUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiVHJhbnNpdCBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfOCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6OCwicG9zaXRpb24iOjgsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjEsInByaWNlIjo2MDY0NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJUcmFuc2l0IEN1dGF3YXkiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF85Ijp7InZpc2libGUiOnRydWUsImlkIjo5LCJwb3NpdGlvbiI6OSwiZHJpdmV0cmFpbiI6MywiZnVlbCI6MSwicHJpY2UiOjYxNTk1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlRyYW5zaXQgQ2FyZ28gVmFuIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTAiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEwLCJwb3NpdGlvbiI6MTAsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjEsInByaWNlIjo2Mjk5NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJUcmFuc2l0IENhcmdvIFZhbiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzExIjp7InZpc2libGUiOnRydWUsImlkIjoxMSwicG9zaXRpb24iOjExLCJkcml2ZXRyYWluIjozLCJmdWVsIjoxLCJwcmljZSI6NjMwOTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiVHJhbnNpdCBDYXJnbyBWYW4iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTIsInBvc2l0aW9uIjoxMiwiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MSwicHJpY2UiOjY0OTc0LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJTdXBlciBEdXR5IEYtMzUwIFNSVyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzEzIjp7InZpc2libGUiOnRydWUsImlkIjoxMywicG9zaXRpb24iOjEzLCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6NjcyODAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0zNTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMTQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjE0LCJwb3NpdGlvbiI6MTQsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo2NzUzNCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoidHJ1Y2siLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTM1MCBTUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTUsInBvc2l0aW9uIjoxNSwiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MywicHJpY2UiOjcxMjEwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJTdXBlciBEdXR5IEYtNDUwIERSVyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzE2Ijp7InZpc2libGUiOnRydWUsImlkIjoxNiwicG9zaXRpb24iOjE2LCJkcml2ZXRyYWluIjoyLCJmdWVsIjo0LCJwcmljZSI6NzEzOTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRS1UcmFuc2l0IEN1dGF3YXkiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xNyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTcsInBvc2l0aW9uIjoxNywiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MywicHJpY2UiOjcxNzEwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJTdXBlciBEdXR5IEYtNDUwIERSVyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzE4Ijp7InZpc2libGUiOnRydWUsImlkIjoxOCwicG9zaXRpb24iOjE4LCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6NzE4NDksImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiU3VwZXIgRHV0eSBGLTU1MCBEUlciLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8xOSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTksInBvc2l0aW9uIjoxOSwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6NCwicHJpY2UiOjcyMDQ1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkUtVHJhbnNpdCBDdXRhd2F5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMjAiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIwLCJwb3NpdGlvbiI6MjAsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjQsInByaWNlIjo3MjE0NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVRyYW5zaXQgQ3V0YXdheSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzIxIjp7InZpc2libGUiOnRydWUsImlkIjoyMSwicG9zaXRpb24iOjIxLCJkcml2ZXRyYWluIjoyLCJmdWVsIjo0LCJwcmljZSI6NzIxOTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRS1UcmFuc2l0IENoYXNzaXMiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8yMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MjIsInBvc2l0aW9uIjoyMiwiZHJpdmV0cmFpbiI6MywiZnVlbCI6MSwicHJpY2UiOjcyNDk1LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlRyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMjMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjIzLCJwb3NpdGlvbiI6MjMsImRyaXZldHJhaW4iOjIsImZ1ZWwiOjQsInByaWNlIjo3Mjg0NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJFLVRyYW5zaXQgQ2hhc3NpcyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzI0Ijp7InZpc2libGUiOnRydWUsImlkIjoyNCwicG9zaXRpb24iOjI0LCJkcml2ZXRyYWluIjoyLCJmdWVsIjo0LCJwcmljZSI6NzI5NDUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRS1UcmFuc2l0IENoYXNzaXMiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8yNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MjUsInBvc2l0aW9uIjoyNSwiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MywicHJpY2UiOjczNDEwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi01NTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMjYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjI2LCJwb3NpdGlvbiI6MjYsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjEsInByaWNlIjo3NTM5NSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJUcmFuc2l0IFBhc3NlbmdlciBXYWdvbiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzI3Ijp7InZpc2libGUiOnRydWUsImlkIjoyNywicG9zaXRpb24iOjI3LCJkcml2ZXRyYWluIjoyLCJmdWVsIjo0LCJwcmljZSI6NzU2OTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRS1UcmFuc2l0IENhcmdvIFZhbiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzI4Ijp7InZpc2libGUiOnRydWUsImlkIjoyOCwicG9zaXRpb24iOjI4LCJkcml2ZXRyYWluIjoyLCJmdWVsIjo0LCJwcmljZSI6NzcwOTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRS1UcmFuc2l0IENhcmdvIFZhbiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzI5Ijp7InZpc2libGUiOnRydWUsImlkIjoyOSwicG9zaXRpb24iOjI5LCJkcml2ZXRyYWluIjoyLCJmdWVsIjo0LCJwcmljZSI6NzcxOTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRS1UcmFuc2l0IENhcmdvIFZhbiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb21tZXJjaWFsXzMwIjp7InZpc2libGUiOnRydWUsImlkIjozMCwicG9zaXRpb24iOjMwLCJkcml2ZXRyYWluIjozLCJmdWVsIjoxLCJwcmljZSI6Nzc5OTUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNvbW1lcmNpYWwiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiVHJhbnNpdCBQYXNzZW5nZXIgV2Fnb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY29tbWVyY2lhbF8zMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MzEsInBvc2l0aW9uIjozMSwiZHJpdmV0cmFpbiI6NiwiZnVlbCI6MiwicHJpY2UiOjg2NzIwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJjb21tZXJjaWFsIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi02MDAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2NvbW1lcmNpYWxfMzIiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMyLCJwb3NpdGlvbiI6MzIsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjIsInByaWNlIjo4OTI4MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5IjoiY29tbWVyY2lhbCIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJTdXBlciBEdXR5IEYtNjAwIERSVyIsInNwZWNpYWxPcmRlciI6MH19LCJwaGV2Ijp7ImZieF9waGV2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxNiwicHJpY2UiOjQzODk0LCJjb25zbyI6Ni4yOTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiRXNjYXBlIFBIRVYiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjo0Mzk5NCwiY29uc28iOjYuMjk5OTk5OTk5OTk5OTk5ODIyMzY0MzE2MDU5OTc0OTUzNTMyMjE4OTMzMTA1NDY4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkVzY2FwZSBQSEVWIiwic3BlY2lhbE9yZGVyIjowfX0sInRydWNrIjp7ImZieF90cnVja18xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjQ0Mjk1LCJjb25zbyI6Ny43OTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNYXZlcmljayIsInNwZWNpYWxPcmRlciI6MH0sImZieF90cnVja18yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjQ0NDk1LCJjb25zbyI6Ny43OTk5OTk5OTk5OTk5OTk4MjIzNjQzMTYwNTk5NzQ5NTM1MzIyMTg5MzMxMDU0Njg3NSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJNYXZlcmljayIsInNwZWNpYWxPcmRlciI6MH0sImZieF90cnVja18zIjp7InZpc2libGUiOnRydWUsImlkIjozLCJwb3NpdGlvbiI6MywiZHJpdmV0cmFpbiI6NCwiZnVlbCI6MSwicHJpY2UiOjQ1MzY1LCJjb25zbyI6OSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJSYW5nZXIiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjQsImZ1ZWwiOjEsInByaWNlIjo0NjA2NSwiY29uc28iOjkuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJSYW5nZXIiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfdHJ1Y2tfNSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NSwicG9zaXRpb24iOjUsImRyaXZldHJhaW4iOjYsImZ1ZWwiOjEsInByaWNlIjo1MzMwMCwiY29uc28iOjkuMzAwMDAwMDAwMDAwMDAwNzEwNTQyNzM1NzYwMTAwMTg1ODcxMTI0MjY3NTc4MTI1LCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkYtMTUwIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NTU0ODUsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkYtMTUwIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NjI0NzQsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0yNTAgU1JXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NjQwMzQsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0yNTAgU1JXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NjUwMzQsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0yNTAgU1JXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzEwIjp7InZpc2libGUiOnRydWUsImlkIjoxMCwicG9zaXRpb24iOjEwLCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6NjU3MjAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0zNTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzExIjp7InZpc2libGUiOnRydWUsImlkIjoxMSwicG9zaXRpb24iOjExLCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NjY1MzQsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0zNTAgU1JXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzEyIjp7InZpc2libGUiOnRydWUsImlkIjoxMiwicG9zaXRpb24iOjEyLCJkcml2ZXRyYWluIjo2LCJmdWVsIjoxLCJwcmljZSI6NjgyODAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi0zNTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3RydWNrXzEzIjp7InZpc2libGUiOnRydWUsImlkIjoxMywicG9zaXRpb24iOjEzLCJkcml2ZXRyYWluIjo2LCJmdWVsIjozLCJwcmljZSI6Njk2NDksImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IlN1cGVyIER1dHkgRi00NTAgRFJXIiwic3BlY2lhbE9yZGVyIjowfX0sImVsZWN0cmljIjp7ImZieF9lbGVjdHJpY18xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MywiZnVlbCI6NCwicHJpY2UiOjQ4MDkwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiTXVzdGFuZyBNYWNoLUUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjQsInByaWNlIjo1NTY5MCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik11c3RhbmcgTWFjaC1FIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMsInBvc2l0aW9uIjozLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo0LCJwcmljZSI6NjI4OTAsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InRydWNrIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6IkYtMTUwIExpZ2h0bmluZyIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY180Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjczODkwLCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJmb3JkIiwiY2FyTW9kZWwiOiJGLTE1MCBMaWdodG5pbmciLCJzcGVjaWFsT3JkZXIiOjB9fSwiY29udmVydGlibGUiOnsiZmJ4X2NvbnZlcnRpYmxlXzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoyLCJmdWVsIjoxLCJwcmljZSI6NDgyMjUsImNvbnNvIjo3LjA5OTk5OTk5OTk5OTk5OTY0NDcyODYzMjExOTk0OTkwNzA2NDQzNzg2NjIxMDkzNzUsImNhckNhdGVnb3J5IjoiY29udmVydGlibGUiLCJjYXJNYWtlIjoiZm9yZCIsImNhck1vZGVsIjoiTXVzdGFuZyBDb252ZXJ0aWJsZSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jb252ZXJ0aWJsZV8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MiwiZnVlbCI6MSwicHJpY2UiOjQ4MzI1LCJjb25zbyI6Ny4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNvbnZlcnRpYmxlIiwiY2FyTWFrZSI6ImZvcmQiLCJjYXJNb2RlbCI6Ik11c3RhbmcgQ29udmVydGlibGUiLCJzcGVjaWFsT3JkZXIiOjB9fX07CgkJCQkvKi0tKi8KCQkJCXZhciBib3hQb3NpdGlvbnMgPSB7ImZieF9zdXZfMSI6MSwiZmJ4X3N1dl8yIjoyLCJmYnhfaHlicmlkXzEiOjEsImZieF9oeWJyaWRfMiI6MiwiZmJ4X3N1dl8zIjozLCJmYnhfY2FyXzEiOjEsImZieF9jYXJfMiI6MiwiZmJ4X3N1dl80Ijo0LCJmYnhfY29tbWVyY2lhbF8xIjoxLCJmYnhfcGhldl8xIjoxLCJmYnhfcGhldl8yIjoyLCJmYnhfdHJ1Y2tfMSI6MSwiZmJ4X3RydWNrXzIiOjIsImZieF90cnVja18zIjozLCJmYnhfdHJ1Y2tfNCI6NCwiZmJ4X2h5YnJpZF8zIjozLCJmYnhfY29tbWVyY2lhbF8yIjoyLCJmYnhfaHlicmlkXzQiOjQsImZieF9lbGVjdHJpY18xIjoxLCJmYnhfY29udmVydGlibGVfMSI6MSwiZmJ4X2NvbnZlcnRpYmxlXzIiOjIsImZieF9jb21tZXJjaWFsXzMiOjMsImZieF9zdXZfNSI6NSwiZmJ4X2NvbW1lcmNpYWxfNCI6NCwiZmJ4X2NvbW1lcmNpYWxfNSI6NSwiZmJ4X3N1dl82Ijo2LCJmYnhfc3V2XzciOjcsImZieF9zdXZfOCI6OCwiZmJ4X3RydWNrXzUiOjUsImZieF9zdXZfOSI6OSwiZmJ4X3RydWNrXzYiOjYsImZieF9lbGVjdHJpY18yIjoyLCJmYnhfY29tbWVyY2lhbF82Ijo2LCJmYnhfY29tbWVyY2lhbF83Ijo3LCJmYnhfY29tbWVyY2lhbF84Ijo4LCJmYnhfY29tbWVyY2lhbF85Ijo5LCJmYnhfdHJ1Y2tfNyI6NywiZmJ4X2VsZWN0cmljXzMiOjMsImZieF9jb21tZXJjaWFsXzEwIjoxMCwiZmJ4X2NvbW1lcmNpYWxfMTEiOjExLCJmYnhfdHJ1Y2tfOCI6OCwiZmJ4X2NvbW1lcmNpYWxfMTIiOjEyLCJmYnhfdHJ1Y2tfOSI6OSwiZmJ4X3RydWNrXzEwIjoxMCwiZmJ4X3RydWNrXzExIjoxMSwiZmJ4X2NvbW1lcmNpYWxfMTMiOjEzLCJmYnhfY29tbWVyY2lhbF8xNCI6MTQsImZieF90cnVja18xMiI6MTIsImZieF90cnVja18xMyI6MTMsImZieF9jb21tZXJjaWFsXzE1IjoxNSwiZmJ4X2NvbW1lcmNpYWxfMTYiOjE2LCJmYnhfY29tbWVyY2lhbF8xNyI6MTcsImZieF9jb21tZXJjaWFsXzE4IjoxOCwiZmJ4X2NvbW1lcmNpYWxfMTkiOjE5LCJmYnhfY29tbWVyY2lhbF8yMCI6MjAsImZieF9jb21tZXJjaWFsXzIxIjoyMSwiZmJ4X2NvbW1lcmNpYWxfMjIiOjIyLCJmYnhfY29tbWVyY2lhbF8yMyI6MjMsImZieF9jb21tZXJjaWFsXzI0IjoyNCwiZmJ4X2NvbW1lcmNpYWxfMjUiOjI1LCJmYnhfZWxlY3RyaWNfNCI6NCwiZmJ4X2NvbW1lcmNpYWxfMjYiOjI2LCJmYnhfY29tbWVyY2lhbF8yNyI6MjcsImZieF9jb21tZXJjaWFsXzI4IjoyOCwiZmJ4X2NvbW1lcmNpYWxfMjkiOjI5LCJmYnhfY29tbWVyY2lhbF8zMCI6MzAsImZieF9zdXZfMTAiOjEwLCJmYnhfc3V2XzExIjoxMSwiZmJ4X2NvbW1lcmNpYWxfMzEiOjMxLCJmYnhfY29tbWVyY2lhbF8zMiI6MzIsImZieF9zdXZfMTIiOjEyfTsKCQkJCS8qKiBGaWx0ZXIgSlMgaW4gbmV3Y2Fycy5qcyAqKi8KCQkJCS8qXV0+Ki8KCQkJCgoJCQkJdmFyIExlYWRDb25maWdzID0gKHR5cGVvZiBMZWFkQ29uZmlncyAhPSAndW5kZWZpbmVkJykgPyBMZWFkQ29uZmlncyA6IHt9OwoKCQkJCWxldCBhY3RpdmVMYW5nID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZXNpdGVsYW5ndWFnZScpID8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGl2ZXNpdGVsYW5ndWFnZScpLnZhbHVlIDogJ0ZSRU5DSCc7CgoJCQkJTGVhZENvbmZpZ3MuRGVhbGVyQXBwb2ludG1lbnQgPSB7CgoJCQkJCXRpdGxlOiAoYWN0aXZlTGFuZyA9PSAnRU5HTElTSCcgPyAnUmVxdWVzdCBhbiBhcHBvaW50bWVudCcgOiAnUHJlbmRyZSBSZW5kZXotdm91cycpLAoJCQkJCWNsb3NlT25TdWJtaXQgOiB0cnVlLAoJCQkJCW5hbWUgOiAnRGVhbGVyQXBwb2ludG1lbnQnLAoKCQkJCQlvbkJlZm9yZU9wZW46IGZ1bmN0aW9uKGxlYWRDb25mKXsKICAgICAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkudHJpZ2dlcignZGVhbGVyQXBwb2ludG1lbnQuc3RhcnQnKTsKCgkJCQkJCWNvbnN0IHRpbWVUeHRFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZFRpbWUnKTsKCQkJCQkJY29uc3QgdGltZUlucHV0ID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignW25hbWU9ImRhdGUiXScpOwoJCQkJCQljb25zdCBwaWNrZXIgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuZGF0ZXBpY2tlcicpOwoJCQkJCQljb25zdCBwaG9uZUVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignW25hbWU9InBob25lbnVtIl0nKTsKCQkJCQkJY29uc3QgaG91cnNCbG9jayA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5ob3Vyc0xpc3QnKTsKCQkJCQkJbGV0IGRheU5vZGVzID0gQXJyYXkuZnJvbShob3Vyc0Jsb2NrLmNoaWxkcmVuKTsKCQkJCQkJbGV0IGRhdGVGb3JtYXQgPSAgYWN0aXZlTGFuZyA9PSAnRU5HTElTSCcgPyAnRiBqIFksIEg6aScgOiAnaiBGIFksIEg6aSc7CgoKCQkJCQkJY29uc3Qgc2V0U2VsZWN0ZWQgPSAoc2VsZWN0ZWREYXRlcywgZGF0ZVN0ciwgaW5zdGFuY2UpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjdXJyZW50bHlTZWxlY3RlZERhdGUgPSBzZWxlY3RlZERhdGVzWzBdIHx8IG5ldyBEYXRlKCk7Ly9kb24ndCBwbGF5IHdpdGggdGhpcyBvciBtaWdodCBhZmZlY3QgZGF0ZS90aW1lIHNlbGVjdGlvbgoJCQkJCQkJbGV0IGRheU51bSA9IGN1cnJlbnRseVNlbGVjdGVkRGF0ZS5nZXREYXkoKTsKCgkJCQkJCQlkYXlOdW0gPSBkYXlOdW0gPT0gMCA\/IDcgOiBkYXlOdW07CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRheU1pblRpbWUgPSBkYXlOb2Rlc1tkYXlOdW0gLSAxXS5kYXRhc2V0Lm1pbmhvdXIgfHwgJzA5OjAwJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlNYXhUaW1lID0gZGF5Tm9kZXNbZGF5TnVtIC0gMV0uZGF0YXNldC5tYXhob3VyIHx8ICcxNzowMCc7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9taW5UaW1lIG1hbmFnZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vaWYgZGF0ZSBpcyB0b2RheSwgbWluVGltZSBuZWVkcyB0byBiZSBhIG1pbmltdW0gb2YgMWhvdXIgbGF0ZXIgZnJvbSBjdXJyZW50IHRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNlbGVjdGVkRGF0ZXNbMF0pewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY2NlcHRlZEV4Y2VwdGlvbiA9IDU7Ly9taW51dGVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoc2VsZWN0ZWREYXRlc1swXS50b0RhdGVTdHJpbmcoKSA9PSBub3cudG9EYXRlU3RyaW5nKCkpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWluSG91ciA9IG5vdy5nZXRIb3VycygpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWluTWludXRlID0gbm93LmdldE1pbnV0ZXMoKSArIDYwOy8vYWRkIDEgaG91cgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihtaW5NaW51dGUgPj0gNjApewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluSG91ciArPSBNYXRoLmZsb29yKG1pbk1pbnV0ZSAvIDYwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbk1pbnV0ZSA9IG1pbk1pbnV0ZSAlIDYwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluTWludXRlICUgMTUpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWFrZSBpdCBzbyB0aGF0IG1pbnV0ZXMgYXJlIGVpdGhlciByb3VuZGVkIHRvIG5leHQgMTVtaW4gaW5jcmVtZW50IG9yIHRvIHRoZSBwcmV2aW91cyBvbmUgaWYgd2l0aGluIGFjY2VwdGVkRXhjZXB0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluTWludXRlICUgMTUgPD0gYWNjZXB0ZWRFeGNlcHRpb24pewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgLSAobWluTWludXRlICUgMTUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKChtaW5NaW51dGUgJSAxNSA+IGFjY2VwdGVkRXhjZXB0aW9uKSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbk1pbnV0ZSA9IG1pbk1pbnV0ZSArICgxNSAtIChtaW5NaW51dGUgJSAxNSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZG8gbm90aGluZywgYWxyZWFkeSBhdCBpbmNyZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihtaW5Ib3VyID49IDI0KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbm8gbW9yZSBhdmFpbGFibGUgdGltZSB0b2RheSwgc2V0IHRvIG5leHQgZGF5IGF0IDA5OjAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5zZXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpbnN0YW5jZS5zZXQoJ21pblRpbWUnLCBkYXlNaW5UaW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlNaW5UaW1lID0gU3RyaW5nKG1pbkhvdXIpLnBhZFN0YXJ0KDIsJzAnKSArICc6JyArIFN0cmluZyhtaW5NaW51dGUpLnBhZFN0YXJ0KDIsJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21heFRpbWUgbWFuYWdlbWVudAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbGFzdCBhcHBvaW50bWVudCB0aW1lIG1hbmFnZW1lbnQgKDE1bWluIGJlZm9yZSBjbG9zaW5nIHRpbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgW2Nsb3NpbmdIb3VycywgY2xvc2luZ01pbnV0ZXNdID0gZGF5TWF4VGltZS5zcGxpdCgnOicpLm1hcChOdW1iZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRheURhdGUgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5RGF0ZS5zZXRIb3VycyhjbG9zaW5nSG91cnMsIGNsb3NpbmdNaW51dGVzLCAwLCAwKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheURhdGUuc2V0TWludXRlcyhkYXlEYXRlLmdldE1pbnV0ZXMoKSAtIDE1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZm9ybWF0IHRoZSBuZXcgdGltZSBiYWNrIGludG8gJ0hIOm1tJyBmb3JtYXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWxDbG9zaW5nSG91cnMgPSBkYXlEYXRlLmdldEhvdXJzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFjdHVhbENsb3NpbmdNaW51dGVzID0gZGF5RGF0ZS5nZXRNaW51dGVzKCkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5TWF4VGltZSA9IGFjdHVhbENsb3NpbmdIb3VycyArICc6JyArIGFjdHVhbENsb3NpbmdNaW51dGVzOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc2V0IHN0YXJ0L2VuZCB0aW1lIGZvciB0aGF0IGRheQoJCQkJCQkJaW5zdGFuY2Uuc2V0KCdtaW5UaW1lJywgZGF5TWluVGltZSk7CgkJCQkJCQlpbnN0YW5jZS5zZXQoJ21heFRpbWUnLCBkYXlNYXhUaW1lKTsKCgkJCQkJCQkvL1NldCBjdXJyZW50IGRhdGUgaW5pdGlhbGx5CgkJCQkJCQl0aW1lVHh0RWwudGV4dENvbnRlbnQgPSAhc2VsZWN0ZWREYXRlcy5sZW5ndGgKCQkJCQkJCQkJCQkJICA\/IGluc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCAoYWN0aXZlTGFuZyA9PSAnRU5HTElTSCcgPyAnRiBqIFksIDEyOjAwJyA6ICdqIEYgWSwgMTI6MDAnKSkKCQkJCQkJCQkJCQkJICA6IGRhdGVTdHI7CgoJCQkJCQkJLy9nZXQgdGhlIGRhdGUgaW4gZW5nbGlzaCBhbmQgZnJlbmNoIGZvciB0aGUgbG9jYWwgc3RvcmFnZQoJCQkJCQkJdGltZVR4dEVsLmRhdGFzZXQuZW4gPSBpbnN0YW5jZS5mb3JtYXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwnRiBqIFksIDEyOjAwJywgZmxhdHBpY2tyLmwxMG5zLmVuKTsKCQkJCQkJCXRpbWVUeHRFbC5kYXRhc2V0LmZyID0gaW5zdGFuY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksJ2ogRiBZLCAxMjowMCcsIGZsYXRwaWNrci5sMTBucy5mcik7CgoJCQkJCQkJdGltZUlucHV0LnZhbHVlID0gdGltZVR4dEVsLnRleHRDb250ZW50OwoKCQkJCQkJCWluc3RhbmNlLmhvdXJFbGVtZW50LmJsdXIoKTsKCQkJCQkJfTsKCgkJCQkJCWxldCBjbG9zZWREYXlzID0gW107CgkJCQkJCWRheU5vZGVzLmZvckVhY2goKGUsaSkgPT4gewoJCQkJCQkJaWYoKGUuZGF0YXNldC5jbG9zZWQgfHwgJzAnKSA9PSAnMScpIGNsb3NlZERheXMucHVzaChpKQoJCQkJCQl9KTsKCgkJCQkJCS8vQWRkIGZyZW5jaCBsb2NhbGl6YXRpb24gd2hlbiBuZWVkZWQKCQkJCQkJaWYoYWN0aXZlTGFuZyA9PSAnRlJFTkNIJyl7CgkJCQkJCQlmbGF0cGlja3IubG9jYWxpemUoZmxhdHBpY2tyLmwxMG5zLmZyKTsKCQkJCQkJfQoKCgoJCQkJCQljb25zdCBmcCA9IGZsYXRwaWNrcihwaWNrZXIsIHsKCQkJCQkJCWlubGluZTp0cnVlLAoJCQkJCQkJZW5hYmxlVGltZTogdHJ1ZSwKCQkJCQkJCW1pbkRhdGU6ICd0b2RheScsLy9iYWNrIGZyb20gbmV3IERhdGUoKS5mcF9pbmNyKDEpIGJ1dCBhbHNvIGFkZGVkIHRpbWUgdmFsaWRhdGlvbiBmb3IgbWluVGltZQoJCQkJCQkJbWluVGltZTogIjA5OjAwIiwKCQkJCQkJCW1heFRpbWU6ICIxNzowMCIsCgkJCQkJCQlkYXRlRm9ybWF0OiBkYXRlRm9ybWF0LC8vIkQsIGogRiBZLCBIOmkiLAoJCQkJCQkJbWludXRlSW5jcmVtZW50OjE1LAoJCQkJCQkJdGltZV8yNGhyOnRydWUsCgkJCQkJCQlvbkNoYW5nZTogc2V0U2VsZWN0ZWQsCgkJCQkJCQlvblJlYWR5OiBzZXRTZWxlY3RlZCwKCQkJCQkJCWRpc2FibGU6IFsKCQkJCQkJCQlmdW5jdGlvbihkYXRlKXsKCQkJCQkJCQkJbGV0IGRheU51bSA9IGRhdGUuZ2V0RGF5KCkgPT0gMCA\/IDcgOiBkYXRlLmdldERheSgpOwoJCQkJCQkJCQlyZXR1cm4gY2xvc2VkRGF5cy5pbmNsdWRlcyhkYXlOdW0gLSAxKTsKCQkJCQkJCQl9CgkJCQkJCQldLAoJCQkJCQkJbG9jYWxlOiB7CgkJCQkJCQkJZmlyc3REYXlPZldlZWs6IDEgLy8gc3RhcnQgd2VlayBvbiBNb25kYXkKCQkJCQkJCX0KCgkJCQkJCX0pOwoKCQkJCQl9LAoKCQkJCQlvbkJlZm9yZVN1Ym1pdCA6IChsZWFkQ29uZikgPT4gewoJCQkJCQljb25zdCB0aW1lVHh0RWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWRUaW1lJyk7CgkJCQkJCWVtYWlsSGFuZGxlci5kZWFsZXJBcHBvaW50bWVudERhdGEgPSB7CgkJCQkJCQlkYXRlIDogdGltZVR4dEVsLnRleHRDb250ZW50CgkJCQkJCX07CgkJCQkJfSwKCgkJCQkJb25BZnRlclN1Ym1pdCA6IChsZWFkQ29uZikgPT4gewoKCQkJCQkJY29uc3QgdGltZVR4dEVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkVGltZScpOwoKCQkJCQkJY29uc3QgY2IgPSB0cmFja1N0ZXAgPT4gewoJCQkJCQkJdHJhY2tTdGVwLmRhdGFzZXQuY29tcGxfdHh0X2ZyID0gdHJhY2tTdGVwLmRhdGFzZXQuY29tcGxfdHh0X2ZyLnJlcGxhY2UoJ3skQVBQT0lOVF9EQVRFfScsIHRpbWVUeHRFbC5kYXRhc2V0LmZyKTsKCQkJCQkJCXRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9lbiA9IHRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9lbi5yZXBsYWNlKCd7JEFQUE9JTlRfREFURX0nLCB0aW1lVHh0RWwuZGF0YXNldC5lbik7CgkJCQkJCX07CgoJCQkJCQlsZXQgY29tcGxldGVFdmVudCA9IG5ldyBDdXN0b21FdmVudCgndHJhY2tzdGVwLmNvbXBsZXRlJyx7CgkJCQkJCQlkZXRhaWw6ewoJCQkJCQkJCXN0ZXBJZCA6ICdEZWFsZXJBcHBvaW50bWVudCcsCgkJCQkJCQkJb25Db21wbGV0ZSA6IGNiCgkJCQkJCQl9CgkJCQkJCX0pOwoKCQkJCQkJZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChjb21wbGV0ZUV2ZW50KTsKCiAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLnRyaWdnZXIoJ2RlYWxlckFwcG9pbnRtZW50LmVuZCcpOwoJCQkJCX0KCgkJCQl9CgoJCQkKLyoqIC9tL2pzL3NrZWxldG9uLmJlZm9yZS5qcyAqKi8KdmFyIF9fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTM6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3NrZWxldG9uYmVmb3JlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNzo1NyI7InVzZSBzdHJpY3QiO19fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjMtMDYtMDEgMTI6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtsZXQgJGpzY29tcCRudWxsaXNoJHRtcDA7d2luZG93LmdTcGVlZENvbm49cGFyc2VJbnQoTWF0aC5mbG9vcigoRGF0ZS5ub3coKS0obnVsbCE9KCRqc2NvbXAkbnVsbGlzaCR0bXAwPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/JGpzY29tcCRudWxsaXNoJHRtcDA6MCkpLzFFMykpO2xldCAkanNjb21wJG51bGxpc2gkdG1wMTtjb25zb2xlLmxvZygiR1NQRUVELUJFRk9SRToiKyhEYXRlLm5vdygpLShudWxsIT0oJGpzY29tcCRudWxsaXNoJHRtcDE9d2luZG93LmdUZXN0U3BlZWRDb25uKT8kanNjb21wJG51bGxpc2gkdG1wMTowKSkvMUUzKTsKLyoqIC9tL2pzL2pxdWVyeS5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjQ5IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMxOjMzIjsidXNlIHN0cmljdCI7CiFmdW5jdGlvbihuLGRhKXsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1uLmRvY3VtZW50P2RhKG4sITApOmZ1bmN0aW9uKHdhKXtpZighd2EuZG9jdW1lbnQpdGhyb3cgRXJyb3IoImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnQiKTtyZXR1cm4gZGEod2EpfTpkYShuKX0oInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c\/d2luZG93OnRoaXMsZnVuY3Rpb24obixkYSl7ZnVuY3Rpb24gd2EoYSxiLGMpe3ZhciBlLGYsZz0oYz1jfHxMKS5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtpZihnLnRleHQ9YSxiKWZvcihlIGluIExjKShmPWJbZV18fGIuZ2V0QXR0cmlidXRlJiZiLmdldEF0dHJpYnV0ZShlKSkmJmcuc2V0QXR0cmlidXRlKGUsZik7Yy5oZWFkLmFwcGVuZENoaWxkKGcpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyl9ZnVuY3Rpb24gVShhKXtyZXR1cm4gbnVsbD09YT9hKwoiIjoib2JqZWN0Ij09dHlwZW9mIGF8fCJmdW5jdGlvbiI9PXR5cGVvZiBhP01iW2tjLmNhbGwoYSldfHwib2JqZWN0Ijp0eXBlb2YgYX1mdW5jdGlvbiBlYihhKXt2YXIgYj0hIWEmJiJsZW5ndGgiaW4gYSYmYS5sZW5ndGgsYz1VKGEpO3JldHVybiFNKGEpJiYha2IoYSkmJigiYXJyYXkiPT09Y3x8MD09PWJ8fCJudW1iZXIiPT10eXBlb2YgYiYmMDxiJiZiLTEgaW4gYSl9ZnVuY3Rpb24gWChhLGIpe3JldHVybiBhLm5vZGVOYW1lJiZhLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1iLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gYmEoYSxiKXtyZXR1cm4gYj8iXHgwMCI9PT1hPyJcdWZmZmQiOmEuc2xpY2UoMCwtMSkrIlxcIithLmNoYXJDb2RlQXQoYS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK2F9ZnVuY3Rpb24gamEoYSxiLGMpe3JldHVybiBNKGIpP2QuZ3JlcChhLGZ1bmN0aW9uKGUsZil7cmV0dXJuISFiLmNhbGwoZSxmLGUpIT09Y30pOmIubm9kZVR5cGU\/ZC5ncmVwKGEsCmZ1bmN0aW9uKGUpe3JldHVybiBlPT09YiE9PWN9KToic3RyaW5nIiE9dHlwZW9mIGI\/ZC5ncmVwKGEsZnVuY3Rpb24oZSl7cmV0dXJuLTE8TmEuY2FsbChiLGUpIT09Y30pOmQuZmlsdGVyKGIsYSxjKX1mdW5jdGlvbiBsYihhLGIpe2Zvcig7KGE9YVtiXSkmJjEhPT1hLm5vZGVUeXBlOyk7cmV0dXJuIGF9ZnVuY3Rpb24gWWEoYSl7cmV0dXJuIGF9ZnVuY3Rpb24gWmEoYSl7dGhyb3cgYTt9ZnVuY3Rpb24gbWIoYSxiLGMsZSl7dmFyIGY7dHJ5e2EmJk0oZj1hLnByb21pc2UpP2YuY2FsbChhKS5kb25lKGIpLmZhaWwoYyk6YSYmTShmPWEudGhlbik\/Zi5jYWxsKGEsYixjKTpiLmFwcGx5KHZvaWQgMCxbYV0uc2xpY2UoZSkpfWNhdGNoKGcpe2MuYXBwbHkodm9pZCAwLFtnXSl9fWZ1bmN0aW9uIE9hKCl7TC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixPYSk7bi5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixPYSk7ZC5yZWFkeSgpfWZ1bmN0aW9uIE5iKGEsYil7cmV0dXJuIGIudG9VcHBlckNhc2UoKX0KZnVuY3Rpb24gQmEoYSl7cmV0dXJuIGEucmVwbGFjZShNYywibXMtIikucmVwbGFjZShOYyxOYil9ZnVuY3Rpb24gSmEoKXt0aGlzLmV4cGFuZG89ZC5leHBhbmRvK0phLnVpZCsrfWZ1bmN0aW9uIE9iKGEsYixjKXt2YXIgZSxmO2lmKHZvaWQgMD09PWMmJjE9PT1hLm5vZGVUeXBlKWlmKGU9ImRhdGEtIitiLnJlcGxhY2UoT2MsIi0kJiIpLnRvTG93ZXJDYXNlKCksInN0cmluZyI9PXR5cGVvZihjPWEuZ2V0QXR0cmlidXRlKGUpKSl7dHJ5e2M9InRydWUiPT09KGY9Yyl8fCJmYWxzZSIhPT1mJiYoIm51bGwiPT09Zj9udWxsOmY9PT0rZisiIj8rZjpQYy50ZXN0KGYpP0pTT04ucGFyc2UoZik6Zil9Y2F0Y2goZyl7fXhhLnNldChhLGIsYyl9ZWxzZSBjPXZvaWQgMDtyZXR1cm4gY31mdW5jdGlvbiBQYihhLGIsYyxlKXt2YXIgZixnLGg9MjAsbT1lP2Z1bmN0aW9uKCl7cmV0dXJuIGUuY3VyKCl9OmZ1bmN0aW9uKCl7cmV0dXJuIGQuY3NzKGEsYiwiIil9LGw9bSgpLHQ9YyYmY1szXXx8CihkLmNzc051bWJlcltiXT8iIjoicHgiKSx3PWEubm9kZVR5cGUmJihkLmNzc051bWJlcltiXXx8InB4IiE9PXQmJitsKSYmeWIuZXhlYyhkLmNzcyhhLGIpKTtpZih3JiZ3WzNdIT09dCl7bC89Mjt0PXR8fHdbM107Zm9yKHc9K2x8fDE7aC0tOylkLnN0eWxlKGEsYix3K3QpLDA+PSgxLWcpKigxLShnPW0oKS9sfHwuNSkpJiYoaD0wKSx3Lz1nO3cqPTI7ZC5zdHlsZShhLGIsdyt0KTtjPWN8fFtdfXJldHVybiBjJiYodz0rd3x8K2x8fDAsZj1jWzFdP3crKGNbMV0rMSkqY1syXTorY1syXSxlJiYoZS51bml0PXQsZS5zdGFydD13LGUuZW5kPWYpKSxmfWZ1bmN0aW9uICRhKGEsYil7Zm9yKHZhciBjLGUsZixnLGgsbSxsLHQ9W10sdz0wLHI9YS5sZW5ndGg7dzxyO3crKykoZT1hW3ddKS5zdHlsZSYmKGM9ZS5zdHlsZS5kaXNwbGF5LGI\/KCJub25lIj09PWMmJih0W3ddPUcuZ2V0KGUsImRpc3BsYXkiKXx8bnVsbCx0W3ddfHwoZS5zdHlsZS5kaXNwbGF5PSIiKSksIiI9PT1lLnN0eWxlLmRpc3BsYXkmJgpRYihlKSYmKHRbd109KGw9aD1nPXZvaWQgMCxoPShmPWUpLm93bmVyRG9jdW1lbnQsbT1mLm5vZGVOYW1lLChsPWxjW21dKXx8KGc9aC5ib2R5LmFwcGVuZENoaWxkKGguY3JlYXRlRWxlbWVudChtKSksbD1kLmNzcyhnLCJkaXNwbGF5IiksZy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpLCJub25lIj09PWwmJihsPSJibG9jayIpLGxjW21dPWwpKSkpOiJub25lIiE9PWMmJih0W3ddPSJub25lIixHLnNldChlLCJkaXNwbGF5IixjKSkpO2Zvcih3PTA7dzxyO3crKyludWxsIT10W3ddJiYoYVt3XS5zdHlsZS5kaXNwbGF5PXRbd10pO3JldHVybiBhfWZ1bmN0aW9uIHNhKGEsYil7dmFyIGM7cmV0dXJuIGM9InVuZGVmaW5lZCIhPXR5cGVvZiBhLmdldEVsZW1lbnRzQnlUYWdOYW1lP2EuZ2V0RWxlbWVudHNCeVRhZ05hbWUoYnx8IioiKToidW5kZWZpbmVkIiE9dHlwZW9mIGEucXVlcnlTZWxlY3RvckFsbD9hLnF1ZXJ5U2VsZWN0b3JBbGwoYnx8IioiKTpbXSx2b2lkIDA9PT1ifHxiJiYKWChhLGIpP2QubWVyZ2UoW2FdLGMpOmN9ZnVuY3Rpb24gbmIoYSxiKXtmb3IodmFyIGM9MCxlPWEubGVuZ3RoO2M8ZTtjKyspRy5zZXQoYVtjXSwiZ2xvYmFsRXZhbCIsIWJ8fEcuZ2V0KGJbY10sImdsb2JhbEV2YWwiKSl9ZnVuY3Rpb24gUmIoYSxiLGMsZSxmKXtmb3IodmFyIGcsaCxtLGwsdD1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSx3PVtdLHI9MCx6PWEubGVuZ3RoO3I8ejtyKyspaWYoKGc9YVtyXSl8fDA9PT1nKWlmKCJvYmplY3QiPT09VShnKSlkLm1lcmdlKHcsZy5ub2RlVHlwZT9bZ106Zyk7ZWxzZSBpZihRYy50ZXN0KGcpKXtoPWh8fHQuYXBwZW5kQ2hpbGQoYi5jcmVhdGVFbGVtZW50KCJkaXYiKSk7bT0obWMuZXhlYyhnKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKTttPUNhW21dfHxDYS5fZGVmYXVsdDtoLmlubmVySFRNTD1tWzFdK2QuaHRtbFByZWZpbHRlcihnKSttWzJdO2ZvcihtPW1bMF07bS0tOyloPWgubGFzdENoaWxkO2QubWVyZ2UodyxoLmNoaWxkTm9kZXMpOwooaD10LmZpcnN0Q2hpbGQpLnRleHRDb250ZW50PSIifWVsc2Ugdy5wdXNoKGIuY3JlYXRlVGV4dE5vZGUoZykpO3QudGV4dENvbnRlbnQ9IiI7Zm9yKHI9MDtnPXdbcisrXTspaWYoZSYmLTE8ZC5pbkFycmF5KGcsZSkpZiYmZi5wdXNoKGcpO2Vsc2UgaWYobD1vYihnKSxoPXNhKHQuYXBwZW5kQ2hpbGQoZyksInNjcmlwdCIpLGwmJm5iKGgpLGMpZm9yKG09MDtnPWhbbSsrXTspbmMudGVzdChnLnR5cGV8fCIiKSYmYy5wdXNoKGcpO3JldHVybiB0fWZ1bmN0aW9uIGFiKCl7cmV0dXJuITB9ZnVuY3Rpb24gYmIoKXtyZXR1cm4hMX1mdW5jdGlvbiBmYihhLGIsYyxlLGYsZyl7dmFyIGgsbTtpZigib2JqZWN0Ij09dHlwZW9mIGIpe2ZvcihtIGluInN0cmluZyIhPXR5cGVvZiBjJiYoZT1lfHxjLGM9dm9pZCAwKSxiKWZiKGEsbSxjLGUsYlttXSxnKTtyZXR1cm4gYX1pZihudWxsPT1lJiZudWxsPT1mPyhmPWMsZT1jPXZvaWQgMCk6bnVsbD09ZiYmKCJzdHJpbmciPT10eXBlb2YgYz8oZj0KZSxlPXZvaWQgMCk6KGY9ZSxlPWMsYz12b2lkIDApKSwhMT09PWYpZj1iYjtlbHNlIGlmKCFmKXJldHVybiBhO3JldHVybiAxPT09ZyYmKGg9ZiwoZj1mdW5jdGlvbihsKXtyZXR1cm4gZCgpLm9mZihsKSxoLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLmd1aWQ9aC5ndWlkfHwoaC5ndWlkPWQuZ3VpZCsrKSksYS5lYWNoKGZ1bmN0aW9uKCl7ZC5ldmVudC5hZGQodGhpcyxiLGYsZSxjKX0pfWZ1bmN0aW9uIHBiKGEsYixjKXtjPyhHLnNldChhLGIsITEpLGQuZXZlbnQuYWRkKGEsYix7bmFtZXNwYWNlOiExLGhhbmRsZXI6ZnVuY3Rpb24oZSl7dmFyIGYsZz1HLmdldCh0aGlzLGIpO2lmKDEmZS5pc1RyaWdnZXImJnRoaXNbYl0paWYoZykoZC5ldmVudC5zcGVjaWFsW2JdfHx7fSkuZGVsZWdhdGVUeXBlJiZlLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2V7aWYoZz15YS5jYWxsKGFyZ3VtZW50cyksRy5zZXQodGhpcyxiLGcpLHRoaXNbYl0oKSxmPUcuZ2V0KHRoaXMsYiksRy5zZXQodGhpcyxiLAohMSksZyE9PWYpcmV0dXJuIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpLGZ9ZWxzZSBnJiYoRy5zZXQodGhpcyxiLGQuZXZlbnQudHJpZ2dlcihnWzBdLGcuc2xpY2UoMSksdGhpcykpLGUuc3RvcFByb3BhZ2F0aW9uKCksZS5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD1hYil9fSkpOnZvaWQgMD09PUcuZ2V0KGEsYikmJmQuZXZlbnQuYWRkKGEsYixhYil9ZnVuY3Rpb24gU2IoYSxiKXtyZXR1cm4gWChhLCJ0YWJsZSIpJiZYKDExIT09Yi5ub2RlVHlwZT9iOmIuZmlyc3RDaGlsZCwidHIiKSYmZChhKS5jaGlsZHJlbigidGJvZHkiKVswXXx8YX1mdW5jdGlvbiBxYihhKXtyZXR1cm4gYS50eXBlPShudWxsIT09YS5nZXRBdHRyaWJ1dGUoInR5cGUiKSkrIi8iK2EudHlwZSxhfWZ1bmN0aW9uICRiKGEpe3JldHVybiJ0cnVlLyI9PT0oYS50eXBlfHwiIikuc2xpY2UoMCw1KT9hLnR5cGU9YS50eXBlLnNsaWNlKDUpOmEucmVtb3ZlQXR0cmlidXRlKCJ0eXBlIiksCmF9ZnVuY3Rpb24gZ2IoYSxiKXt2YXIgYyxlLGYsZyxoO2lmKDE9PT1iLm5vZGVUeXBlKXtpZihHLmhhc0RhdGEoYSkmJihoPUcuZ2V0KGEpLmV2ZW50cykpZm9yKGUgaW4gRy5yZW1vdmUoYiwiaGFuZGxlIGV2ZW50cyIpLGgpe3ZhciBtPTA7Zm9yKGM9aFtlXS5sZW5ndGg7bTxjO20rKylkLmV2ZW50LmFkZChiLGUsaFtlXVttXSl9eGEuaGFzRGF0YShhKSYmKGY9eGEuYWNjZXNzKGEpLGc9ZC5leHRlbmQoe30sZikseGEuc2V0KGIsZykpfX1mdW5jdGlvbiBjYihhLGIsYyxlKXtiPW9jKGIpO3ZhciBmLGcsaCxtPTAsbD1hLmxlbmd0aCx0PWwtMSx3PWJbMF0scj1NKHcpO2lmKHJ8fDE8bCYmInN0cmluZyI9PXR5cGVvZiB3JiYhTi5jaGVja0Nsb25lJiZSYy50ZXN0KHcpKXJldHVybiBhLmVhY2goZnVuY3Rpb24oRCl7dmFyIEY9YS5lcShEKTtyJiYoYlswXT13LmNhbGwodGhpcyxELEYuaHRtbCgpKSk7Y2IoRixiLGMsZSl9KTtpZihsJiYoZz0oZj1SYihiLGFbMF0ub3duZXJEb2N1bWVudCwKITEsYSxlKSkuZmlyc3RDaGlsZCwxPT09Zi5jaGlsZE5vZGVzLmxlbmd0aCYmKGY9ZyksZ3x8ZSkpe2ZvcihoPShnPWQubWFwKHNhKGYsInNjcmlwdCIpLHFiKSkubGVuZ3RoO208bDttKyspe3ZhciB6PWY7bSE9PXQmJih6PWQuY2xvbmUoeiwhMCwhMCksaCYmZC5tZXJnZShnLHNhKHosInNjcmlwdCIpKSk7Yy5jYWxsKGFbbV0seixtKX1pZihoKWZvcihmPWdbZy5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxkLm1hcChnLCRiKSxtPTA7bTxoO20rKyl6PWdbbV0sbmMudGVzdCh6LnR5cGV8fCIiKSYmIUcuYWNjZXNzKHosImdsb2JhbEV2YWwiKSYmZC5jb250YWlucyhmLHopJiYoei5zcmMmJiJtb2R1bGUiIT09KHoudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk\/ZC5fZXZhbFVybCYmIXoubm9Nb2R1bGUmJmQuX2V2YWxVcmwoei5zcmMse25vbmNlOnoubm9uY2V8fHouZ2V0QXR0cmlidXRlKCJub25jZSIpfSxmKTp3YSh6LnRleHRDb250ZW50LnJlcGxhY2UoU2MsIiIpLHosZikpfXJldHVybiBhfQpmdW5jdGlvbiBUYihhLGIsYyl7Zm9yKHZhciBlPWI\/ZC5maWx0ZXIoYixhKTphLGY9MDtudWxsIT0oYj1lW2ZdKTtmKyspY3x8MSE9PWIubm9kZVR5cGV8fGQuY2xlYW5EYXRhKHNhKGIpKSxiLnBhcmVudE5vZGUmJihjJiZvYihiKSYmbmIoc2EoYiwic2NyaXB0IikpLGIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChiKSk7cmV0dXJuIGF9ZnVuY3Rpb24gS2EoYSxiLGMpe3ZhciBlLGYsZyxoLG09YWMudGVzdChiKSxsPWEuc3R5bGU7cmV0dXJuKGM9Y3x8VWIoYSkpJiYoaD1jLmdldFByb3BlcnR5VmFsdWUoYil8fGNbYl0sbSYmaCYmKGg9aC5yZXBsYWNlKHpiLCIkMSIpfHx2b2lkIDApLCIiIT09aHx8b2IoYSl8fChoPWQuc3R5bGUoYSxiKSksIU4ucGl4ZWxCb3hTdHlsZXMoKSYmYmMudGVzdChoKSYmVGMudGVzdChiKSYmKGU9bC53aWR0aCxmPWwubWluV2lkdGgsZz1sLm1heFdpZHRoLGwubWluV2lkdGg9bC5tYXhXaWR0aD1sLndpZHRoPWgsaD1jLndpZHRoLGwud2lkdGg9ZSxsLm1pbldpZHRoPQpmLGwubWF4V2lkdGg9ZykpLHZvaWQgMCE9PWg\/aCsiIjpofWZ1bmN0aW9uIFZiKGEsYil7cmV0dXJue2dldDpmdW5jdGlvbigpe2lmKCFhKCkpcmV0dXJuKHRoaXMuZ2V0PWIpLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtkZWxldGUgdGhpcy5nZXR9fX1mdW5jdGlvbiBBYihhKXt2YXIgYjtpZighKGI9ZC5jc3NQcm9wc1thXXx8cGNbYV0pKXtpZighKGEgaW4gcWMpKXthOntiPWE7Zm9yKHZhciBjPWJbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpLGU9cmMubGVuZ3RoO2UtLTspaWYoKGI9cmNbZV0rYylpbiBxYylicmVhayBhO2I9dm9pZCAwfWE9cGNbYV09Ynx8YX1iPWF9cmV0dXJuIGJ9ZnVuY3Rpb24gV2IoYSxiLGMpe3JldHVybihhPXliLmV4ZWMoYikpP01hdGgubWF4KDAsYVsyXS0oY3x8MCkpKyhhWzNdfHwicHgiKTpifWZ1bmN0aW9uIHJiKGEsYixjLGUsZixnKXt2YXIgaD0id2lkdGgiPT09Yj8xOjAsbT0wLGw9MCx0PTA7aWYoYz09PShlPyJib3JkZXIiOiJjb250ZW50IikpcmV0dXJuIDA7CmZvcig7ND5oO2grPTIpIm1hcmdpbiI9PT1jJiYodCs9ZC5jc3MoYSxjK1BhW2hdLCEwLGYpKSxlPygiY29udGVudCI9PT1jJiYobC09ZC5jc3MoYSwicGFkZGluZyIrUGFbaF0sITAsZikpLCJtYXJnaW4iIT09YyYmKGwtPWQuY3NzKGEsImJvcmRlciIrUGFbaF0rIldpZHRoIiwhMCxmKSkpOihsKz1kLmNzcyhhLCJwYWRkaW5nIitQYVtoXSwhMCxmKSwicGFkZGluZyIhPT1jP2wrPWQuY3NzKGEsImJvcmRlciIrUGFbaF0rIldpZHRoIiwhMCxmKTptKz1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZikpO3JldHVybiFlJiYwPD1nJiYobCs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoYVsib2Zmc2V0IitiWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKV0tZy1sLW0tLjUpKXx8MCksbCt0fWZ1bmN0aW9uIEJiKGEsYixjKXt2YXIgZT1VYihhKSxmPSghTi5ib3hTaXppbmdSZWxpYWJsZSgpfHxjKSYmImJvcmRlci1ib3giPT09ZC5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSxnPQpmLGg9S2EoYSxiLGUpLG09Im9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSk7aWYoYmMudGVzdChoKSl7aWYoIWMpcmV0dXJuIGg7aD0iYXV0byJ9cmV0dXJuKCFOLmJveFNpemluZ1JlbGlhYmxlKCkmJmZ8fCFOLnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJlgoYSwidHIiKXx8ImF1dG8iPT09aHx8IXBhcnNlRmxvYXQoaCkmJiJpbmxpbmUiPT09ZC5jc3MoYSwiZGlzcGxheSIsITEsZSkpJiZhLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoZj0iYm9yZGVyLWJveCI9PT1kLmNzcyhhLCJib3hTaXppbmciLCExLGUpLChnPW0gaW4gYSkmJihoPWFbbV0pKSwoaD1wYXJzZUZsb2F0KGgpfHwwKStyYihhLGIsY3x8KGY\/ImJvcmRlciI6ImNvbnRlbnQiKSxnLGUsaCkrInB4In1mdW5jdGlvbiB6YShhLGIsYyxlLGYpe3JldHVybiBuZXcgemEucHJvdG90eXBlLmluaXQoYSxiLGMsZSxmKX1mdW5jdGlvbiBDYigpe1hiJiYoITE9PT1MLmhpZGRlbiYmbi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU\/Cm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lKENiKTpuLnNldFRpbWVvdXQoQ2IsZC5meC5pbnRlcnZhbCksZC5meC50aWNrKCkpfWZ1bmN0aW9uIERiKCl7cmV0dXJuIG4uc2V0VGltZW91dChmdW5jdGlvbigpe3NiPXZvaWQgMH0pLHNiPURhdGUubm93KCl9ZnVuY3Rpb24gdGIoYSxiKXt2YXIgYyxlPTAsZj17aGVpZ2h0OmF9O2ZvcihiPWI\/MTowOzQ+ZTtlKz0yLWIpZlsibWFyZ2luIisoYz1QYVtlXSldPWZbInBhZGRpbmciK2NdPWE7cmV0dXJuIGImJihmLm9wYWNpdHk9Zi53aWR0aD1hKSxmfWZ1bmN0aW9uIHUoYSxiLGMpe2Zvcih2YXIgZSxmPSh4LnR3ZWVuZXJzW2JdfHxbXSkuY29uY2F0KHgudHdlZW5lcnNbIioiXSksZz0wLGg9Zi5sZW5ndGg7ZzxoO2crKylpZihlPWZbZ10uY2FsbChjLGIsYSkpcmV0dXJuIGV9ZnVuY3Rpb24geChhLGIsYyl7dmFyIGUsZj0wLGc9eC5wcmVmaWx0ZXJzLmxlbmd0aCxoPWQuRGVmZXJyZWQoKS5hbHdheXMoZnVuY3Rpb24oKXtkZWxldGUgbS5lbGVtfSksCm09ZnVuY3Rpb24oKXtpZihlKXJldHVybiExO3ZhciB0PXNifHxEYigpO3Q9TWF0aC5tYXgoMCxsLnN0YXJ0VGltZStsLmR1cmF0aW9uLXQpO2Zvcih2YXIgdz0xLSh0L2wuZHVyYXRpb258fDApLHI9MCx6PWwudHdlZW5zLmxlbmd0aDtyPHo7cisrKWwudHdlZW5zW3JdLnJ1bih3KTtyZXR1cm4gaC5ub3RpZnlXaXRoKGEsW2wsdyx0XSksMT53JiZ6P3Q6KHp8fGgubm90aWZ5V2l0aChhLFtsLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbbF0pLCExKX0sbD1oLnByb21pc2Uoe2VsZW06YSxwcm9wczpkLmV4dGVuZCh7fSxiKSxvcHRzOmQuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpkLmVhc2luZy5fZGVmYXVsdH0sYyksb3JpZ2luYWxQcm9wZXJ0aWVzOmIsb3JpZ2luYWxPcHRpb25zOmMsc3RhcnRUaW1lOnNifHxEYigpLGR1cmF0aW9uOmMuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKHQsdyl7dD1kLlR3ZWVuKGEsbC5vcHRzLHQsdyxsLm9wdHMuc3BlY2lhbEVhc2luZ1t0XXx8Cmwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKHQpLHR9LHN0b3A6ZnVuY3Rpb24odCl7dmFyIHc9MCxyPXQ\/bC50d2VlbnMubGVuZ3RoOjA7aWYoZSlyZXR1cm4gdGhpcztmb3IoZT0hMDt3PHI7dysrKWwudHdlZW5zW3ddLnJ1bigxKTtyZXR1cm4gdD8oaC5ub3RpZnlXaXRoKGEsW2wsMSwwXSksaC5yZXNvbHZlV2l0aChhLFtsLHRdKSk6aC5yZWplY3RXaXRoKGEsW2wsdF0pLHRoaXN9fSk7Yz1sLnByb3BzOyFmdW5jdGlvbih0LHcpe3ZhciByLHosRCxGLE87Zm9yKHIgaW4gdClpZihEPXdbej1CYShyKV0sRj10W3JdLEFycmF5LmlzQXJyYXkoRikmJihEPUZbMV0sRj10W3JdPUZbMF0pLHIhPT16JiYodFt6XT1GLGRlbGV0ZSB0W3JdKSwoTz1kLmNzc0hvb2tzW3pdKSYmImV4cGFuZCJpbiBPKWZvcihyIGluIEY9Ty5leHBhbmQoRiksZGVsZXRlIHRbel0sRilyIGluIHR8fCh0W3JdPUZbcl0sd1tyXT1EKTtlbHNlIHdbel09RH0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7CmZvcig7ZjxnO2YrKylpZihiPXgucHJlZmlsdGVyc1tmXS5jYWxsKGwsYSxjLGwub3B0cykpcmV0dXJuIE0oYi5zdG9wKSYmKGQuX3F1ZXVlSG9va3MobC5lbGVtLGwub3B0cy5xdWV1ZSkuc3RvcD1iLnN0b3AuYmluZChiKSksYjtyZXR1cm4gZC5tYXAoYyx1LGwpLE0obC5vcHRzLnN0YXJ0KSYmbC5vcHRzLnN0YXJ0LmNhbGwoYSxsKSxsLnByb2dyZXNzKGwub3B0cy5wcm9ncmVzcykuZG9uZShsLm9wdHMuZG9uZSxsLm9wdHMuY29tcGxldGUpLmZhaWwobC5vcHRzLmZhaWwpLmFsd2F5cyhsLm9wdHMuYWx3YXlzKSxkLmZ4LnRpbWVyKGQuZXh0ZW5kKG0se2VsZW06YSxhbmltOmwscXVldWU6bC5vcHRzLnF1ZXVlfSkpLGx9ZnVuY3Rpb24gQyhhKXtyZXR1cm4oYS5tYXRjaChMYSl8fFtdKS5qb2luKCIgIil9ZnVuY3Rpb24gSChhKXtyZXR1cm4gYS5nZXRBdHRyaWJ1dGUmJmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiBQKGEpe3JldHVybiBBcnJheS5pc0FycmF5KGEpPwphOiJzdHJpbmciPT10eXBlb2YgYSYmYS5tYXRjaChMYSl8fFtdfWZ1bmN0aW9uIGVhKGEsYixjLGUpe3ZhciBmO2lmKEFycmF5LmlzQXJyYXkoYikpZC5lYWNoKGIsZnVuY3Rpb24oZyxoKXtjfHxVYy50ZXN0KGEpP2UoYSxoKTplYShhKyJbIisoIm9iamVjdCI9PXR5cGVvZiBoJiZudWxsIT1oP2c6IiIpKyJdIixoLGMsZSl9KTtlbHNlIGlmKGN8fCJvYmplY3QiIT09VShiKSllKGEsYik7ZWxzZSBmb3IoZiBpbiBiKWVhKGErIlsiK2YrIl0iLGJbZl0sYyxlKX1mdW5jdGlvbiBRYShhKXtyZXR1cm4gZnVuY3Rpb24oYixjKXsic3RyaW5nIiE9dHlwZW9mIGImJihjPWIsYj0iKiIpO3ZhciBlPTAsZj1iLnRvTG93ZXJDYXNlKCkubWF0Y2goTGEpfHxbXTtpZihNKGMpKWZvcig7Yj1mW2UrK107KSIrIj09PWJbMF0\/KGI9Yi5zbGljZSgxKXx8IioiLChhW2JdPWFbYl18fFtdKS51bnNoaWZ0KGMpKTooYVtiXT1hW2JdfHxbXSkucHVzaChjKX19ZnVuY3Rpb24gRWIoYSxiLGMsZSl7ZnVuY3Rpb24gZihtKXt2YXIgbDsKcmV0dXJuIGdbbV09ITAsZC5lYWNoKGFbbV18fFtdLGZ1bmN0aW9uKHQsdyl7dD13KGIsYyxlKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHR8fGh8fGdbdF0\/aD8hKGw9dCk6dm9pZCAwOihiLmRhdGFUeXBlcy51bnNoaWZ0KHQpLGYodCksITEpfSksbH12YXIgZz17fSxoPWE9PT1jYztyZXR1cm4gZihiLmRhdGFUeXBlc1swXSl8fCFnWyIqIl0mJmYoIioiKX1mdW5jdGlvbiBoYihhLGIpe3ZhciBjLGUsZj1kLmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9uc3x8e307Zm9yKGMgaW4gYil2b2lkIDAhPT1iW2NdJiYoKGZbY10\/YTplfHwoZT17fSkpW2NdPWJbY10pO3JldHVybiBlJiZkLmV4dGVuZCghMCxhLGUpLGF9dmFyIG9hPVtdLHNjPU9iamVjdC5nZXRQcm90b3R5cGVPZix5YT1vYS5zbGljZSxvYz1vYS5mbGF0P2Z1bmN0aW9uKGEpe3JldHVybiBvYS5mbGF0LmNhbGwoYSl9OmZ1bmN0aW9uKGEpe3JldHVybiBvYS5jb25jYXQuYXBwbHkoW10sYSl9LHViPW9hLnB1c2gsTmE9b2EuaW5kZXhPZiwKTWI9e30sa2M9TWIudG9TdHJpbmcsRmI9TWIuaGFzT3duUHJvcGVydHksdGM9RmIudG9TdHJpbmcsVmM9dGMuY2FsbChPYmplY3QpLE49e30sTT1mdW5jdGlvbihhKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYSYmIm51bWJlciIhPXR5cGVvZiBhLm5vZGVUeXBlJiYiZnVuY3Rpb24iIT10eXBlb2YgYS5pdGVtfSxrYj1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbCE9YSYmYT09PWEud2luZG93fSxMPW4uZG9jdW1lbnQsTGM9e3R5cGU6ITAsc3JjOiEwLG5vbmNlOiEwLG5vTW9kdWxlOiEwfSxXYz0vSFRNTCQvaSxkPWZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBkLmZuLmluaXQoYSxiKX07ZC5mbj1kLnByb3RvdHlwZT17anF1ZXJ5OiIzLjcuMCIsY29uc3RydWN0b3I6ZCxsZW5ndGg6MCx0b0FycmF5OmZ1bmN0aW9uKCl7cmV0dXJuIHlhLmNhbGwodGhpcyl9LGdldDpmdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT95YS5jYWxsKHRoaXMpOjA+YT90aGlzW2ErdGhpcy5sZW5ndGhdOnRoaXNbYV19LApwdXNoU3RhY2s6ZnVuY3Rpb24oYSl7YT1kLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxhKTtyZXR1cm4gYS5wcmV2T2JqZWN0PXRoaXMsYX0sZWFjaDpmdW5jdGlvbihhKXtyZXR1cm4gZC5lYWNoKHRoaXMsYSl9LG1hcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC5tYXAodGhpcyxmdW5jdGlvbihiLGMpe3JldHVybiBhLmNhbGwoYixjLGIpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayh5YS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSxmaXJzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKDApfSxsYXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoLTEpfSxldmVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQuZ3JlcCh0aGlzLGZ1bmN0aW9uKGEsYil7cmV0dXJuKGIrMSklMn0pKX0sb2RkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQuZ3JlcCh0aGlzLGZ1bmN0aW9uKGEsYil7cmV0dXJuIGIlCjJ9KSl9LGVxOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoO2E9K2ErKDA+YT9iOjApO3JldHVybiB0aGlzLnB1c2hTdGFjaygwPD1hJiZhPGI\/W3RoaXNbYV1dOltdKX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8dGhpcy5jb25zdHJ1Y3RvcigpfSxwdXNoOnViLHNvcnQ6b2Euc29ydCxzcGxpY2U6b2Euc3BsaWNlfTtkLmV4dGVuZD1kLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBhLGIsYyxlLGYsZz1hcmd1bWVudHNbMF18fHt9LGg9MSxtPWFyZ3VtZW50cy5sZW5ndGgsbD0hMTsiYm9vbGVhbiI9PXR5cGVvZiBnJiYobD1nLGc9YXJndW1lbnRzW2hdfHx7fSxoKyspOyJvYmplY3QiPT10eXBlb2YgZ3x8TShnKXx8KGc9e30pO2ZvcihoPT09bSYmKGc9dGhpcyxoLS0pO2g8bTtoKyspaWYobnVsbCE9KGE9YXJndW1lbnRzW2hdKSlmb3IoYiBpbiBhKXt2YXIgdD1hW2JdOyJfX3Byb3RvX18iIT09YiYmZyE9PXQmJihsJiZ0JiYoZC5pc1BsYWluT2JqZWN0KHQpfHwKKGU9QXJyYXkuaXNBcnJheSh0KSkpPyhjPWdbYl0sZj1lJiYhQXJyYXkuaXNBcnJheShjKT9bXTplfHxkLmlzUGxhaW5PYmplY3QoYyk\/Yzp7fSxlPSExLGdbYl09ZC5leHRlbmQobCxmLHQpKTp2b2lkIDAhPT10JiYoZ1tiXT10KSl9cmV0dXJuIGd9O2QuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKygiMy43LjAiK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oYSl7dGhyb3cgRXJyb3IoYSk7fSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGEpe3ZhciBiLGM7cmV0dXJuISghYXx8IltvYmplY3QgT2JqZWN0XSIhPT1rYy5jYWxsKGEpKSYmKCEoYj1zYyhhKSl8fCJmdW5jdGlvbiI9PXR5cGVvZihjPUZiLmNhbGwoYiwiY29uc3RydWN0b3IiKSYmYi5jb25zdHJ1Y3RvcikmJnRjLmNhbGwoYyk9PT1WYyl9LGlzRW1wdHlPYmplY3Q6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEpcmV0dXJuITE7cmV0dXJuITB9LApnbG9iYWxFdmFsOmZ1bmN0aW9uKGEsYixjKXt3YShhLHtub25jZTpiJiZiLm5vbmNlfSxjKX0sZWFjaDpmdW5jdGlvbihhLGIpe3ZhciBjLGU9MDtpZihlYihhKSlmb3IoYz1hLmxlbmd0aDtlPGMmJiExIT09Yi5jYWxsKGFbZV0sZSxhW2VdKTtlKyspO2Vsc2UgZm9yKGUgaW4gYSlpZighMT09PWIuY2FsbChhW2VdLGUsYVtlXSkpYnJlYWs7cmV0dXJuIGF9LHRleHQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz0iIixlPTA7aWYoYj1hLm5vZGVUeXBlKXtpZigxPT09Ynx8OT09PWJ8fDExPT09YilyZXR1cm4gYS50ZXh0Q29udGVudDtpZigzPT09Ynx8ND09PWIpcmV0dXJuIGEubm9kZVZhbHVlfWVsc2UgZm9yKDtiPWFbZSsrXTspYys9ZC50ZXh0KGIpO3JldHVybiBjfSxtYWtlQXJyYXk6ZnVuY3Rpb24oYSxiKXtiPWJ8fFtdO3JldHVybiBudWxsIT1hJiYoZWIoT2JqZWN0KGEpKT9kLm1lcmdlKGIsInN0cmluZyI9PXR5cGVvZiBhP1thXTphKTp1Yi5jYWxsKGIsYSkpLGJ9LGluQXJyYXk6ZnVuY3Rpb24oYSwKYixjKXtyZXR1cm4gbnVsbD09Yj8tMTpOYS5jYWxsKGIsYSxjKX0saXNYTUxEb2M6ZnVuY3Rpb24oYSl7dmFyIGI9YSYmKGEub3duZXJEb2N1bWVudHx8YSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiFXYy50ZXN0KGEmJmEubmFtZXNwYWNlVVJJfHxiJiZiLm5vZGVOYW1lfHwiSFRNTCIpfSxtZXJnZTpmdW5jdGlvbihhLGIpe2Zvcih2YXIgYz0rYi5sZW5ndGgsZT0wLGY9YS5sZW5ndGg7ZTxjO2UrKylhW2YrK109YltlXTtyZXR1cm4gYS5sZW5ndGg9ZixhfSxncmVwOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT1bXSxmPTAsZz1hLmxlbmd0aDtmb3IoYz0hYztmPGc7ZisrKSFiKGFbZl0sZikhPT1jJiZlLnB1c2goYVtmXSk7cmV0dXJuIGV9LG1hcDpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnPTAsaD1bXTtpZihlYihhKSlmb3IoZT1hLmxlbmd0aDtnPGU7ZysrKW51bGwhPShmPWIoYVtnXSxnLGMpKSYmaC5wdXNoKGYpO2Vsc2UgZm9yKGcgaW4gYSludWxsIT0oZj1iKGFbZ10sZyxjKSkmJgpoLnB1c2goZik7cmV0dXJuIG9jKGgpfSxndWlkOjEsc3VwcG9ydDpOfSk7ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGQuZm5bU3ltYm9sLml0ZXJhdG9yXT1vYVtTeW1ib2wuaXRlcmF0b3JdKTtkLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsYil7TWJbIltvYmplY3QgIitiKyJdIl09Yi50b0xvd2VyQ2FzZSgpfSk7dmFyIFhjPW9hLnBvcCxZYz1vYS5zb3J0LFpjPW9hLnNwbGljZSx6Yj1SZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdK3woKD86XnxbXlxcXFxdKSg\/OlxcXFwuKSopW1xceDIwXFx0XFxyXFxuXFxmXSskIiwiZyIpO2QuY29udGFpbnM9ZnVuY3Rpb24oYSxiKXtiPWImJmIucGFyZW50Tm9kZTtyZXR1cm4gYT09PWJ8fCEoIWJ8fDEhPT1iLm5vZGVUeXBlfHwhKGEuY29udGFpbnM\/YS5jb250YWlucyhiKTphLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uJiYKMTYmYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihiKSkpfTt2YXIgJGM9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15ceDgwLVx1RkZGRlx3LV0vZztkLmVzY2FwZVNlbGVjdG9yPWZ1bmN0aW9uKGEpe3JldHVybihhKyIiKS5yZXBsYWNlKCRjLGJhKX07dmFyIFJhPUw7IWZ1bmN0aW9uKCl7ZnVuY3Rpb24gYShrLHAscSx2KXt2YXIgeSxFLEEsSSxCPXAmJnAub3duZXJEb2N1bWVudCxKPXA\/cC5ub2RlVHlwZTo5O2lmKHE9cXx8W10sInN0cmluZyIhPXR5cGVvZiBrfHwha3x8MSE9PUomJjkhPT1KJiYxMSE9PUopcmV0dXJuIHE7aWYoIXYmJih0KHApLHA9cHx8Wix2YSkpe2lmKDExIT09SiYmKEk9YWQuZXhlYyhrKSkpaWYoeT1JWzFdKWlmKDk9PT1KKXtpZighKEU9cC5nZXRFbGVtZW50QnlJZCh5KSkpcmV0dXJuIHE7aWYoRS5pZD09PXkpcmV0dXJuIHRhLmNhbGwocSxFKSxxfWVsc2V7aWYoQiYmKEU9Qi5nZXRFbGVtZW50QnlJZCh5KSkmJmEuY29udGFpbnMocCxFKSYmRS5pZD09PQp5KXJldHVybiB0YS5jYWxsKHEsRSkscX1lbHNle2lmKElbMl0pcmV0dXJuIHRhLmFwcGx5KHEscC5nZXRFbGVtZW50c0J5VGFnTmFtZShrKSkscTtpZigoeT1JWzNdKSYmcC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXJldHVybiB0YS5hcHBseShxLHAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSh5KSkscX1pZighKFlbaysiICJdfHxrYSYma2EudGVzdChrKSkpe2lmKHk9ayxCPXAsMT09PUomJih2Yi50ZXN0KGspfHxIYS50ZXN0KGspKSl7KEI9ZGMudGVzdChrKSYmbChwLnBhcmVudE5vZGUpfHxwKT09cCYmTi5zY29wZXx8KChBPXAuZ2V0QXR0cmlidXRlKCJpZCIpKT9BPWQuZXNjYXBlU2VsZWN0b3IoQSk6cC5zZXRBdHRyaWJ1dGUoImlkIixBPVcpKTtmb3IoSj0oeT1yKGspKS5sZW5ndGg7Si0tOyl5W0pdPShBPyIjIitBOiI6c2NvcGUiKSsiICIreih5W0pdKTt5PXkuam9pbigiLCIpfXRyeXtyZXR1cm4gdGEuYXBwbHkocSxCLnF1ZXJ5U2VsZWN0b3JBbGwoeSkpLHF9Y2F0Y2goUil7WShrLAohMCl9ZmluYWxseXtBPT09VyYmcC5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gU2Eoay5yZXBsYWNlKHpiLCIkMSIpLHAscSx2KX1mdW5jdGlvbiBiKCl7dmFyIGs9W107cmV0dXJuIGZ1bmN0aW9uIHkocSx2KXtyZXR1cm4gay5wdXNoKHErIiAiKT5LLmNhY2hlTGVuZ3RoJiZkZWxldGUgeVtrLnNoaWZ0KCldLHlbcSsiICJdPXZ9fWZ1bmN0aW9uIGMoayl7cmV0dXJuIGtbV109ITAsa31mdW5jdGlvbiBlKGspe3ZhciBwPVouY3JlYXRlRWxlbWVudCgiZmllbGRzZXQiKTt0cnl7cmV0dXJuISFrKHApfWNhdGNoKHEpe3JldHVybiExfWZpbmFsbHl7cC5wYXJlbnROb2RlJiZwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocCl9fWZ1bmN0aW9uIGYoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiBYKHAsImlucHV0IikmJnAudHlwZT09PWt9fWZ1bmN0aW9uIGcoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybihYKHAsImlucHV0Iil8fFgocCwiYnV0dG9uIikpJiZwLnR5cGU9PT0Ka319ZnVuY3Rpb24gaChrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuImZvcm0iaW4gcD9wLnBhcmVudE5vZGUmJiExPT09cC5kaXNhYmxlZD8ibGFiZWwiaW4gcD8ibGFiZWwiaW4gcC5wYXJlbnROb2RlP3AucGFyZW50Tm9kZS5kaXNhYmxlZD09PWs6cC5kaXNhYmxlZD09PWs6cC5pc0Rpc2FibGVkPT09a3x8cC5pc0Rpc2FibGVkIT09IWsmJmJkKHApPT09azpwLmRpc2FibGVkPT09azoibGFiZWwiaW4gcCYmcC5kaXNhYmxlZD09PWt9fWZ1bmN0aW9uIG0oayl7cmV0dXJuIGMoZnVuY3Rpb24ocCl7cmV0dXJuIHA9K3AsYyhmdW5jdGlvbihxLHYpe2Zvcih2YXIgeSxFPWsoW10scS5sZW5ndGgscCksQT1FLmxlbmd0aDtBLS07KXFbeT1FW0FdXSYmKHFbeV09ISh2W3ldPXFbeV0pKX0pfSl9ZnVuY3Rpb24gbChrKXtyZXR1cm4gayYmInVuZGVmaW5lZCIhPXR5cGVvZiBrLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZrfWZ1bmN0aW9uIHQoayl7dmFyIHA7az1rP2sub3duZXJEb2N1bWVudHx8Cms6UmE7cmV0dXJuIGshPVomJjk9PT1rLm5vZGVUeXBlJiZrLmRvY3VtZW50RWxlbWVudCYmKHJhPShaPWspLmRvY3VtZW50RWxlbWVudCx2YT0hZC5pc1hNTERvYyhaKSxNYT1yYS5tYXRjaGVzfHxyYS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fHJhLm1zTWF0Y2hlc1NlbGVjdG9yLFJhIT1aJiYocD1aLmRlZmF1bHRWaWV3KSYmcC50b3AhPT1wJiZwLmFkZEV2ZW50TGlzdGVuZXIoInVubG9hZCIsY2QpLE4uZ2V0QnlJZD1lKGZ1bmN0aW9uKHEpe3JldHVybiByYS5hcHBlbmRDaGlsZChxKS5pZD1kLmV4cGFuZG8sIVouZ2V0RWxlbWVudHNCeU5hbWV8fCFaLmdldEVsZW1lbnRzQnlOYW1lKGQuZXhwYW5kbykubGVuZ3RofSksTi5kaXNjb25uZWN0ZWRNYXRjaD1lKGZ1bmN0aW9uKHEpe3JldHVybiBNYS5jYWxsKHEsIioiKX0pLE4uc2NvcGU9ZShmdW5jdGlvbigpe3JldHVybiBaLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSIpfSksTi5jc3NIYXM9ZShmdW5jdGlvbigpe3RyeXtyZXR1cm4gWi5xdWVyeVNlbGVjdG9yKCI6aGFzKCosOmpxZmFrZSkiKSwKITF9Y2F0Y2gocSl7cmV0dXJuITB9fSksTi5nZXRCeUlkPyhLLmZpbHRlci5JRD1mdW5jdGlvbihxKXt2YXIgdj1xLnJlcGxhY2UoVGEsVWEpO3JldHVybiBmdW5jdGlvbih5KXtyZXR1cm4geS5nZXRBdHRyaWJ1dGUoImlkIik9PT12fX0sSy5maW5kLklEPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRCeUlkJiZ2YSlyZXR1cm4ocT12LmdldEVsZW1lbnRCeUlkKHEpKT9bcV06W119KTooSy5maWx0ZXIuSUQ9ZnVuY3Rpb24ocSl7dmFyIHY9cS5yZXBsYWNlKFRhLFVhKTtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuKHk9InVuZGVmaW5lZCIhPXR5cGVvZiB5LmdldEF0dHJpYnV0ZU5vZGUmJnkuZ2V0QXR0cmlidXRlTm9kZSgiaWQiKSkmJnkudmFsdWU9PT12fX0sSy5maW5kLklEPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRCeUlkJiZ2YSl7dmFyIHksRT12LmdldEVsZW1lbnRCeUlkKHEpO2lmKEUpe2lmKCh5PQpFLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09cSlyZXR1cm5bRV07dmFyIEE9di5nZXRFbGVtZW50c0J5TmFtZShxKTtmb3Iodj0wO0U9QVt2KytdOylpZigoeT1FLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09cSlyZXR1cm5bRV19cmV0dXJuW119fSksSy5maW5kLlRBRz1mdW5jdGlvbihxLHYpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50c0J5VGFnTmFtZT92LmdldEVsZW1lbnRzQnlUYWdOYW1lKHEpOnYucXVlcnlTZWxlY3RvckFsbChxKX0sSy5maW5kLkNMQVNTPWZ1bmN0aW9uKHEsdil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJnZhKXJldHVybiB2LmdldEVsZW1lbnRzQnlDbGFzc05hbWUocSl9LGthPVtdLGUoZnVuY3Rpb24ocSl7dmFyIHY7cmEuYXBwZW5kQ2hpbGQocSkuaW5uZXJIVE1MPSI8YSBpZD0nIitXKyInIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+PHNlbGVjdCBpZD0nIisKVysiLVxyXFwnIGRpc2FibGVkPSdkaXNhYmxlZCc+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD4iO3EucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8a2EucHVzaCgiXFxbW1xceDIwXFx0XFxyXFxuXFxmXSooPzp2YWx1ZXxjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCkiKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49IitXKyItXSIpLmxlbmd0aHx8a2EucHVzaCgifj0iKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoImEjIitXKyIrKiIpLmxlbmd0aHx8a2EucHVzaCgiLiMuK1srfl0iKTtxLnF1ZXJ5U2VsZWN0b3JBbGwoIjpjaGVja2VkIikubGVuZ3RofHxrYS5wdXNoKCI6Y2hlY2tlZCIpOyh2PVouY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJ0eXBlIiwKImhpZGRlbiIpO3EuYXBwZW5kQ2hpbGQodikuc2V0QXR0cmlidXRlKCJuYW1lIiwiRCIpO3JhLmFwcGVuZENoaWxkKHEpLmRpc2FibGVkPSEwOzIhPT1xLnF1ZXJ5U2VsZWN0b3JBbGwoIjpkaXNhYmxlZCIpLmxlbmd0aCYma2EucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKTsodj1aLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgibmFtZSIsIiIpO3EuYXBwZW5kQ2hpbGQodik7cS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT0nJ10iKS5sZW5ndGh8fGthLnB1c2goIlxcW1tcXHgyMFxcdFxcclxcblxcZl0qbmFtZVtcXHgyMFxcdFxcclxcblxcZl0qPVtcXHgyMFxcdFxcclxcblxcZl0qKD86Jyd8XCJcIikiKX0pLE4uY3NzSGFzfHxrYS5wdXNoKCI6aGFzIiksa2E9a2EubGVuZ3RoJiZuZXcgUmVnRXhwKGthLmpvaW4oInwiKSksbGE9ZnVuY3Rpb24ocSx2KXtpZihxPT09dilyZXR1cm4gaWI9ITAsMDt2YXIgeT0hcS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbi0hdi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjsKcmV0dXJuIHl8fCgxJih5PShxLm93bmVyRG9jdW1lbnR8fHEpPT0odi5vd25lckRvY3VtZW50fHx2KT9xLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHYpOjEpfHwhTi5zb3J0RGV0YWNoZWQmJnYuY29tcGFyZURvY3VtZW50UG9zaXRpb24ocSk9PT15P3E9PT1afHxxLm93bmVyRG9jdW1lbnQ9PVJhJiZhLmNvbnRhaW5zKFJhLHEpPy0xOnY9PT1afHx2Lm93bmVyRG9jdW1lbnQ9PVJhJiZhLmNvbnRhaW5zKFJhLHYpPzE6aGE\/TmEuY2FsbChoYSxxKS1OYS5jYWxsKGhhLHYpOjA6NCZ5Py0xOjEpfSksWn1mdW5jdGlvbiB3KCl7fWZ1bmN0aW9uIHIoayxwKXt2YXIgcSx2LHksRSxBLEk7aWYoQT1WYVtrKyIgIl0pcmV0dXJuIHA\/MDpBLnNsaWNlKDApO0E9azt2YXIgQj1bXTtmb3IoST1LLnByZUZpbHRlcjtBOyl7Zm9yKEUgaW4gcSYmISh2PW1hLmV4ZWMoQSkpfHwodiYmKEE9QS5zbGljZSh2WzBdLmxlbmd0aCl8fEEpLEIucHVzaCh5PVtdKSkscT0hMSwodj1IYS5leGVjKEEpKSYmKHE9CnYuc2hpZnQoKSx5LnB1c2goe3ZhbHVlOnEsdHlwZTp2WzBdLnJlcGxhY2UoemIsIiAiKX0pLEE9QS5zbGljZShxLmxlbmd0aCkpLEsuZmlsdGVyKSEodj1ZYltFXS5leGVjKEEpKXx8SVtFXSYmISh2PUlbRV0odikpfHwocT12LnNoaWZ0KCkseS5wdXNoKHt2YWx1ZTpxLHR5cGU6RSxtYXRjaGVzOnZ9KSxBPUEuc2xpY2UocS5sZW5ndGgpKTtpZighcSlicmVha31yZXR1cm4gcD9BLmxlbmd0aDpBP2EuZXJyb3Ioayk6VmEoayxCKS5zbGljZSgwKX1mdW5jdGlvbiB6KGspe2Zvcih2YXIgcD0wLHE9ay5sZW5ndGgsdj0iIjtwPHE7cCsrKXYrPWtbcF0udmFsdWU7cmV0dXJuIHZ9ZnVuY3Rpb24gRChrLHAscSl7dmFyIHY9cC5kaXIseT1wLm5leHQsRT15fHx2LEE9cSYmInBhcmVudE5vZGUiPT09RSxJPURhKys7cmV0dXJuIHAuZmlyc3Q\/ZnVuY3Rpb24oQixKLFIpe2Zvcig7Qj1CW3ZdOylpZigxPT09Qi5ub2RlVHlwZXx8QSlyZXR1cm4gayhCLEosUik7cmV0dXJuITF9OmZ1bmN0aW9uKEIsCkosUil7dmFyIFQsVixpYT1bZmEsSV07aWYoUilmb3IoO0I9Qlt2XTspe2lmKCgxPT09Qi5ub2RlVHlwZXx8QSkmJmsoQixKLFIpKXJldHVybiEwfWVsc2UgZm9yKDtCPUJbdl07KWlmKDE9PT1CLm5vZGVUeXBlfHxBKWlmKFY9QltXXXx8KEJbV109e30pLHkmJlgoQix5KSlCPUJbdl18fEI7ZWxzZXtpZigoVD1WW0VdKSYmVFswXT09PWZhJiZUWzFdPT09SSlyZXR1cm4gaWFbMl09VFsyXTtpZigoVltFXT1pYSlbMl09ayhCLEosUikpcmV0dXJuITB9cmV0dXJuITF9fWZ1bmN0aW9uIEYoayl7cmV0dXJuIDE8ay5sZW5ndGg\/ZnVuY3Rpb24ocCxxLHYpe2Zvcih2YXIgeT1rLmxlbmd0aDt5LS07KWlmKCFrW3ldKHAscSx2KSlyZXR1cm4hMTtyZXR1cm4hMH06a1swXX1mdW5jdGlvbiBPKGsscCxxLHYseSl7Zm9yKHZhciBFLEE9W10sST0wLEI9ay5sZW5ndGgsSj1udWxsIT1wO0k8QjtJKyspKEU9a1tJXSkmJihxJiYhcShFLHYseSl8fChBLnB1c2goRSksSiYmcC5wdXNoKEkpKSk7cmV0dXJuIEF9CmZ1bmN0aW9uIGFhKGsscCxxLHYseSxFKXtyZXR1cm4gdiYmIXZbV10mJih2PWFhKHYpKSx5JiYheVtXXSYmKHk9YWEoeSxFKSksYyhmdW5jdGlvbihBLEksQixKKXt2YXIgUixULFY9W10saWE9W10scGE9SS5sZW5ndGgsbmE7aWYoIShuYT1BKSl7bmE9cHx8IioiO2Zvcih2YXIgRWE9Qi5ub2RlVHlwZT9bQl06QixjYT1bXSxBYT0wLFdhPUVhLmxlbmd0aDtBYTxXYTtBYSsrKWEobmEsRWFbQWFdLGNhKTtuYT1jYX1uYT0ha3x8IUEmJnA\/bmE6TyhuYSxWLGssQixKKTtpZihxP3EobmEsVD15fHwoQT9rOnBhfHx2KT9bXTpJLEIsSik6VD1uYSx2KXt2YXIgRmE9TyhULGlhKTt2KEZhLFtdLEIsSik7Zm9yKEI9RmEubGVuZ3RoO0ItLTspKFI9RmFbQl0pJiYoVFtpYVtCXV09IShuYVtpYVtCXV09UikpfWlmKEEpe2lmKHl8fGspe2lmKHkpe0ZhPVtdO2ZvcihCPVQubGVuZ3RoO0ItLTspKFI9VFtCXSkmJkZhLnB1c2gobmFbQl09Uik7eShudWxsLFQ9W10sRmEsSil9Zm9yKEI9VC5sZW5ndGg7Qi0tOykoUj0KVFtCXSkmJi0xPChGYT15P05hLmNhbGwoQSxSKTpWW0JdKSYmKEFbRmFdPSEoSVtGYV09UikpfX1lbHNlIFQ9TyhUPT09ST9ULnNwbGljZShwYSxULmxlbmd0aCk6VCkseT95KG51bGwsSSxULEopOnRhLmFwcGx5KEksVCl9KX1mdW5jdGlvbiBHYShrKXtmb3IodmFyIHAscSx2PWsubGVuZ3RoLHk9Sy5yZWxhdGl2ZVtrWzBdLnR5cGVdLEU9eXx8Sy5yZWxhdGl2ZVsiICJdLEE9eT8xOjAsST1EKGZ1bmN0aW9uKFIpe3JldHVybiBSPT09cH0sRSwhMCksQj1EKGZ1bmN0aW9uKFIpe3JldHVybi0xPE5hLmNhbGwocCxSKX0sRSwhMCksSj1bZnVuY3Rpb24oUixULFYpe1I9IXkmJihWfHxUIT1TKXx8KChwPVQpLm5vZGVUeXBlP0koUixULFYpOkIoUixULFYpKTtyZXR1cm4gcD1udWxsLFJ9XTtBPHY7QSsrKWlmKEU9Sy5yZWxhdGl2ZVtrW0FdLnR5cGVdKUo9W0QoRihKKSxFKV07ZWxzZXtpZigoRT1LLmZpbHRlcltrW0FdLnR5cGVdLmFwcGx5KG51bGwsa1tBXS5tYXRjaGVzKSlbV10pe2ZvcihxPQorK0E7cTx2JiYhSy5yZWxhdGl2ZVtrW3FdLnR5cGVdO3ErKyk7cmV0dXJuIGFhKDE8QSYmRihKKSwxPEEmJnooay5zbGljZSgwLEEtMSkuY29uY2F0KHt2YWx1ZToiICI9PT1rW0EtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZSh6YiwiJDEiKSxFLEE8cSYmR2Eoay5zbGljZShBLHEpKSxxPHYmJkdhKGs9ay5zbGljZShxKSkscTx2JiZ6KGspKX1KLnB1c2goRSl9cmV0dXJuIEYoSil9ZnVuY3Rpb24gcWEoayxwKXt2YXIgcSx2LHksRSxBPVtdLEk9W10sQj11YVtrKyIgIl07aWYoIUIpe3B8fChwPXIoaykpO2ZvcihxPXAubGVuZ3RoO3EtLTspKEI9R2EocFtxXSkpW1ddP0EucHVzaChCKTpJLnB1c2goQik7KEI9dWEoaywodj0wPEEubGVuZ3RoLHk9MDxJLmxlbmd0aCxFPWZ1bmN0aW9uKEosUixULFYsaWEpe3ZhciBwYSxuYSxFYT0wLGNhPSIwIixBYT1KJiZbXSxXYT1bXSxGYT1TLHVjPUp8fHkmJksuZmluZC5UQUcoIioiLGlhKSx2Yz1mYSs9bnVsbD09RmE\/MTpNYXRoLnJhbmRvbSgpfHwKLjEsZGQ9dWMubGVuZ3RoO2ZvcihpYSYmKFM9Uj09Wnx8Unx8aWEpO2NhIT09ZGQmJm51bGwhPShwYT11Y1tjYV0pO2NhKyspe2lmKHkmJnBhKXt2YXIgZWM9MDtmb3IoUnx8cGEub3duZXJEb2N1bWVudD09Wnx8KHQocGEpLFQ9IXZhKTtuYT1JW2VjKytdOylpZihuYShwYSxSfHxaLFQpKXt0YS5jYWxsKFYscGEpO2JyZWFrfWlhJiYoZmE9dmMpfXYmJigocGE9IW5hJiZwYSkmJkVhLS0sSiYmQWEucHVzaChwYSkpfWlmKEVhKz1jYSx2JiZjYSE9PUVhKXtmb3IoZWM9MDtuYT1BW2VjKytdOyluYShBYSxXYSxSLFQpO2lmKEope2lmKDA8RWEpZm9yKDtjYS0tOylBYVtjYV18fFdhW2NhXXx8KFdhW2NhXT1YYy5jYWxsKFYpKTtXYT1PKFdhKX10YS5hcHBseShWLFdhKTtpYSYmIUomJjA8V2EubGVuZ3RoJiYxPEVhK0EubGVuZ3RoJiZkLnVuaXF1ZVNvcnQoVil9cmV0dXJuIGlhJiYoZmE9dmMsUz1GYSksQWF9LHY\/YyhFKTpFKSkpLnNlbGVjdG9yPWt9cmV0dXJuIEJ9ZnVuY3Rpb24gU2EoaywKcCxxLHYpe3ZhciB5LEUsQSxJLEIsSj0iZnVuY3Rpb24iPT10eXBlb2YgayYmayxSPSF2JiZyKGs9Si5zZWxlY3Rvcnx8ayk7aWYocT1xfHxbXSwxPT09Ui5sZW5ndGgpe2lmKDI8KEU9UlswXT1SWzBdLnNsaWNlKDApKS5sZW5ndGgmJiJJRCI9PT0oQT1FWzBdKS50eXBlJiY5PT09cC5ub2RlVHlwZSYmdmEmJksucmVsYXRpdmVbRVsxXS50eXBlXSl7aWYoIShwPShLLmZpbmQuSUQoQS5tYXRjaGVzWzBdLnJlcGxhY2UoVGEsVWEpLHApfHxbXSlbMF0pKXJldHVybiBxO0omJihwPXAucGFyZW50Tm9kZSk7az1rLnNsaWNlKEUuc2hpZnQoKS52YWx1ZS5sZW5ndGgpfWZvcih5PVliLm5lZWRzQ29udGV4dC50ZXN0KGspPzA6RS5sZW5ndGg7eS0tJiYoQT1FW3ldLCFLLnJlbGF0aXZlW0k9QS50eXBlXSk7KWlmKChCPUsuZmluZFtJXSkmJih2PUIoQS5tYXRjaGVzWzBdLnJlcGxhY2UoVGEsVWEpLGRjLnRlc3QoRVswXS50eXBlKSYmbChwLnBhcmVudE5vZGUpfHxwKSkpe2lmKEUuc3BsaWNlKHksCjEpLCEoaz12Lmxlbmd0aCYmeihFKSkpcmV0dXJuIHRhLmFwcGx5KHEsdikscTticmVha319cmV0dXJuKEp8fHFhKGssUikpKHYscCwhdmEscSwhcHx8ZGMudGVzdChrKSYmbChwLnBhcmVudE5vZGUpfHxwKSxxfXZhciBRLEssUyxoYSxpYixaLHJhLHZhLGthLE1hLHRhPXViLFc9ZC5leHBhbmRvLGZhPTAsRGE9MCxkYj1iKCksVmE9YigpLHVhPWIoKSxZPWIoKSxsYT1mdW5jdGlvbihrLHApe3JldHVybiBrPT09cCYmKGliPSEwKSwwfSxJYT1SZWdFeHAoIltcXHgyMFxcdFxcclxcblxcZl0rIiwiZyIpLG1hPVJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0qLFtcXHgyMFxcdFxcclxcblxcZl0qIiksSGE9UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSooWz4rfl18W1xceDIwXFx0XFxyXFxuXFxmXSlbXFx4MjBcXHRcXHJcXG5cXGZdKiIpLHZiPVJlZ0V4cCgiW1xceDIwXFx0XFxyXFxuXFxmXXw+IiksZmM9UmVnRXhwKCI6KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OlxcKCgoJygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCIpfCgoPzpcXFxcLnxbXlxcXFwoKVtcXF1dfFxcW1tcXHgyMFxcdFxcclxcblxcZl0qKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OltcXHgyMFxcdFxcclxcblxcZl0qKFsqXiR8IX5dPz0pW1xceDIwXFx0XFxyXFxuXFxmXSooPzonKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKXwpW1xceDIwXFx0XFxyXFxuXFxmXSpcXF0pKil8LiopXFwpfCkiKSwKZWQ9UmVnRXhwKCJeKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSskIiksWWI9e0lEOlJlZ0V4cCgiXiMoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspIiksQ0xBU1M6UmVnRXhwKCJeXFwuKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSIpLFRBRzpSZWdFeHAoIl4oKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSt8WypdKSIpLEFUVFI6UmVnRXhwKCJeXFxbW1xceDIwXFx0XFxyXFxuXFxmXSooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86W1xceDIwXFx0XFxyXFxuXFxmXSooWypeJHwhfl0\/PSlbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwifCgoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykpfClbXFx4MjBcXHRcXHJcXG5cXGZdKlxcXSIpLApQU0VVRE86UmVnRXhwKCJeOigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXxcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpbXFx4MjBcXHRcXHJcXG5cXGZdKihbKl4kfCF+XT89KVtcXHgyMFxcdFxcclxcblxcZl0qKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSl8KVtcXHgyMFxcdFxcclxcblxcZl0qXFxdKSopfC4qKVxcKXwpIiksCkNISUxEOlJlZ0V4cCgiXjoob25seXxmaXJzdHxsYXN0fG50aHxudGgtbGFzdCktKGNoaWxkfG9mLXR5cGUpKD86XFwoW1xceDIwXFx0XFxyXFxuXFxmXSooZXZlbnxvZGR8KChbKy1dfCkoXFxkKilufClbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OihbKy1dfClbXFx4MjBcXHRcXHJcXG5cXGZdKihcXGQrKXwpKVtcXHgyMFxcdFxcclxcblxcZl0qXFwpfCkiLCJpIiksYm9vbDpSZWdFeHAoIl4oPzpjaGVja2VkfHNlbGVjdGVkfGFzeW5jfGF1dG9mb2N1c3xhdXRvcGxheXxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58aXNtYXB8bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZCkkIiwiaSIpLG5lZWRzQ29udGV4dDpSZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdKls+K35dfDooZXZlbnxvZGR8ZXF8Z3R8bHR8bnRofGZpcnN0fGxhc3QpKD86XFwoW1xceDIwXFx0XFxyXFxuXFxmXSooKD86LVxcZCk\/XFxkKilbXFx4MjBcXHRcXHJcXG5cXGZdKlxcKXwpKD89W14tXXwkKSIsCiJpIil9LGZkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksZ2Q9L15oXGQkL2ksYWQ9L14oPzojKFtcdy1dKyl8KFx3Kyl8XC4oW1x3LV0rKSkkLyxkYz0vWyt+XS8sVGE9UmVnRXhwKCJcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFwoW15cXHJcXG5cXGZdKSIsImciKSxVYT1mdW5jdGlvbihrLHApe2s9IjB4IitrLnNsaWNlKDEpLTY1NTM2O3JldHVybiBwfHwoMD5rP1N0cmluZy5mcm9tQ2hhckNvZGUoays2NTUzNik6U3RyaW5nLmZyb21DaGFyQ29kZShrPj4xMHw1NTI5NiwxMDIzJmt8NTYzMjApKX0sY2Q9ZnVuY3Rpb24oKXt0KCl9LGJkPUQoZnVuY3Rpb24oayl7cmV0dXJuITA9PT1rLmRpc2FibGVkJiZYKGssImZpZWxkc2V0Iil9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTt0cnl7dGEuYXBwbHkob2E9eWEuY2FsbChSYS5jaGlsZE5vZGVzKSxSYS5jaGlsZE5vZGVzKSxvYVtSYS5jaGlsZE5vZGVzLmxlbmd0aF0ubm9kZVR5cGV9Y2F0Y2goayl7dGE9CnthcHBseTpmdW5jdGlvbihwLHEpe3ViLmFwcGx5KHAseWEuY2FsbChxKSl9LGNhbGw6ZnVuY3Rpb24ocCl7dWIuYXBwbHkocCx5YS5jYWxsKGFyZ3VtZW50cywxKSl9fX1mb3IoUSBpbiBhLm1hdGNoZXM9ZnVuY3Rpb24oayxwKXtyZXR1cm4gYShrLG51bGwsbnVsbCxwKX0sYS5tYXRjaGVzU2VsZWN0b3I9ZnVuY3Rpb24oayxwKXtpZih0KGspLCEoIXZhfHxZW3ArIiAiXXx8a2EmJmthLnRlc3QocCkpKXRyeXt2YXIgcT1NYS5jYWxsKGsscCk7aWYocXx8Ti5kaXNjb25uZWN0ZWRNYXRjaHx8ay5kb2N1bWVudCYmMTEhPT1rLmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBxfWNhdGNoKHYpe1kocCwhMCl9cmV0dXJuIDA8YShwLFosbnVsbCxba10pLmxlbmd0aH0sYS5jb250YWlucz1mdW5jdGlvbihrLHApe3JldHVybihrLm93bmVyRG9jdW1lbnR8fGspIT1aJiZ0KGspLGQuY29udGFpbnMoayxwKX0sYS5hdHRyPWZ1bmN0aW9uKGsscCl7KGsub3duZXJEb2N1bWVudHx8aykhPVomJnQoayk7CnZhciBxPUsuYXR0ckhhbmRsZVtwLnRvTG93ZXJDYXNlKCldO3E9cSYmRmIuY2FsbChLLmF0dHJIYW5kbGUscC50b0xvd2VyQ2FzZSgpKT9xKGsscCwhdmEpOnZvaWQgMDtyZXR1cm4gdm9pZCAwIT09cT9xOmsuZ2V0QXR0cmlidXRlKHApfSxhLmVycm9yPWZ1bmN0aW9uKGspe3Rocm93IEVycm9yKCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiAiK2spO30sZC51bmlxdWVTb3J0PWZ1bmN0aW9uKGspe3ZhciBwLHE9W10sdj0wLHk9MDtpZihpYj0hTi5zb3J0U3RhYmxlLGhhPSFOLnNvcnRTdGFibGUmJnlhLmNhbGwoaywwKSxZYy5jYWxsKGssbGEpLGliKXtmb3IoO3A9a1t5KytdOylwPT09a1t5XSYmKHY9cS5wdXNoKHkpKTtmb3IoO3YtLTspWmMuY2FsbChrLHFbdl0sMSl9cmV0dXJuIGhhPW51bGwsa30sZC5mbi51bmlxdWVTb3J0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQudW5pcXVlU29ydCh5YS5hcHBseSh0aGlzKSkpfSwoSz1kLmV4cHI9CntjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86YyxtYXRjaDpZYixhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oayl7cmV0dXJuIGtbMV09a1sxXS5yZXBsYWNlKFRhLFVhKSxrWzNdPShrWzNdfHxrWzRdfHxrWzVdfHwiIikucmVwbGFjZShUYSxVYSksIn49Ij09PWtbMl0mJihrWzNdPSIgIitrWzNdKyIgIiksay5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihrKXtyZXR1cm4ga1sxXT1rWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1rWzFdLnNsaWNlKDAsMyk\/KGtbM118fGEuZXJyb3Ioa1swXSksa1s0XT0rKGtbNF0\/a1s1XSsoa1s2XXx8MSk6MiooImV2ZW4iPT09a1szXXx8Im9kZCI9PT1rWzNdKSksa1s1XT0KKyhrWzddK2tbOF18fCJvZGQiPT09a1szXSkpOmtbM10mJmEuZXJyb3Ioa1swXSksa30sUFNFVURPOmZ1bmN0aW9uKGspe3ZhciBwLHE9IWtbNl0mJmtbMl07cmV0dXJuIFliLkNISUxELnRlc3Qoa1swXSk\/bnVsbDooa1szXT9rWzJdPWtbNF18fGtbNV18fCIiOnEmJmZjLnRlc3QocSkmJihwPXIocSwhMCkpJiYocD1xLmluZGV4T2YoIikiLHEubGVuZ3RoLXApLXEubGVuZ3RoKSYmKGtbMF09a1swXS5zbGljZSgwLHApLGtbMl09cS5zbGljZSgwLHApKSxrLnNsaWNlKDAsMykpfX0sZmlsdGVyOntUQUc6ZnVuY3Rpb24oayl7dmFyIHA9ay5yZXBsYWNlKFRhLFVhKS50b0xvd2VyQ2FzZSgpO3JldHVybiIqIj09PWs\/ZnVuY3Rpb24oKXtyZXR1cm4hMH06ZnVuY3Rpb24ocSl7cmV0dXJuIFgocSxwKX19LENMQVNTOmZ1bmN0aW9uKGspe3ZhciBwPWRiW2srIiAiXTtyZXR1cm4gcHx8KHA9bmV3IFJlZ0V4cCgiKF58W1xceDIwXFx0XFxyXFxuXFxmXSkiK2srIihbXFx4MjBcXHRcXHJcXG5cXGZdfCQpIiksCmRiKGssZnVuY3Rpb24ocSl7cmV0dXJuIHAudGVzdCgic3RyaW5nIj09dHlwZW9mIHEuY2xhc3NOYW1lJiZxLmNsYXNzTmFtZXx8InVuZGVmaW5lZCIhPXR5cGVvZiBxLmdldEF0dHJpYnV0ZSYmcS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKX0pKX0sQVRUUjpmdW5jdGlvbihrLHAscSl7cmV0dXJuIGZ1bmN0aW9uKHYpe3Y9YS5hdHRyKHYsayk7cmV0dXJuIG51bGw9PXY\/IiE9Ij09PXA6IXB8fCh2Kz0iIiwiPSI9PT1wP3Y9PT1xOiIhPSI9PT1wP3YhPT1xOiJePSI9PT1wP3EmJjA9PT12LmluZGV4T2YocSk6Iio9Ij09PXA\/cSYmLTE8di5pbmRleE9mKHEpOiIkPSI9PT1wP3EmJnYuc2xpY2UoLXEubGVuZ3RoKT09PXE6In49Ij09PXA\/LTE8KCIgIit2LnJlcGxhY2UoSWEsIiAiKSsiICIpLmluZGV4T2YocSk6Inw9Ij09PXAmJih2PT09cXx8di5zbGljZSgwLHEubGVuZ3RoKzEpPT09cSsiLSIpKX19LENISUxEOmZ1bmN0aW9uKGsscCxxLHYseSl7dmFyIEU9Im50aCIhPT1rLnNsaWNlKDAsCjMpLEE9Imxhc3QiIT09ay5zbGljZSgtNCksST0ib2YtdHlwZSI9PT1wO3JldHVybiAxPT09diYmMD09PXk\/ZnVuY3Rpb24oQil7cmV0dXJuISFCLnBhcmVudE5vZGV9OmZ1bmN0aW9uKEIsSixSKXt2YXIgVCxWLGlhO0o9RSE9PUE\/Im5leHRTaWJsaW5nIjoicHJldmlvdXNTaWJsaW5nIjt2YXIgcGE9Qi5wYXJlbnROb2RlLG5hPUkmJkIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxFYT0hUiYmIUksY2E9ITE7aWYocGEpe2lmKEUpe2Zvcig7Sjspe2ZvcihWPUI7Vj1WW0pdOylpZihJP1goVixuYSk6MT09PVYubm9kZVR5cGUpcmV0dXJuITE7dmFyIEFhPUo9Im9ubHkiPT09ayYmIUFhJiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKEFhPVtBP3BhLmZpcnN0Q2hpbGQ6cGEubGFzdENoaWxkXSxBJiZFYSlmb3IoY2E9KGlhPShUPShSPXBhW1ddfHwocGFbV109e30pKVtrXXx8W10pWzBdPT09ZmEmJlRbMV0pJiZUWzJdLFY9aWEmJnBhLmNoaWxkTm9kZXNbaWFdO1Y9KytpYSYmViYmVltKXXx8CihjYT1pYT0wKXx8QWEucG9wKCk7KXtpZigxPT09Vi5ub2RlVHlwZSYmKytjYSYmVj09PUIpe1Jba109W2ZhLGlhLGNhXTticmVha319ZWxzZSBpZihFYSYmKGNhPWlhPShUPShCW1ddfHwoQltXXT17fSkpW2tdfHxbXSlbMF09PT1mYSYmVFsxXSksITE9PT1jYSlmb3IoOyhWPSsraWEmJlYmJlZbSl18fChjYT1pYT0wKXx8QWEucG9wKCkpJiYoKEk\/IVgoVixuYSk6MSE9PVYubm9kZVR5cGUpfHwhKytjYXx8KEVhJiYoKFI9VltXXXx8KFZbV109e30pKVtrXT1bZmEsY2FdKSxWIT09QikpOyk7cmV0dXJuKGNhLT15KT09PXZ8fDA9PWNhJXYmJjA8PWNhL3Z9fX0sUFNFVURPOmZ1bmN0aW9uKGsscCl7dmFyIHEsdj1LLnBzZXVkb3Nba118fEsuc2V0RmlsdGVyc1trLnRvTG93ZXJDYXNlKCldfHxhLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrayk7cmV0dXJuIHZbV10\/dihwKToxPHYubGVuZ3RoPyhxPVtrLGssIiIscF0sSy5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGsudG9Mb3dlckNhc2UoKSk\/CmMoZnVuY3Rpb24oeSxFKXtmb3IodmFyIEEsST12KHkscCksQj1JLmxlbmd0aDtCLS07KXlbQT1OYS5jYWxsKHksSVtCXSldPSEoRVtBXT1JW0JdKX0pOmZ1bmN0aW9uKHkpe3JldHVybiB2KHksMCxxKX0pOnZ9fSxwc2V1ZG9zOntub3Q6YyhmdW5jdGlvbihrKXt2YXIgcD1bXSxxPVtdLHY9cWEoay5yZXBsYWNlKHpiLCIkMSIpKTtyZXR1cm4gdltXXT9jKGZ1bmN0aW9uKHksRSxBLEkpe3ZhciBCO0E9dih5LG51bGwsSSxbXSk7Zm9yKEk9eS5sZW5ndGg7SS0tOykoQj1BW0ldKSYmKHlbSV09IShFW0ldPUIpKX0pOmZ1bmN0aW9uKHksRSxBKXtyZXR1cm4gcFswXT15LHYocCxudWxsLEEscSkscFswXT1udWxsLCFxLnBvcCgpfX0pLGhhczpjKGZ1bmN0aW9uKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gMDxhKGsscCkubGVuZ3RofX0pLGNvbnRhaW5zOmMoZnVuY3Rpb24oayl7cmV0dXJuIGs9ay5yZXBsYWNlKFRhLFVhKSxmdW5jdGlvbihwKXtyZXR1cm4tMTwocC50ZXh0Q29udGVudHx8CmQudGV4dChwKSkuaW5kZXhPZihrKX19KSxsYW5nOmMoZnVuY3Rpb24oayl7cmV0dXJuIGVkLnRlc3Qoa3x8IiIpfHxhLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK2spLGs9ay5yZXBsYWNlKFRhLFVhKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKHApe3ZhciBxO2RvIGlmKHE9dmE\/cC5sYW5nOnAuZ2V0QXR0cmlidXRlKCJ4bWw6bGFuZyIpfHxwLmdldEF0dHJpYnV0ZSgibGFuZyIpKXJldHVybihxPXEudG9Mb3dlckNhc2UoKSk9PT1rfHwwPT09cS5pbmRleE9mKGsrIi0iKTt3aGlsZSgocD1wLnBhcmVudE5vZGUpJiYxPT09cC5ub2RlVHlwZSk7cmV0dXJuITF9fSksdGFyZ2V0OmZ1bmN0aW9uKGspe3ZhciBwPW4ubG9jYXRpb24mJm4ubG9jYXRpb24uaGFzaDtyZXR1cm4gcCYmcC5zbGljZSgxKT09PWsuaWR9LHJvb3Q6ZnVuY3Rpb24oayl7cmV0dXJuIGs9PT1yYX0sZm9jdXM6ZnVuY3Rpb24oayl7YTp7dHJ5e3ZhciBwPVouYWN0aXZlRWxlbWVudDticmVhayBhfWNhdGNoKHEpe31wPQp2b2lkIDB9cmV0dXJuIGs9PT1wJiZaLmhhc0ZvY3VzKCkmJiEhKGsudHlwZXx8ay5ocmVmfHx+ay50YWJJbmRleCl9LGVuYWJsZWQ6aCghMSksZGlzYWJsZWQ6aCghMCksY2hlY2tlZDpmdW5jdGlvbihrKXtyZXR1cm4gWChrLCJpbnB1dCIpJiYhIWsuY2hlY2tlZHx8WChrLCJvcHRpb24iKSYmISFrLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihrKXtyZXR1cm4gay5wYXJlbnROb2RlJiZrLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwhMD09PWsuc2VsZWN0ZWR9LGVtcHR5OmZ1bmN0aW9uKGspe2ZvcihrPWsuZmlyc3RDaGlsZDtrO2s9ay5uZXh0U2libGluZylpZig2Pmsubm9kZVR5cGUpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihrKXtyZXR1cm4hSy5wc2V1ZG9zLmVtcHR5KGspfSxoZWFkZXI6ZnVuY3Rpb24oayl7cmV0dXJuIGdkLnRlc3Qoay5ub2RlTmFtZSl9LGlucHV0OmZ1bmN0aW9uKGspe3JldHVybiBmZC50ZXN0KGsubm9kZU5hbWUpfSxidXR0b246ZnVuY3Rpb24oayl7cmV0dXJuIFgoaywKImlucHV0IikmJiJidXR0b24iPT09ay50eXBlfHxYKGssImJ1dHRvbiIpfSx0ZXh0OmZ1bmN0aW9uKGspe3ZhciBwO3JldHVybiBYKGssImlucHV0IikmJiJ0ZXh0Ij09PWsudHlwZSYmKG51bGw9PShwPWsuZ2V0QXR0cmlidXRlKCJ0eXBlIikpfHwidGV4dCI9PT1wLnRvTG93ZXJDYXNlKCkpfSxmaXJzdDptKGZ1bmN0aW9uKCl7cmV0dXJuWzBdfSksbGFzdDptKGZ1bmN0aW9uKGsscCl7cmV0dXJuW3AtMV19KSxlcTptKGZ1bmN0aW9uKGsscCxxKXtyZXR1cm5bMD5xP3ErcDpxXX0pLGV2ZW46bShmdW5jdGlvbihrLHApe2Zvcih2YXIgcT0wO3E8cDtxKz0yKWsucHVzaChxKTtyZXR1cm4ga30pLG9kZDptKGZ1bmN0aW9uKGsscCl7Zm9yKHZhciBxPTE7cTxwO3ErPTIpay5wdXNoKHEpO3JldHVybiBrfSksbHQ6bShmdW5jdGlvbihrLHAscSl7Zm9yKHA9MD5xP3ErcDpwPHE\/cDpxOzA8PS0tcDspay5wdXNoKHApO3JldHVybiBrfSksZ3Q6bShmdW5jdGlvbihrLHAscSl7Zm9yKHE9MD5xPwpxK3A6cTsrK3E8cDspay5wdXNoKHEpO3JldHVybiBrfSl9fSkucHNldWRvcy5udGg9Sy5wc2V1ZG9zLmVxLHtyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSlLLnBzZXVkb3NbUV09ZihRKTtmb3IoUSBpbntzdWJtaXQ6ITAscmVzZXQ6ITB9KUsucHNldWRvc1tRXT1nKFEpO3cucHJvdG90eXBlPUsuZmlsdGVycz1LLnBzZXVkb3M7Sy5zZXRGaWx0ZXJzPW5ldyB3O04uc29ydFN0YWJsZT1XLnNwbGl0KCIiKS5zb3J0KGxhKS5qb2luKCIiKT09PVc7dCgpO04uc29ydERldGFjaGVkPWUoZnVuY3Rpb24oayl7cmV0dXJuIDEmay5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihaLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0IikpfSk7ZC5maW5kPWE7ZC5leHByWyI6Il09ZC5leHByLnBzZXVkb3M7ZC51bmlxdWU9ZC51bmlxdWVTb3J0O2EuY29tcGlsZT1xYTthLnNlbGVjdD1TYTthLnNldERvY3VtZW50PXQ7YS5lc2NhcGU9ZC5lc2NhcGVTZWxlY3RvcjsKYS5nZXRUZXh0PWQudGV4dDthLmlzWE1MPWQuaXNYTUxEb2M7YS5zZWxlY3RvcnM9ZC5leHByO2Euc3VwcG9ydD1kLnN1cHBvcnQ7YS51bmlxdWVTb3J0PWQudW5pcXVlU29ydH0oKTt2YXIgd2I9ZnVuY3Rpb24oYSxiLGMpe2Zvcih2YXIgZT1bXSxmPXZvaWQgMCE9PWM7KGE9YVtiXSkmJjkhPT1hLm5vZGVUeXBlOylpZigxPT09YS5ub2RlVHlwZSl7aWYoZiYmZChhKS5pcyhjKSlicmVhaztlLnB1c2goYSl9cmV0dXJuIGV9LHdjPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjPVtdO2E7YT1hLm5leHRTaWJsaW5nKTE9PT1hLm5vZGVUeXBlJiZhIT09YiYmYy5wdXNoKGEpO3JldHVybiBjfSx4Yz1kLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LHljPS9ePChbYS16XVteXC9cMD46XHgyMFx0XHJcblxmXSopW1x4MjBcdFxyXG5cZl0qXC8\/Pig\/OjxcL1wxPnwpJC9pO2QuZmlsdGVyPWZ1bmN0aW9uKGEsYixjKXt2YXIgZT1iWzBdO3JldHVybiBjJiYoYT0iOm5vdCgiK2ErIikiKSwxPT09Yi5sZW5ndGgmJgoxPT09ZS5ub2RlVHlwZT9kLmZpbmQubWF0Y2hlc1NlbGVjdG9yKGUsYSk\/W2VdOltdOmQuZmluZC5tYXRjaGVzKGEsZC5ncmVwKGIsZnVuY3Rpb24oZil7cmV0dXJuIDE9PT1mLm5vZGVUeXBlfSkpfTtkLmZuLmV4dGVuZCh7ZmluZDpmdW5jdGlvbihhKXt2YXIgYixjPXRoaXMubGVuZ3RoLGU9dGhpcztpZigic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIHRoaXMucHVzaFN0YWNrKGQoYSkuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKGI9MDtiPGM7YisrKWlmKGQuY29udGFpbnMoZVtiXSx0aGlzKSlyZXR1cm4hMH0pKTt2YXIgZj10aGlzLnB1c2hTdGFjayhbXSk7Zm9yKGI9MDtiPGM7YisrKWQuZmluZChhLGVbYl0sZik7cmV0dXJuIDE8Yz9kLnVuaXF1ZVNvcnQoZik6Zn0sZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnB1c2hTdGFjayhqYSh0aGlzLGF8fFtdLCExKSl9LG5vdDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soamEodGhpcyxhfHxbXSwhMCkpfSxpczpmdW5jdGlvbihhKXtyZXR1cm4hIWphKHRoaXMsCiJzdHJpbmciPT10eXBlb2YgYSYmeGMudGVzdChhKT9kKGEpOmF8fFtdLCExKS5sZW5ndGh9fSk7dmFyIGhkPS9eKD86XHMqKDxbXHdcV10rPilbXj5dKnwjKFtcdy1dKykpJC87KGQuZm4uaW5pdD1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZjtpZighYSlyZXR1cm4gdGhpcztpZihjPWN8fGlkLCJzdHJpbmciPT10eXBlb2YgYSl7aWYoIShlPSI8Ij09PWFbMF0mJiI+Ij09PWFbYS5sZW5ndGgtMV0mJjM8PWEubGVuZ3RoP1tudWxsLGEsbnVsbF06aGQuZXhlYyhhKSl8fCFlWzFdJiZiKXJldHVybiFifHxiLmpxdWVyeT8oYnx8YykuZmluZChhKTp0aGlzLmNvbnN0cnVjdG9yKGIpLmZpbmQoYSk7aWYoZVsxXSl7aWYoYj1iIGluc3RhbmNlb2YgZD9iWzBdOmIsZC5tZXJnZSh0aGlzLGQucGFyc2VIVE1MKGVbMV0sYiYmYi5ub2RlVHlwZT9iLm93bmVyRG9jdW1lbnR8fGI6TCwhMCkpLHljLnRlc3QoZVsxXSkmJmQuaXNQbGFpbk9iamVjdChiKSlmb3IoZSBpbiBiKU0odGhpc1tlXSk\/dGhpc1tlXShiW2VdKToKdGhpcy5hdHRyKGUsYltlXSk7cmV0dXJuIHRoaXN9cmV0dXJuKGY9TC5nZXRFbGVtZW50QnlJZChlWzJdKSkmJih0aGlzWzBdPWYsdGhpcy5sZW5ndGg9MSksdGhpc31yZXR1cm4gYS5ub2RlVHlwZT8odGhpc1swXT1hLHRoaXMubGVuZ3RoPTEsdGhpcyk6TShhKT92b2lkIDAhPT1jLnJlYWR5P2MucmVhZHkoYSk6YShkKTpkLm1ha2VBcnJheShhLHRoaXMpfSkucHJvdG90eXBlPWQuZm47dmFyIGlkPWQoTCksamQ9L14oPzpwYXJlbnRzfHByZXYoPzpVbnRpbHxBbGwpKS8sa2Q9e2NoaWxkcmVuOiEwLGNvbnRlbnRzOiEwLG5leHQ6ITAscHJldjohMH07ZC5mbi5leHRlbmQoe2hhczpmdW5jdGlvbihhKXt2YXIgYj1kKGEsdGhpcyksYz1iLmxlbmd0aDtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPGM7ZSsrKWlmKGQuY29udGFpbnModGhpcyxiW2VdKSlyZXR1cm4hMH0pfSxjbG9zZXN0OmZ1bmN0aW9uKGEsYil7dmFyIGMsZT0wLGY9dGhpcy5sZW5ndGgsCmc9W10saD0ic3RyaW5nIiE9dHlwZW9mIGEmJmQoYSk7aWYoIXhjLnRlc3QoYSkpZm9yKDtlPGY7ZSsrKWZvcihjPXRoaXNbZV07YyYmYyE9PWI7Yz1jLnBhcmVudE5vZGUpaWYoMTE+Yy5ub2RlVHlwZSYmKGg\/LTE8aC5pbmRleChjKToxPT09Yy5ub2RlVHlwZSYmZC5maW5kLm1hdGNoZXNTZWxlY3RvcihjLGEpKSl7Zy5wdXNoKGMpO2JyZWFrfXJldHVybiB0aGlzLnB1c2hTdGFjaygxPGcubGVuZ3RoP2QudW5pcXVlU29ydChnKTpnKX0saW5kZXg6ZnVuY3Rpb24oYSl7cmV0dXJuIGE\/InN0cmluZyI9PXR5cGVvZiBhP05hLmNhbGwoZChhKSx0aGlzWzBdKTpOYS5jYWxsKHRoaXMsYS5qcXVlcnk\/YVswXTphKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU\/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLnVuaXF1ZVNvcnQoZC5tZXJnZSh0aGlzLmdldCgpLGQoYSxiKSkpKX0sYWRkQmFjazpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09CmE\/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoYSkpfX0pO2QuZWFjaCh7cGFyZW50OmZ1bmN0aW9uKGEpe3JldHVybihhPWEucGFyZW50Tm9kZSkmJjExIT09YS5ub2RlVHlwZT9hOm51bGx9LHBhcmVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIHdiKGEsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gd2IoYSwicGFyZW50Tm9kZSIsYyl9LG5leHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGxiKGEsIm5leHRTaWJsaW5nIil9LHByZXY6ZnVuY3Rpb24oYSl7cmV0dXJuIGxiKGEsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dFVudGlsOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gd2IoYSwibmV4dFNpYmxpbmciLGMpfSxwcmV2VW50aWw6ZnVuY3Rpb24oYSxiLApjKXtyZXR1cm4gd2IoYSwicHJldmlvdXNTaWJsaW5nIixjKX0sc2libGluZ3M6ZnVuY3Rpb24oYSl7cmV0dXJuIHdjKChhLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGEpfSxjaGlsZHJlbjpmdW5jdGlvbihhKXtyZXR1cm4gd2MoYS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEuY29udGVudERvY3VtZW50JiZzYyhhLmNvbnRlbnREb2N1bWVudCk\/YS5jb250ZW50RG9jdW1lbnQ6KFgoYSwidGVtcGxhdGUiKSYmKGE9YS5jb250ZW50fHxhKSxkLm1lcmdlKFtdLGEuY2hpbGROb2RlcykpfX0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMsZSl7dmFyIGY9ZC5tYXAodGhpcyxiLGMpO3JldHVybiJVbnRpbCIhPT1hLnNsaWNlKC01KSYmKGU9YyksZSYmInN0cmluZyI9PXR5cGVvZiBlJiYoZj1kLmZpbHRlcihlLGYpKSwxPHRoaXMubGVuZ3RoJiYoa2RbYV18fGQudW5pcXVlU29ydChmKSxqZC50ZXN0KGEpJiZmLnJldmVyc2UoKSksCnRoaXMucHVzaFN0YWNrKGYpfX0pO3ZhciBMYT0vW15ceDIwXHRcclxuXGZdKy9nO2QuQ2FsbGJhY2tzPWZ1bmN0aW9uKGEpe3ZhciBiLGM7YT0ic3RyaW5nIj09dHlwZW9mIGE\/KGI9YSxjPXt9LGQuZWFjaChiLm1hdGNoKExhKXx8W10sZnVuY3Rpb24oeixEKXtjW0RdPSEwfSksYyk6ZC5leHRlbmQoe30sYSk7dmFyIGUsZixnLGgsbT1bXSxsPVtdLHQ9LTEsdz1mdW5jdGlvbigpe2g9aHx8YS5vbmNlO2ZvcihnPWU9ITA7bC5sZW5ndGg7dD0tMSlmb3IoZj1sLnNoaWZ0KCk7Kyt0PG0ubGVuZ3RoOykhMT09PW1bdF0uYXBwbHkoZlswXSxmWzFdKSYmYS5zdG9wT25GYWxzZSYmKHQ9bS5sZW5ndGgsZj0hMSk7YS5tZW1vcnl8fChmPSExKTtlPSExO2gmJihtPWY\/W106IiIpfSxyPXthZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gbSYmKGYmJiFlJiYodD1tLmxlbmd0aC0xLGwucHVzaChmKSksZnVuY3Rpb24gRihEKXtkLmVhY2goRCxmdW5jdGlvbihPLGFhKXtNKGFhKT9hLnVuaXF1ZSYmci5oYXMoYWEpfHwKbS5wdXNoKGFhKTphYSYmYWEubGVuZ3RoJiYic3RyaW5nIiE9PVUoYWEpJiZGKGFhKX0pfShhcmd1bWVudHMpLGYmJiFlJiZ3KCkpLHRoaXN9LHJlbW92ZTpmdW5jdGlvbigpe3JldHVybiBkLmVhY2goYXJndW1lbnRzLGZ1bmN0aW9uKHosRCl7Zm9yKHZhciBGOy0xPChGPWQuaW5BcnJheShELG0sRikpOyltLnNwbGljZShGLDEpLEY8PXQmJnQtLX0pLHRoaXN9LGhhczpmdW5jdGlvbih6KXtyZXR1cm4gej8tMTxkLmluQXJyYXkoeixtKTowPG0ubGVuZ3RofSxlbXB0eTpmdW5jdGlvbigpe3JldHVybiBtJiYobT1bXSksdGhpc30sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiBoPWw9W10sbT1mPSIiLHRoaXN9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIW19LGxvY2s6ZnVuY3Rpb24oKXtyZXR1cm4gaD1sPVtdLGZ8fGV8fChtPWY9IiIpLHRoaXN9LGxvY2tlZDpmdW5jdGlvbigpe3JldHVybiEhaH0sZmlyZVdpdGg6ZnVuY3Rpb24oeixEKXtyZXR1cm4gaHx8KEQ9W3osKEQ9RHx8CltdKS5zbGljZT9ELnNsaWNlKCk6RF0sbC5wdXNoKEQpLGV8fHcoKSksdGhpc30sZmlyZTpmdW5jdGlvbigpe3JldHVybiByLmZpcmVXaXRoKHRoaXMsYXJndW1lbnRzKSx0aGlzfSxmaXJlZDpmdW5jdGlvbigpe3JldHVybiEhZ319O3JldHVybiByfTtkLmV4dGVuZCh7RGVmZXJyZWQ6ZnVuY3Rpb24oYSl7dmFyIGI9W1sibm90aWZ5IiwicHJvZ3Jlc3MiLGQuQ2FsbGJhY2tzKCJtZW1vcnkiKSxkLkNhbGxiYWNrcygibWVtb3J5IiksMl0sWyJyZXNvbHZlIiwiZG9uZSIsZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksZC5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksMCwicmVzb2x2ZWQiXSxbInJlamVjdCIsImZhaWwiLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDEsInJlamVjdGVkIl1dLGM9InBlbmRpbmciLGU9e3N0YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIGN9LGFsd2F5czpmdW5jdGlvbigpe3JldHVybiBmLmRvbmUoYXJndW1lbnRzKS5mYWlsKGFyZ3VtZW50cyksCnRoaXN9LCJjYXRjaCI6ZnVuY3Rpb24oZyl7cmV0dXJuIGUudGhlbihudWxsLGcpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIGc9YXJndW1lbnRzO3JldHVybiBkLkRlZmVycmVkKGZ1bmN0aW9uKGgpe2QuZWFjaChiLGZ1bmN0aW9uKG0sbCl7dmFyIHQ9TShnW2xbNF1dKSYmZ1tsWzRdXTtmW2xbMV1dKGZ1bmN0aW9uKCl7dmFyIHc9dCYmdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dyYmTSh3LnByb21pc2UpP3cucHJvbWlzZSgpLnByb2dyZXNzKGgubm90aWZ5KS5kb25lKGgucmVzb2x2ZSkuZmFpbChoLnJlamVjdCk6aFtsWzBdKyJXaXRoIl0odGhpcyx0P1t3XTphcmd1bWVudHMpfSl9KTtnPW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24oZyxoLG0pe2Z1bmN0aW9uIGwodyxyLHosRCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEY9dGhpcyxPPWFyZ3VtZW50cyxhYT1mdW5jdGlvbigpe3ZhciBxYTtpZighKHc8dCkpe2lmKChxYT16LmFwcGx5KEYsTykpPT09ci5wcm9taXNlKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlbmFibGUgc2VsZi1yZXNvbHV0aW9uIik7CnZhciBTYT1xYSYmKCJvYmplY3QiPT10eXBlb2YgcWF8fCJmdW5jdGlvbiI9PXR5cGVvZiBxYSkmJnFhLnRoZW47TShTYSk\/RD9TYS5jYWxsKHFhLGwodCxyLFlhLEQpLGwodCxyLFphLEQpKToodCsrLFNhLmNhbGwocWEsbCh0LHIsWWEsRCksbCh0LHIsWmEsRCksbCh0LHIsWWEsci5ub3RpZnlXaXRoKSkpOih6IT09WWEmJihGPXZvaWQgMCxPPVtxYV0pLChEfHxyLnJlc29sdmVXaXRoKShGLE8pKX19LEdhPUQ\/YWE6ZnVuY3Rpb24oKXt0cnl7YWEoKX1jYXRjaChxYSl7ZC5EZWZlcnJlZC5leGNlcHRpb25Ib29rJiZkLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2socWEsR2EuZXJyb3IpLHQ8PXcrMSYmKHohPT1aYSYmKEY9dm9pZCAwLE89W3FhXSksci5yZWplY3RXaXRoKEYsTykpfX07dz9HYSgpOihkLkRlZmVycmVkLmdldEVycm9ySG9vaz9HYS5lcnJvcj1kLkRlZmVycmVkLmdldEVycm9ySG9vaygpOmQuRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYoR2EuZXJyb3I9ZC5EZWZlcnJlZC5nZXRTdGFja0hvb2soKSksCm4uc2V0VGltZW91dChHYSkpfX12YXIgdD0wO3JldHVybiBkLkRlZmVycmVkKGZ1bmN0aW9uKHcpe2JbMF1bM10uYWRkKGwoMCx3LE0obSk\/bTpZYSx3Lm5vdGlmeVdpdGgpKTtiWzFdWzNdLmFkZChsKDAsdyxNKGcpP2c6WWEpKTtiWzJdWzNdLmFkZChsKDAsdyxNKGgpP2g6WmEpKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihnKXtyZXR1cm4gbnVsbCE9Zz9kLmV4dGVuZChnLGUpOmV9fSxmPXt9O3JldHVybiBkLmVhY2goYixmdW5jdGlvbihnLGgpe3ZhciBtPWhbMl0sbD1oWzVdO2VbaFsxXV09bS5hZGQ7bCYmbS5hZGQoZnVuY3Rpb24oKXtjPWx9LGJbMy1nXVsyXS5kaXNhYmxlLGJbMy1nXVszXS5kaXNhYmxlLGJbMF1bMl0ubG9jayxiWzBdWzNdLmxvY2spO20uYWRkKGhbM10uZmlyZSk7ZltoWzBdXT1mdW5jdGlvbigpe3JldHVybiBmW2hbMF0rIldpdGgiXSh0aGlzPT09Zj92b2lkIDA6dGhpcyxhcmd1bWVudHMpLHRoaXN9O2ZbaFswXSsiV2l0aCJdPW0uZmlyZVdpdGh9KSwKZS5wcm9taXNlKGYpLGEmJmEuY2FsbChmLGYpLGZ9LHdoZW46ZnVuY3Rpb24oYSl7dmFyIGI9YXJndW1lbnRzLmxlbmd0aCxjPWIsZT1BcnJheShjKSxmPXlhLmNhbGwoYXJndW1lbnRzKSxnPWQuRGVmZXJyZWQoKSxoPWZ1bmN0aW9uKG0pe3JldHVybiBmdW5jdGlvbihsKXtlW21dPXRoaXM7ZlttXT0xPGFyZ3VtZW50cy5sZW5ndGg\/eWEuY2FsbChhcmd1bWVudHMpOmw7LS1ifHxnLnJlc29sdmVXaXRoKGUsZil9fTtpZigxPj1iJiYobWIoYSxnLmRvbmUoaChjKSkucmVzb2x2ZSxnLnJlamVjdCwhYiksInBlbmRpbmciPT09Zy5zdGF0ZSgpfHxNKGZbY10mJmZbY10udGhlbikpKXJldHVybiBnLnRoZW4oKTtmb3IoO2MtLTspbWIoZltjXSxoKGMpLGcucmVqZWN0KTtyZXR1cm4gZy5wcm9taXNlKCl9fSk7dmFyIGxkPS9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO2QuRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbihhLGIpe24uY29uc29sZSYmCm4uY29uc29sZS53YXJuJiZhJiZsZC50ZXN0KGEubmFtZSkmJm4uY29uc29sZS53YXJuKCJqUXVlcnkuRGVmZXJyZWQgZXhjZXB0aW9uOiAiK2EubWVzc2FnZSxhLnN0YWNrLGIpfTtkLnJlYWR5RXhjZXB0aW9uPWZ1bmN0aW9uKGEpe24uc2V0VGltZW91dChmdW5jdGlvbigpe3Rocm93IGE7fSl9O3ZhciBnYz1kLkRlZmVycmVkKCk7ZC5mbi5yZWFkeT1mdW5jdGlvbihhKXtyZXR1cm4gZ2MudGhlbihhKVsiY2F0Y2giXShmdW5jdGlvbihiKXtkLnJlYWR5RXhjZXB0aW9uKGIpfSksdGhpc307ZC5leHRlbmQoe2lzUmVhZHk6ITEscmVhZHlXYWl0OjEscmVhZHk6ZnVuY3Rpb24oYSl7KCEwPT09YT8tLWQucmVhZHlXYWl0OmQuaXNSZWFkeSl8fChkLmlzUmVhZHk9ITApIT09YSYmMDwtLWQucmVhZHlXYWl0fHxnYy5yZXNvbHZlV2l0aChMLFtkXSl9fSk7ZC5yZWFkeS50aGVuPWdjLnRoZW47ImNvbXBsZXRlIj09PUwucmVhZHlTdGF0ZXx8ImxvYWRpbmciIT09TC5yZWFkeVN0YXRlJiYhTC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw\/Cm4uc2V0VGltZW91dChkLnJlYWR5KTooTC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixPYSksbi5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixPYSkpO3ZhciBYYT1mdW5jdGlvbihhLGIsYyxlLGYsZyxoKXt2YXIgbT0wLGw9YS5sZW5ndGgsdD1udWxsPT1jO2lmKCJvYmplY3QiPT09VShjKSlmb3IobSBpbiBmPSEwLGMpWGEoYSxiLG0sY1ttXSwhMCxnLGgpO2Vsc2UgaWYodm9pZCAwIT09ZSYmKGY9ITAsTShlKXx8KGg9ITApLHQmJihoPyhiLmNhbGwoYSxlKSxiPW51bGwpOih0PWIsYj1mdW5jdGlvbih3LHIseil7cmV0dXJuIHQuY2FsbChkKHcpLHopfSkpLGIpKWZvcig7bTxsO20rKyliKGFbbV0sYyxoP2U6ZS5jYWxsKGFbbV0sbSxiKGFbbV0sYykpKTtyZXR1cm4gZj9hOnQ\/Yi5jYWxsKGEpOmw\/YihhWzBdLGMpOmd9LE1jPS9eLW1zLS8sTmM9Ly0oW2Etel0pL2csR2I9ZnVuY3Rpb24oYSl7cmV0dXJuIDE9PT1hLm5vZGVUeXBlfHw5PT09YS5ub2RlVHlwZXx8ISthLm5vZGVUeXBlfTsKSmEudWlkPTE7SmEucHJvdG90eXBlPXtjYWNoZTpmdW5jdGlvbihhKXt2YXIgYj1hW3RoaXMuZXhwYW5kb107cmV0dXJuIGJ8fChiPXt9LEdiKGEpJiYoYS5ub2RlVHlwZT9hW3RoaXMuZXhwYW5kb109YjpPYmplY3QuZGVmaW5lUHJvcGVydHkoYSx0aGlzLmV4cGFuZG8se3ZhbHVlOmIsY29uZmlndXJhYmxlOiEwfSkpKSxifSxzZXQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlO2E9dGhpcy5jYWNoZShhKTtpZigic3RyaW5nIj09dHlwZW9mIGIpYVtCYShiKV09YztlbHNlIGZvcihlIGluIGIpYVtCYShlKV09YltlXTtyZXR1cm4gYX0sZ2V0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHZvaWQgMD09PWI\/dGhpcy5jYWNoZShhKTphW3RoaXMuZXhwYW5kb10mJmFbdGhpcy5leHBhbmRvXVtCYShiKV19LGFjY2VzczpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHZvaWQgMD09PWJ8fGImJiJzdHJpbmciPT10eXBlb2YgYiYmdm9pZCAwPT09Yz90aGlzLmdldChhLGIpOih0aGlzLnNldChhLGIsYyksdm9pZCAwIT09CmM\/YzpiKX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7dmFyIGM9YVt0aGlzLmV4cGFuZG9dO2lmKHZvaWQgMCE9PWMpe2lmKHZvaWQgMCE9PWIpe3ZhciBlPShiPUFycmF5LmlzQXJyYXkoYik\/Yi5tYXAoQmEpOihiPUJhKGIpKWluIGM\/W2JdOmIubWF0Y2goTGEpfHxbXSkubGVuZ3RoO2Zvcig7ZS0tOylkZWxldGUgY1tiW2VdXX0odm9pZCAwPT09Ynx8ZC5pc0VtcHR5T2JqZWN0KGMpKSYmKGEubm9kZVR5cGU\/YVt0aGlzLmV4cGFuZG9dPXZvaWQgMDpkZWxldGUgYVt0aGlzLmV4cGFuZG9dKX19LGhhc0RhdGE6ZnVuY3Rpb24oYSl7YT1hW3RoaXMuZXhwYW5kb107cmV0dXJuIHZvaWQgMCE9PWEmJiFkLmlzRW1wdHlPYmplY3QoYSl9fTt2YXIgRz1uZXcgSmEseGE9bmV3IEphLFBjPS9eKD86XHtbXHdcV10qXH18XFtbXHdcV10qXF0pJC8sT2M9L1tBLVpdL2c7ZC5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHhhLmhhc0RhdGEoYSl8fEcuaGFzRGF0YShhKX0sZGF0YTpmdW5jdGlvbihhLApiLGMpe3JldHVybiB4YS5hY2Nlc3MoYSxiLGMpfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEsYil7eGEucmVtb3ZlKGEsYil9LF9kYXRhOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gRy5hY2Nlc3MoYSxiLGMpfSxfcmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe0cucmVtb3ZlKGEsYil9fSk7ZC5mbi5leHRlbmQoe2RhdGE6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGYsZz10aGlzWzBdLGg9ZyYmZy5hdHRyaWJ1dGVzO2lmKHZvaWQgMD09PWEpe2lmKHRoaXMubGVuZ3RoJiYoZj14YS5nZXQoZyksMT09PWcubm9kZVR5cGUmJiFHLmdldChnLCJoYXNEYXRhQXR0cnMiKSkpe2ZvcihjPWgubGVuZ3RoO2MtLTspaFtjXSYmMD09PShlPWhbY10ubmFtZSkuaW5kZXhPZigiZGF0YS0iKSYmKGU9QmEoZS5zbGljZSg1KSksT2IoZyxlLGZbZV0pKTtHLnNldChnLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gZn1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGE\/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eGEuc2V0KHRoaXMsCmEpfSk6WGEodGhpcyxmdW5jdGlvbihtKXt2YXIgbDtpZihnJiZ2b2lkIDA9PT1tKXJldHVybiB2b2lkIDAhPT0obD14YS5nZXQoZyxhKSk\/bDp2b2lkIDAhPT0obD1PYihnLGEpKT9sOnZvaWQgMDt0aGlzLmVhY2goZnVuY3Rpb24oKXt4YS5zZXQodGhpcyxhLG0pfSl9LG51bGwsYiwxPGFyZ3VtZW50cy5sZW5ndGgsbnVsbCwhMCl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3hhLnJlbW92ZSh0aGlzLGEpfSl9fSk7ZC5leHRlbmQoe3F1ZXVlOmZ1bmN0aW9uKGEsYixjKXt2YXIgZTtpZihhKXJldHVybiBiPShifHwiZngiKSsicXVldWUiLGU9Ry5nZXQoYSxiKSxjJiYoIWV8fEFycmF5LmlzQXJyYXkoYyk\/ZT1HLmFjY2VzcyhhLGIsZC5tYWtlQXJyYXkoYykpOmUucHVzaChjKSksZXx8W119LGRlcXVldWU6ZnVuY3Rpb24oYSxiKXtiPWJ8fCJmeCI7dmFyIGM9ZC5xdWV1ZShhLGIpLGU9Yy5sZW5ndGgsZj1jLnNoaWZ0KCksZz1kLl9xdWV1ZUhvb2tzKGEsCmIpOyJpbnByb2dyZXNzIj09PWYmJihmPWMuc2hpZnQoKSxlLS0pO2YmJigiZngiPT09YiYmYy51bnNoaWZ0KCJpbnByb2dyZXNzIiksZGVsZXRlIGcuc3RvcCxmLmNhbGwoYSxmdW5jdGlvbigpe2QuZGVxdWV1ZShhLGIpfSxnKSk7IWUmJmcmJmcuZW1wdHkuZmlyZSgpfSxfcXVldWVIb29rczpmdW5jdGlvbihhLGIpe3ZhciBjPWIrInF1ZXVlSG9va3MiO3JldHVybiBHLmdldChhLGMpfHxHLmFjY2VzcyhhLGMse2VtcHR5OmQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLmFkZChmdW5jdGlvbigpe0cucmVtb3ZlKGEsW2IrInF1ZXVlIixjXSl9KX0pfX0pO2QuZm4uZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIpe3ZhciBjPTI7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYj1hLGE9ImZ4IixjLS0pLGFyZ3VtZW50cy5sZW5ndGg8Yz9kLnF1ZXVlKHRoaXNbMF0sYSk6dm9pZCAwPT09Yj90aGlzOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQucXVldWUodGhpcyxhLGIpO2QuX3F1ZXVlSG9va3ModGhpcywKYSk7ImZ4Ij09PWEmJiJpbnByb2dyZXNzIiE9PWVbMF0mJmQuZGVxdWV1ZSh0aGlzLGEpfSl9LGRlcXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2QuZGVxdWV1ZSh0aGlzLGEpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucXVldWUoYXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPTEsZj1kLkRlZmVycmVkKCksZz10aGlzLGg9dGhpcy5sZW5ndGgsbT1mdW5jdGlvbigpey0tZXx8Zi5yZXNvbHZlV2l0aChnLFtnXSl9OyJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPXZvaWQgMCk7Zm9yKGE9YXx8ImZ4IjtoLS07KShjPUcuZ2V0KGdbaF0sYSsicXVldWVIb29rcyIpKSYmYy5lbXB0eSYmKGUrKyxjLmVtcHR5LmFkZChtKSk7cmV0dXJuIG0oKSxmLnByb21pc2UoYil9fSk7dmFyIHpjPS9bKy1dPyg\/OlxkKlwufClcZCsoPzpbZUVdWystXT9cZCt8KS8uc291cmNlLHliPW5ldyBSZWdFeHAoIl4oPzooWystXSk9fCkoIisKemMrIikoW2EteiVdKikkIiwiaSIpLFBhPVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0samI9TC5kb2N1bWVudEVsZW1lbnQsb2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfSxtZD17Y29tcG9zZWQ6ITB9O2piLmdldFJvb3ROb2RlJiYob2I9ZnVuY3Rpb24oYSl7cmV0dXJuIGQuY29udGFpbnMoYS5vd25lckRvY3VtZW50LGEpfHxhLmdldFJvb3ROb2RlKG1kKT09PWEub3duZXJEb2N1bWVudH0pO3ZhciBRYj1mdW5jdGlvbihhLGIpe3JldHVybiJub25lIj09PShhPWJ8fGEpLnN0eWxlLmRpc3BsYXl8fCIiPT09YS5zdHlsZS5kaXNwbGF5JiZvYihhKSYmIm5vbmUiPT09ZC5jc3MoYSwiZGlzcGxheSIpfSxsYz17fTtkLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbigpe3JldHVybiAkYSh0aGlzLCEwKX0saGlkZTpmdW5jdGlvbigpe3JldHVybiAkYSh0aGlzKX0sdG9nZ2xlOmZ1bmN0aW9uKGEpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGE\/CmE\/dGhpcy5zaG93KCk6dGhpcy5oaWRlKCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7UWIodGhpcyk\/ZCh0aGlzKS5zaG93KCk6ZCh0aGlzKS5oaWRlKCl9KX19KTt2YXIgWmIsSGI9L14oPzpjaGVja2JveHxyYWRpbykkL2ksbWM9LzwoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopL2ksbmM9L14kfF5tb2R1bGUkfFwvKD86amF2YXxlY21hKXNjcmlwdC9pLHhiPUwuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLmFwcGVuZENoaWxkKEwuY3JlYXRlRWxlbWVudCgiZGl2IikpOyhaYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgidHlwZSIsInJhZGlvIik7WmIuc2V0QXR0cmlidXRlKCJjaGVja2VkIiwiY2hlY2tlZCIpO1piLnNldEF0dHJpYnV0ZSgibmFtZSIsInQiKTt4Yi5hcHBlbmRDaGlsZChaYik7Ti5jaGVja0Nsb25lPXhiLmNsb25lTm9kZSghMCkuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuY2hlY2tlZDt4Yi5pbm5lckhUTUw9Ijx0ZXh0YXJlYT54PC90ZXh0YXJlYT4iOwpOLm5vQ2xvbmVDaGVja2VkPSEheGIuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlO3hiLmlubmVySFRNTD0iPG9wdGlvbj48L29wdGlvbj4iO04ub3B0aW9uPSEheGIubGFzdENoaWxkO3ZhciBDYT17dGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O0NhLnRib2R5PUNhLnRmb290PUNhLmNvbGdyb3VwPUNhLmNhcHRpb249Q2EudGhlYWQ7Q2EudGg9Q2EudGQ7Ti5vcHRpb258fChDYS5vcHRncm91cD1DYS5vcHRpb249WzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXSk7dmFyIFFjPS88fCYjP1x3KzsvLEFjPS9eKFteLl0qKSg\/OlwuKC4rKXwpLzsKZC5ldmVudD17Z2xvYmFsOnt9LGFkZDpmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsbSxsLHQsdyxyLHosRD1HLmdldChhKTtpZihHYihhKSlmb3IoYy5oYW5kbGVyJiYoYz0oZz1jKS5oYW5kbGVyLGY9Zy5zZWxlY3RvciksZiYmZC5maW5kLm1hdGNoZXNTZWxlY3RvcihqYixmKSxjLmd1aWR8fChjLmd1aWQ9ZC5ndWlkKyspLChsPUQuZXZlbnRzKXx8KGw9RC5ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSksKGg9RC5oYW5kbGUpfHwoaD1ELmhhbmRsZT1mdW5jdGlvbihPKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGQmJmQuZXZlbnQudHJpZ2dlcmVkIT09Ty50eXBlP2QuZXZlbnQuZGlzcGF0Y2guYXBwbHkoYSxhcmd1bWVudHMpOnZvaWQgMH0pLEQ9KGI9KGJ8fCIiKS5tYXRjaChMYSl8fFsiIl0pLmxlbmd0aDtELS07KXt2YXIgRj16PShtPUFjLmV4ZWMoYltEXSl8fFtdKVsxXTttPShtWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCk7RiYmKHc9ZC5ldmVudC5zcGVjaWFsW0ZdfHwKe30sRj0oZj93LmRlbGVnYXRlVHlwZTp3LmJpbmRUeXBlKXx8Rix3PWQuZXZlbnQuc3BlY2lhbFtGXXx8e30sdD1kLmV4dGVuZCh7dHlwZTpGLG9yaWdUeXBlOnosZGF0YTplLGhhbmRsZXI6YyxndWlkOmMuZ3VpZCxzZWxlY3RvcjpmLG5lZWRzQ29udGV4dDpmJiZkLmV4cHIubWF0Y2gubmVlZHNDb250ZXh0LnRlc3QoZiksbmFtZXNwYWNlOm0uam9pbigiLiIpfSxnKSwocj1sW0ZdKXx8KChyPWxbRl09W10pLmRlbGVnYXRlQ291bnQ9MCx3LnNldHVwJiYhMSE9PXcuc2V0dXAuY2FsbChhLGUsbSxoKXx8YS5hZGRFdmVudExpc3RlbmVyJiZhLmFkZEV2ZW50TGlzdGVuZXIoRixoKSksdy5hZGQmJih3LmFkZC5jYWxsKGEsdCksdC5oYW5kbGVyLmd1aWR8fCh0LmhhbmRsZXIuZ3VpZD1jLmd1aWQpKSxmP3Iuc3BsaWNlKHIuZGVsZWdhdGVDb3VudCsrLDAsdCk6ci5wdXNoKHQpLGQuZXZlbnQuZ2xvYmFsW0ZdPSEwKX19LHJlbW92ZTpmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsbSxsLAp0LHcscix6LEQ9Ry5oYXNEYXRhKGEpJiZHLmdldChhKTtpZihEJiYobD1ELmV2ZW50cykpe2Zvcih0PShiPShifHwiIikubWF0Y2goTGEpfHxbIiJdKS5sZW5ndGg7dC0tOylpZih3PXo9KG09QWMuZXhlYyhiW3RdKXx8W10pWzFdLHI9KG1bMl18fCIiKS5zcGxpdCgiLiIpLnNvcnQoKSx3KXt2YXIgRj1kLmV2ZW50LnNwZWNpYWxbd118fHt9LE89bFt3PShlP0YuZGVsZWdhdGVUeXBlOkYuYmluZFR5cGUpfHx3XXx8W107bT1tWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIityLmpvaW4oIlxcLig\/Oi4qXFwufCkiKSsiKFxcLnwkKSIpO2ZvcihoPWc9Ty5sZW5ndGg7Zy0tOyl7dmFyIGFhPU9bZ107IWYmJnohPT1hYS5vcmlnVHlwZXx8YyYmYy5ndWlkIT09YWEuZ3VpZHx8bSYmIW0udGVzdChhYS5uYW1lc3BhY2UpfHxlJiZlIT09YWEuc2VsZWN0b3ImJigiKioiIT09ZXx8IWFhLnNlbGVjdG9yKXx8KE8uc3BsaWNlKGcsMSksYWEuc2VsZWN0b3ImJk8uZGVsZWdhdGVDb3VudC0tLEYucmVtb3ZlJiYKRi5yZW1vdmUuY2FsbChhLGFhKSl9aCYmIU8ubGVuZ3RoJiYoRi50ZWFyZG93biYmITEhPT1GLnRlYXJkb3duLmNhbGwoYSxyLEQuaGFuZGxlKXx8ZC5yZW1vdmVFdmVudChhLHcsRC5oYW5kbGUpLGRlbGV0ZSBsW3ddKX1lbHNlIGZvcih3IGluIGwpZC5ldmVudC5yZW1vdmUoYSx3K2JbdF0sYyxlLCEwKTtkLmlzRW1wdHlPYmplY3QobCkmJkcucmVtb3ZlKGEsImhhbmRsZSBldmVudHMiKX19LGRpc3BhdGNoOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGc9QXJyYXkoYXJndW1lbnRzLmxlbmd0aCksaD1kLmV2ZW50LmZpeChhKSxtPShHLmdldCh0aGlzLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbaC50eXBlXXx8W10sbD1kLmV2ZW50LnNwZWNpYWxbaC50eXBlXXx8e307Z1swXT1oO2ZvcihiPTE7Yjxhcmd1bWVudHMubGVuZ3RoO2IrKylnW2JdPWFyZ3VtZW50c1tiXTtpZihoLmRlbGVnYXRlVGFyZ2V0PXRoaXMsIWwucHJlRGlzcGF0Y2h8fCExIT09bC5wcmVEaXNwYXRjaC5jYWxsKHRoaXMsCmgpKXt2YXIgdD1kLmV2ZW50LmhhbmRsZXJzLmNhbGwodGhpcyxoLG0pO2ZvcihiPTA7KGU9dFtiKytdKSYmIWguaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspZm9yKGguY3VycmVudFRhcmdldD1lLmVsZW0sbT0wOyhmPWUuaGFuZGxlcnNbbSsrXSkmJiFoLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCk7KWgucm5hbWVzcGFjZSYmITEhPT1mLm5hbWVzcGFjZSYmIWgucm5hbWVzcGFjZS50ZXN0KGYubmFtZXNwYWNlKXx8KGguaGFuZGxlT2JqPWYsaC5kYXRhPWYuZGF0YSx2b2lkIDAhPT0oYz0oKGQuZXZlbnQuc3BlY2lhbFtmLm9yaWdUeXBlXXx8e30pLmhhbmRsZXx8Zi5oYW5kbGVyKS5hcHBseShlLmVsZW0sZykpJiYhMT09PShoLnJlc3VsdD1jKSYmKGgucHJldmVudERlZmF1bHQoKSxoLnN0b3BQcm9wYWdhdGlvbigpKSk7cmV0dXJuIGwucG9zdERpc3BhdGNoJiZsLnBvc3REaXNwYXRjaC5jYWxsKHRoaXMsaCksaC5yZXN1bHR9fSxoYW5kbGVyczpmdW5jdGlvbihhLGIpe3ZhciBjLAplLGYsZz1bXSxoPWIuZGVsZWdhdGVDb3VudCxtPWEudGFyZ2V0O2lmKGgmJm0ubm9kZVR5cGUmJiEoImNsaWNrIj09PWEudHlwZSYmMTw9YS5idXR0b24pKWZvcig7bSE9PXRoaXM7bT1tLnBhcmVudE5vZGV8fHRoaXMpaWYoMT09PW0ubm9kZVR5cGUmJigiY2xpY2siIT09YS50eXBlfHwhMCE9PW0uZGlzYWJsZWQpKXt2YXIgbD1bXSx0PXt9O2ZvcihjPTA7YzxoO2MrKyl2b2lkIDA9PT10W2Y9KGU9YltjXSkuc2VsZWN0b3IrIiAiXSYmKHRbZl09ZS5uZWVkc0NvbnRleHQ\/LTE8ZChmLHRoaXMpLmluZGV4KG0pOmQuZmluZChmLHRoaXMsbnVsbCxbbV0pLmxlbmd0aCksdFtmXSYmbC5wdXNoKGUpO2wubGVuZ3RoJiZnLnB1c2goe2VsZW06bSxoYW5kbGVyczpsfSl9cmV0dXJuIG09dGhpcyxoPGIubGVuZ3RoJiZnLnB1c2goe2VsZW06bSxoYW5kbGVyczpiLnNsaWNlKGgpfSksZ30sYWRkUHJvcDpmdW5jdGlvbihhLGIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLkV2ZW50LnByb3RvdHlwZSwKYSx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0Ok0oYik\/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIGIodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFthXX0sc2V0OmZ1bmN0aW9uKGMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLGEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmN9KX19KX0sZml4OmZ1bmN0aW9uKGEpe3JldHVybiBhW2QuZXhwYW5kb10\/YTpuZXcgZC5FdmVudChhKX0sc3BlY2lhbDp7bG9hZDp7bm9CdWJibGU6ITB9LGNsaWNrOntzZXR1cDpmdW5jdGlvbihhKXthPXRoaXN8fGE7cmV0dXJuIEhiLnRlc3QoYS50eXBlKSYmYS5jbGljayYmWChhLCJpbnB1dCIpJiZwYihhLCJjbGljayIsITApLCExfSx0cmlnZ2VyOmZ1bmN0aW9uKGEpe2E9dGhpc3x8YTtyZXR1cm4gSGIudGVzdChhLnR5cGUpJiYKYS5jbGljayYmWChhLCJpbnB1dCIpJiZwYihhLCJjbGljayIpLCEwfSxfZGVmYXVsdDpmdW5jdGlvbihhKXthPWEudGFyZ2V0O3JldHVybiBIYi50ZXN0KGEudHlwZSkmJmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmRy5nZXQoYSwiY2xpY2siKXx8WChhLCJhIil9fSxiZWZvcmV1bmxvYWQ6e3Bvc3REaXNwYXRjaDpmdW5jdGlvbihhKXt2b2lkIDAhPT1hLnJlc3VsdCYmYS5vcmlnaW5hbEV2ZW50JiYoYS5vcmlnaW5hbEV2ZW50LnJldHVyblZhbHVlPWEucmVzdWx0KX19fX07ZC5yZW1vdmVFdmVudD1mdW5jdGlvbihhLGIsYyl7YS5yZW1vdmVFdmVudExpc3RlbmVyJiZhLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKX07ZC5FdmVudD1mdW5jdGlvbihhLGIpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGQuRXZlbnQpKXJldHVybiBuZXcgZC5FdmVudChhLGIpO2EmJmEudHlwZT8odGhpcy5vcmlnaW5hbEV2ZW50PWEsdGhpcy50eXBlPWEudHlwZSx0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1hLmRlZmF1bHRQcmV2ZW50ZWR8fAp2b2lkIDA9PT1hLmRlZmF1bHRQcmV2ZW50ZWQmJiExPT09YS5yZXR1cm5WYWx1ZT9hYjpiYix0aGlzLnRhcmdldD1hLnRhcmdldCYmMz09PWEudGFyZ2V0Lm5vZGVUeXBlP2EudGFyZ2V0LnBhcmVudE5vZGU6YS50YXJnZXQsdGhpcy5jdXJyZW50VGFyZ2V0PWEuY3VycmVudFRhcmdldCx0aGlzLnJlbGF0ZWRUYXJnZXQ9YS5yZWxhdGVkVGFyZ2V0KTp0aGlzLnR5cGU9YTtiJiZkLmV4dGVuZCh0aGlzLGIpO3RoaXMudGltZVN0YW1wPWEmJmEudGltZVN0YW1wfHxEYXRlLm5vdygpO3RoaXNbZC5leHBhbmRvXT0hMH07ZC5FdmVudC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmQuRXZlbnQsaXNEZWZhdWx0UHJldmVudGVkOmJiLGlzUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkOmJiLGlzU2ltdWxhdGVkOiExLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPWFiOwphJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgYT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1hYjthJiYhdGhpcy5pc1NpbXVsYXRlZCYmYS5zdG9wUHJvcGFnYXRpb24oKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWI7YSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX19O2QuZWFjaCh7YWx0S2V5OiEwLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjaGFuZ2VkVG91Y2hlczohMCxjdHJsS2V5OiEwLGRldGFpbDohMCxldmVudFBoYXNlOiEwLG1ldGFLZXk6ITAscGFnZVg6ITAscGFnZVk6ITAsc2hpZnRLZXk6ITAsdmlldzohMCwiY2hhciI6ITAsY29kZTohMCwKY2hhckNvZGU6ITAsa2V5OiEwLGtleUNvZGU6ITAsYnV0dG9uOiEwLGJ1dHRvbnM6ITAsY2xpZW50WDohMCxjbGllbnRZOiEwLG9mZnNldFg6ITAsb2Zmc2V0WTohMCxwb2ludGVySWQ6ITAscG9pbnRlclR5cGU6ITAsc2NyZWVuWDohMCxzY3JlZW5ZOiEwLHRhcmdldFRvdWNoZXM6ITAsdG9FbGVtZW50OiEwLHRvdWNoZXM6ITAsd2hpY2g6ITB9LGQuZXZlbnQuYWRkUHJvcCk7ZC5lYWNoKHtmb2N1czoiZm9jdXNpbiIsYmx1cjoiZm9jdXNvdXQifSxmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoZSl7aWYoTC5kb2N1bWVudE1vZGUpe3ZhciBmPUcuZ2V0KHRoaXMsImhhbmRsZSIpLGc9ZC5ldmVudC5maXgoZSk7Zy50eXBlPSJmb2N1c2luIj09PWUudHlwZT8iZm9jdXMiOiJibHVyIjtnLmlzU2ltdWxhdGVkPSEwO2YoZSk7Zy50YXJnZXQ9PT1nLmN1cnJlbnRUYXJnZXQmJmYoZyl9ZWxzZSBkLmV2ZW50LnNpbXVsYXRlKGIsZS50YXJnZXQsZC5ldmVudC5maXgoZSkpfWQuZXZlbnQuc3BlY2lhbFthXT0Ke3NldHVwOmZ1bmN0aW9uKCl7dmFyIGU7aWYocGIodGhpcyxhLCEwKSwhTC5kb2N1bWVudE1vZGUpcmV0dXJuITE7KGU9Ry5nZXQodGhpcyxiKSl8fHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihiLGMpO0cuc2V0KHRoaXMsYiwoZXx8MCkrMSl9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gcGIodGhpcyxhKSwhMH0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZTtpZighTC5kb2N1bWVudE1vZGUpcmV0dXJuITE7KGU9Ry5nZXQodGhpcyxiKS0xKT9HLnNldCh0aGlzLGIsZSk6KHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpLEcucmVtb3ZlKHRoaXMsYikpfSxfZGVmYXVsdDpmdW5jdGlvbihlKXtyZXR1cm4gRy5nZXQoZS50YXJnZXQsYSl9LGRlbGVnYXRlVHlwZTpifTtkLmV2ZW50LnNwZWNpYWxbYl09e3NldHVwOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vd25lckRvY3VtZW50fHx0aGlzLmRvY3VtZW50fHx0aGlzLGY9TC5kb2N1bWVudE1vZGU\/dGhpczplLGc9Ry5nZXQoZixiKTtnfHwKKEwuZG9jdW1lbnRNb2RlP3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihiLGMpOmUuYWRkRXZlbnRMaXN0ZW5lcihhLGMsITApKTtHLnNldChmLGIsKGd8fDApKzEpfSx0ZWFyZG93bjpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxmPUwuZG9jdW1lbnRNb2RlP3RoaXM6ZSxnPUcuZ2V0KGYsYiktMTtnP0cuc2V0KGYsYixnKTooTC5kb2N1bWVudE1vZGU\/dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyk6ZS5yZW1vdmVFdmVudExpc3RlbmVyKGEsYywhMCksRy5yZW1vdmUoZixiKSl9fX0pO2QuZWFjaCh7bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCIscG9pbnRlcmVudGVyOiJwb2ludGVyb3ZlciIscG9pbnRlcmxlYXZlOiJwb2ludGVyb3V0In0sZnVuY3Rpb24oYSxiKXtkLmV2ZW50LnNwZWNpYWxbYV09e2RlbGVnYXRlVHlwZTpiLGJpbmRUeXBlOmIsaGFuZGxlOmZ1bmN0aW9uKGMpe3ZhciBlLGY9CmMucmVsYXRlZFRhcmdldCxnPWMuaGFuZGxlT2JqO3JldHVybiBmJiYoZj09PXRoaXN8fGQuY29udGFpbnModGhpcyxmKSl8fChjLnR5cGU9Zy5vcmlnVHlwZSxlPWcuaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyksYy50eXBlPWIpLGV9fX0pO2QuZm4uZXh0ZW5kKHtvbjpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gZmIodGhpcyxhLGIsYyxlKX0sb25lOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiBmYih0aGlzLGEsYixjLGUsMSl9LG9mZjpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZjtpZihhJiZhLnByZXZlbnREZWZhdWx0JiZhLmhhbmRsZU9iailyZXR1cm4gZT1hLmhhbmRsZU9iaixkKGEuZGVsZWdhdGVUYXJnZXQpLm9mZihlLm5hbWVzcGFjZT9lLm9yaWdUeXBlKyIuIitlLm5hbWVzcGFjZTplLm9yaWdUeXBlLGUuc2VsZWN0b3IsZS5oYW5kbGVyKSx0aGlzO2lmKCJvYmplY3QiPT10eXBlb2YgYSl7Zm9yKGYgaW4gYSl0aGlzLm9mZihmLGIsYVtmXSk7cmV0dXJuIHRoaXN9cmV0dXJuITEhPT0KYiYmImZ1bmN0aW9uIiE9dHlwZW9mIGJ8fChjPWIsYj12b2lkIDApLCExPT09YyYmKGM9YmIpLHRoaXMuZWFjaChmdW5jdGlvbigpe2QuZXZlbnQucmVtb3ZlKHRoaXMsYSxjLGIpfSl9fSk7dmFyIG5kPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLFJjPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLFNjPS9eXHMqPCFcW0NEQVRBXFt8XF1cXT5ccyokL2c7ZC5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGNsb25lOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD1hLmNsb25lTm9kZSghMCksbT1vYihhKTtpZighKE4ubm9DbG9uZUNoZWNrZWR8fDEhPT1hLm5vZGVUeXBlJiYxMSE9PWEubm9kZVR5cGV8fGQuaXNYTUxEb2MoYSkpKXt2YXIgbD1zYShoKSx0PTA7Zm9yKGU9KGY9c2EoYSkpLmxlbmd0aDt0PGU7dCsrKXt2YXIgdz1mW3RdLHI9bFt0XTt2b2lkIDA7ImlucHV0Ij09PShnPXIubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkmJkhiLnRlc3Qody50eXBlKT8Kci5jaGVja2VkPXcuY2hlY2tlZDoiaW5wdXQiIT09ZyYmInRleHRhcmVhIiE9PWd8fChyLmRlZmF1bHRWYWx1ZT13LmRlZmF1bHRWYWx1ZSl9fWlmKGIpaWYoYylmb3IoZj1mfHxzYShhKSxsPWx8fHNhKGgpLHQ9MCxlPWYubGVuZ3RoO3Q8ZTt0KyspZ2IoZlt0XSxsW3RdKTtlbHNlIGdiKGEsaCk7cmV0dXJuIDA8KGw9c2EoaCwic2NyaXB0IikpLmxlbmd0aCYmbmIobCwhbSYmc2EoYSwic2NyaXB0IikpLGh9LGNsZWFuRGF0YTpmdW5jdGlvbihhKXtmb3IodmFyIGIsYyxlLGY9ZC5ldmVudC5zcGVjaWFsLGc9MDt2b2lkIDAhPT0oYz1hW2ddKTtnKyspaWYoR2IoYykpe2lmKGI9Y1tHLmV4cGFuZG9dKXtpZihiLmV2ZW50cylmb3IoZSBpbiBiLmV2ZW50cylmW2VdP2QuZXZlbnQucmVtb3ZlKGMsZSk6ZC5yZW1vdmVFdmVudChjLGUsYi5oYW5kbGUpO2NbRy5leHBhbmRvXT12b2lkIDB9Y1t4YS5leHBhbmRvXSYmKGNbeGEuZXhwYW5kb109dm9pZCAwKX19fSk7ZC5mbi5leHRlbmQoe2RldGFjaDpmdW5jdGlvbihhKXtyZXR1cm4gVGIodGhpcywKYSwhMCl9LHJlbW92ZTpmdW5jdGlvbihhKXtyZXR1cm4gVGIodGhpcyxhKX0sdGV4dDpmdW5jdGlvbihhKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gdm9pZCAwPT09Yj9kLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9Yil9KX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fFNiKHRoaXMsYSkuYXBwZW5kQ2hpbGQoYSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihhKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09CnRoaXMubm9kZVR5cGUpe3ZhciBiPVNiKHRoaXMsYSk7Yi5pbnNlcnRCZWZvcmUoYSxiLmZpcnN0Q2hpbGQpfX0pfSxiZWZvcmU6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7dGhpcy5wYXJlbnROb2RlJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGEsdGhpcy5uZXh0U2libGluZyl9KX0sZW1wdHk6ZnVuY3Rpb24oKXtmb3IodmFyIGEsYj0wO251bGwhPShhPXRoaXNbYl0pO2IrKykxPT09YS5ub2RlVHlwZSYmKGQuY2xlYW5EYXRhKHNhKGEsITEpKSxhLnRleHRDb250ZW50PSIiKTtyZXR1cm4gdGhpc30sY2xvbmU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1udWxsIT1hJiZhLGI9bnVsbD09Yj9hOmIsdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZC5jbG9uZSh0aGlzLAphLGIpfSl9LGh0bWw6ZnVuY3Rpb24oYSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9dGhpc1swXXx8e30sZT0wLGY9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09YiYmMT09PWMubm9kZVR5cGUpcmV0dXJuIGMuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmIW5kLnRlc3QoYikmJiFDYVsobWMuZXhlYyhiKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2I9ZC5odG1sUHJlZmlsdGVyKGIpO3RyeXtmb3IoO2U8ZjtlKyspMT09PShjPXRoaXNbZV18fHt9KS5ub2RlVHlwZSYmKGQuY2xlYW5EYXRhKHNhKGMsITEpKSxjLmlubmVySFRNTD1iKTtjPTB9Y2F0Y2goZyl7fX1jJiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGIpfSxudWxsLGEsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIGE9W107cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXMucGFyZW50Tm9kZTswPmQuaW5BcnJheSh0aGlzLGEpJiYKKGQuY2xlYW5EYXRhKHNhKHRoaXMpKSxjJiZjLnJlcGxhY2VDaGlsZChiLHRoaXMpKX0sYSl9fSk7ZC5lYWNoKHthcHBlbmRUbzoiYXBwZW5kIixwcmVwZW5kVG86InByZXBlbmQiLGluc2VydEJlZm9yZToiYmVmb3JlIixpbnNlcnRBZnRlcjoiYWZ0ZXIiLHJlcGxhY2VBbGw6InJlcGxhY2VXaXRoIn0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMpe2Zvcih2YXIgZT1bXSxmPWQoYyksZz1mLmxlbmd0aC0xLGg9MDtoPD1nO2grKyljPWg9PT1nP3RoaXM6dGhpcy5jbG9uZSghMCksZChmW2hdKVtiXShjKSx1Yi5hcHBseShlLGMuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhlKX19KTt2YXIgYmM9bmV3IFJlZ0V4cCgiXigiK3pjKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksYWM9L14tLS8sVWI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiBiJiZiLm9wZW5lcnx8KGI9biksYi5nZXRDb21wdXRlZFN0eWxlKGEpfSxCYz1mdW5jdGlvbihhLApiLGMpe3ZhciBlLGY9e307Zm9yKGUgaW4gYilmW2VdPWEuc3R5bGVbZV0sYS5zdHlsZVtlXT1iW2VdO2ZvcihlIGluIGM9Yy5jYWxsKGEpLGIpYS5zdHlsZVtlXT1mW2VdO3JldHVybiBjfSxUYz1uZXcgUmVnRXhwKFBhLmpvaW4oInwiKSwiaSIpOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXtpZihsKXttLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiO2wuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSI7amIuYXBwZW5kQ2hpbGQobSkuYXBwZW5kQ2hpbGQobCk7dmFyIHQ9bi5nZXRDb21wdXRlZFN0eWxlKGwpO2I9IjElIiE9PXQudG9wO2g9MTI9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC5tYXJnaW5MZWZ0KSk7Cmwuc3R5bGUucmlnaHQ9IjYwJSI7Zj0zNj09PU1hdGgucm91bmQocGFyc2VGbG9hdCh0LnJpZ2h0KSk7Yz0zNj09PU1hdGgucm91bmQocGFyc2VGbG9hdCh0LndpZHRoKSk7bC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2U9MTI9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQobC5vZmZzZXRXaWR0aC8zKSk7amIucmVtb3ZlQ2hpbGQobSk7bD1udWxsfX12YXIgYixjLGUsZixnLGgsbT1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLGw9TC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnN0eWxlJiYobC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iY29udGVudC1ib3giLGwuY2xvbmVOb2RlKCEwKS5zdHlsZS5iYWNrZ3JvdW5kQ2xpcD0iIixOLmNsZWFyQ2xvbmVTdHlsZT0iY29udGVudC1ib3giPT09bC5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCxkLmV4dGVuZChOLHtib3hTaXppbmdSZWxpYWJsZTpmdW5jdGlvbigpe3JldHVybiBhKCksY30scGl4ZWxCb3hTdHlsZXM6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLApmfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxifSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGh9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGV9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIHQsdyxyLHo7cmV0dXJuIG51bGw9PWcmJih0PUwuY3JlYXRlRWxlbWVudCgidGFibGUiKSx3PUwuY3JlYXRlRWxlbWVudCgidHIiKSxyPUwuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZSIsdy5zdHlsZS5jc3NUZXh0PSJib3JkZXI6MXB4IHNvbGlkIix3LnN0eWxlLmhlaWdodD0iMXB4IixyLnN0eWxlLmhlaWdodD0iOXB4IixyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIixqYi5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZCh3KS5hcHBlbmRDaGlsZChyKSx6PW4uZ2V0Q29tcHV0ZWRTdHlsZSh3KSwKZz1wYXJzZUludCh6LmhlaWdodCwxMCkrcGFyc2VJbnQoei5ib3JkZXJUb3BXaWR0aCwxMCkrcGFyc2VJbnQoei5ib3JkZXJCb3R0b21XaWR0aCwxMCk9PT13Lm9mZnNldEhlaWdodCxqYi5yZW1vdmVDaGlsZCh0KSksZ319KSl9KCk7dmFyIHJjPVsiV2Via2l0IiwiTW96IiwibXMiXSxxYz1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlLHBjPXt9LG9kPS9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxwZD17cG9zaXRpb246ImFic29sdXRlIix2aXNpYmlsaXR5OiJoaWRkZW4iLGRpc3BsYXk6ImJsb2NrIn0sQ2M9e2xldHRlclNwYWNpbmc6IjAiLGZvbnRXZWlnaHQ6IjQwMCJ9O2QuZXh0ZW5kKHtjc3NIb29rczp7b3BhY2l0eTp7Z2V0OmZ1bmN0aW9uKGEsYil7aWYoYilyZXR1cm4gYT1LYShhLCJvcGFjaXR5IiksIiI9PT1hPyIxIjphfX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsYXNwZWN0UmF0aW86ITAsYm9yZGVySW1hZ2VTbGljZTohMCxjb2x1bW5Db3VudDohMCwKZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCxzY2FsZTohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITAsZmlsbE9wYWNpdHk6ITAsZmxvb2RPcGFjaXR5OiEwLHN0b3BPcGFjaXR5OiEwLHN0cm9rZU1pdGVybGltaXQ6ITAsc3Ryb2tlT3BhY2l0eTohMH0sY3NzUHJvcHM6e30sc3R5bGU6ZnVuY3Rpb24oYSxiLGMsZSl7aWYoYSYmMyE9PWEubm9kZVR5cGUmJjghPT1hLm5vZGVUeXBlJiZhLnN0eWxlKXt2YXIgZixnLGgsbT1CYShiKSxsPWFjLnRlc3QoYiksdD1hLnN0eWxlO2lmKGx8fChiPUFiKG0pKSxoPWQuY3NzSG9va3NbYl18fGQuY3NzSG9va3NbbV0sdm9pZCAwPT09YylyZXR1cm4gaCYmCiJnZXQiaW4gaCYmdm9pZCAwIT09KGY9aC5nZXQoYSwhMSxlKSk\/Zjp0W2JdOyJzdHJpbmciPT09KGc9dHlwZW9mIGMpJiYoZj15Yi5leGVjKGMpKSYmZlsxXSYmKGM9UGIoYSxiLGYpLGc9Im51bWJlciIpO251bGwhPWMmJmM9PWMmJigibnVtYmVyIiE9PWd8fGx8fChjKz1mJiZmWzNdfHwoZC5jc3NOdW1iZXJbbV0\/IiI6InB4IikpLE4uY2xlYXJDbG9uZVN0eWxlfHwiIiE9PWN8fDAhPT1iLmluZGV4T2YoImJhY2tncm91bmQiKXx8KHRbYl09ImluaGVyaXQiKSxoJiYic2V0ImluIGgmJnZvaWQgMD09PShjPWguc2V0KGEsYyxlKSl8fChsP3Quc2V0UHJvcGVydHkoYixjKTp0W2JdPWMpKX19LGNzczpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnLGgsbT1CYShiKTtyZXR1cm4gYWMudGVzdChiKXx8KGI9QWIobSkpLChoPWQuY3NzSG9va3NbYl18fGQuY3NzSG9va3NbbV0pJiYiZ2V0ImluIGgmJihmPWguZ2V0KGEsITAsYykpLHZvaWQgMD09PWYmJihmPUthKGEsYixlKSksIm5vcm1hbCI9PT0KZiYmYiBpbiBDYyYmKGY9Q2NbYl0pLCIiPT09Y3x8Yz8oZz1wYXJzZUZsb2F0KGYpLCEwPT09Y3x8aXNGaW5pdGUoZyk\/Z3x8MDpmKTpmfX0pO2QuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2JdPXtnZXQ6ZnVuY3Rpb24oYyxlLGYpe2lmKGUpcmV0dXJuIW9kLnRlc3QoZC5jc3MoYywiZGlzcGxheSIpKXx8Yy5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9CYihjLGIsZik6QmMoYyxwZCxmdW5jdGlvbigpe3JldHVybiBCYihjLGIsZil9KX0sc2V0OmZ1bmN0aW9uKGMsZSxmKXt2YXIgZyxoPVViKGMpLG09IU4uc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aC5wb3NpdGlvbixsPShtfHxmKSYmImJvcmRlci1ib3giPT09ZC5jc3MoYywiYm94U2l6aW5nIiwhMSxoKTtmPWY\/cmIoYyxiLGYsbCxoKTowO3JldHVybiBsJiZtJiYoZi09TWF0aC5jZWlsKGNbIm9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpKwpiLnNsaWNlKDEpXS1wYXJzZUZsb2F0KGhbYl0pLXJiKGMsYiwiYm9yZGVyIiwhMSxoKS0uNSkpLGYmJihnPXliLmV4ZWMoZSkpJiYicHgiIT09KGdbM118fCJweCIpJiYoYy5zdHlsZVtiXT1lLGU9ZC5jc3MoYyxiKSksV2IoMCxlLGYpfX19KTtkLmNzc0hvb2tzLm1hcmdpbkxlZnQ9VmIoTi5yZWxpYWJsZU1hcmdpbkxlZnQsZnVuY3Rpb24oYSxiKXtpZihiKXJldHVybihwYXJzZUZsb2F0KEthKGEsIm1hcmdpbkxlZnQiKSl8fGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdC1CYyhhLHttYXJnaW5MZWZ0OjB9LGZ1bmN0aW9uKCl7cmV0dXJuIGEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdH0pKSsicHgifSk7ZC5lYWNoKHttYXJnaW46IiIscGFkZGluZzoiIixib3JkZXI6IldpZHRoIn0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2ErYl09e2V4cGFuZDpmdW5jdGlvbihjKXt2YXIgZT0wLGY9e307Zm9yKGM9InN0cmluZyI9PXR5cGVvZiBjP2Muc3BsaXQoIiAiKTpbY107ND4KZTtlKyspZlthK1BhW2VdK2JdPWNbZV18fGNbZS0yXXx8Y1swXTtyZXR1cm4gZn19OyJtYXJnaW4iIT09YSYmKGQuY3NzSG9va3NbYStiXS5zZXQ9V2IpfSk7ZC5mbi5leHRlbmQoe2NzczpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGMsZSxmKXt2YXIgZyxoPXt9LG09MDtpZihBcnJheS5pc0FycmF5KGUpKXtmPVViKGMpO2ZvcihnPWUubGVuZ3RoO208ZzttKyspaFtlW21dXT1kLmNzcyhjLGVbbV0sITEsZik7cmV0dXJuIGh9cmV0dXJuIHZvaWQgMCE9PWY\/ZC5zdHlsZShjLGUsZik6ZC5jc3MoYyxlKX0sYSxiLDE8YXJndW1lbnRzLmxlbmd0aCl9fSk7KChkLlR3ZWVuPXphKS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnphLGluaXQ6ZnVuY3Rpb24oYSxiLGMsZSxmLGcpe3RoaXMuZWxlbT1hO3RoaXMucHJvcD1jO3RoaXMuZWFzaW5nPWZ8fGQuZWFzaW5nLl9kZWZhdWx0O3RoaXMub3B0aW9ucz1iO3RoaXMuc3RhcnQ9dGhpcy5ub3c9dGhpcy5jdXIoKTt0aGlzLmVuZD0KZTt0aGlzLnVuaXQ9Z3x8KGQuY3NzTnVtYmVyW2NdPyIiOiJweCIpfSxjdXI6ZnVuY3Rpb24oKXt2YXIgYT16YS5wcm9wSG9va3NbdGhpcy5wcm9wXTtyZXR1cm4gYSYmYS5nZXQ\/YS5nZXQodGhpcyk6emEucHJvcEhvb2tzLl9kZWZhdWx0LmdldCh0aGlzKX0scnVuOmZ1bmN0aW9uKGEpe3ZhciBiLGM9emEucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIHRoaXMub3B0aW9ucy5kdXJhdGlvbj90aGlzLnBvcz1iPWQuZWFzaW5nW3RoaXMuZWFzaW5nXShhLHRoaXMub3B0aW9ucy5kdXJhdGlvbiphLDAsMSx0aGlzLm9wdGlvbnMuZHVyYXRpb24pOnRoaXMucG9zPWI9YSx0aGlzLm5vdz0odGhpcy5lbmQtdGhpcy5zdGFydCkqYit0aGlzLnN0YXJ0LHRoaXMub3B0aW9ucy5zdGVwJiZ0aGlzLm9wdGlvbnMuc3RlcC5jYWxsKHRoaXMuZWxlbSx0aGlzLm5vdyx0aGlzKSxjJiZjLnNldD9jLnNldCh0aGlzKTp6YS5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KHRoaXMpLHRoaXN9fSkuaW5pdC5wcm90b3R5cGU9CnphLnByb3RvdHlwZTsoemEucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiAxIT09YS5lbGVtLm5vZGVUeXBlfHxudWxsIT1hLmVsZW1bYS5wcm9wXSYmbnVsbD09YS5lbGVtLnN0eWxlW2EucHJvcF0\/YS5lbGVtW2EucHJvcF06KGI9ZC5jc3MoYS5lbGVtLGEucHJvcCwiIikpJiYiYXV0byIhPT1iP2I6MH0sc2V0OmZ1bmN0aW9uKGEpe2QuZnguc3RlcFthLnByb3BdP2QuZnguc3RlcFthLnByb3BdKGEpOjEhPT1hLmVsZW0ubm9kZVR5cGV8fCFkLmNzc0hvb2tzW2EucHJvcF0mJm51bGw9PWEuZWxlbS5zdHlsZVtBYihhLnByb3ApXT9hLmVsZW1bYS5wcm9wXT1hLm5vdzpkLnN0eWxlKGEuZWxlbSxhLnByb3AsYS5ub3crYS51bml0KX19fSkuc2Nyb2xsVG9wPXphLnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oYSl7YS5lbGVtLm5vZGVUeXBlJiZhLmVsZW0ucGFyZW50Tm9kZSYmKGEuZWxlbVthLnByb3BdPWEubm93KX19O2QuZWFzaW5nPQp7bGluZWFyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxzd2luZzpmdW5jdGlvbihhKXtyZXR1cm4uNS1NYXRoLmNvcyhhKk1hdGguUEkpLzJ9LF9kZWZhdWx0OiJzd2luZyJ9O2QuZng9emEucHJvdG90eXBlLmluaXQ7ZC5meC5zdGVwPXt9O3ZhciBzYixYYixxZD0vXig\/OnRvZ2dsZXxzaG93fGhpZGUpJC8scmQ9L3F1ZXVlSG9va3MkLztkLkFuaW1hdGlvbj1kLmV4dGVuZCh4LHt0d2VlbmVyczp7IioiOltmdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuY3JlYXRlVHdlZW4oYSxiKTtyZXR1cm4gUGIoYy5lbGVtLGEseWIuZXhlYyhiKSxjKSxjfV19LHR3ZWVuZXI6ZnVuY3Rpb24oYSxiKXtNKGEpPyhiPWEsYT1bIioiXSk6YT1hLm1hdGNoKExhKTtmb3IodmFyIGMsZT0wLGY9YS5sZW5ndGg7ZTxmO2UrKyljPWFbZV0seC50d2VlbmVyc1tjXT14LnR3ZWVuZXJzW2NdfHxbXSx4LnR3ZWVuZXJzW2NdLnVuc2hpZnQoYil9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaCwKbSxsLHQsdz0id2lkdGgiaW4gYnx8ImhlaWdodCJpbiBiLHI9dGhpcyx6PXt9LEQ9YS5zdHlsZSxGPWEubm9kZVR5cGUmJlFiKGEpLE89Ry5nZXQoYSwiZnhzaG93Iik7Zm9yKGUgaW4gYy5xdWV1ZXx8KG51bGw9PShoPWQuX3F1ZXVlSG9va3MoYSwiZngiKSkudW5xdWV1ZWQmJihoLnVucXVldWVkPTAsbT1oLmVtcHR5LmZpcmUsaC5lbXB0eS5maXJlPWZ1bmN0aW9uKCl7aC51bnF1ZXVlZHx8bSgpfSksaC51bnF1ZXVlZCsrLHIuYWx3YXlzKGZ1bmN0aW9uKCl7ci5hbHdheXMoZnVuY3Rpb24oKXtoLnVucXVldWVkLS07ZC5xdWV1ZShhLCJmeCIpLmxlbmd0aHx8aC5lbXB0eS5maXJlKCl9KX0pKSxiKWlmKGY9YltlXSxxZC50ZXN0KGYpKXtpZihkZWxldGUgYltlXSxnPWd8fCJ0b2dnbGUiPT09ZixmPT09KEY\/ImhpZGUiOiJzaG93Iikpe2lmKCJzaG93IiE9PWZ8fCFPfHx2b2lkIDA9PT1PW2VdKWNvbnRpbnVlO0Y9ITB9eltlXT1PJiZPW2VdfHxkLnN0eWxlKGEsZSl9aWYoKGI9IWQuaXNFbXB0eU9iamVjdChiKSl8fAohZC5pc0VtcHR5T2JqZWN0KHopKWZvcihlIGluIHcmJjE9PT1hLm5vZGVUeXBlJiYoYy5vdmVyZmxvdz1bRC5vdmVyZmxvdyxELm92ZXJmbG93WCxELm92ZXJmbG93WV0sbnVsbD09KGw9TyYmTy5kaXNwbGF5KSYmKGw9Ry5nZXQoYSwiZGlzcGxheSIpKSwibm9uZSI9PT0odD1kLmNzcyhhLCJkaXNwbGF5IikpJiYobD90PWw6KCRhKFthXSwhMCksbD1hLnN0eWxlLmRpc3BsYXl8fGwsdD1kLmNzcyhhLCJkaXNwbGF5IiksJGEoW2FdKSkpLCgiaW5saW5lIj09PXR8fCJpbmxpbmUtYmxvY2siPT09dCYmbnVsbCE9bCkmJiJub25lIj09PWQuY3NzKGEsImZsb2F0IikmJihifHwoci5kb25lKGZ1bmN0aW9uKCl7RC5kaXNwbGF5PWx9KSxudWxsPT1sJiYodD1ELmRpc3BsYXksbD0ibm9uZSI9PT10PyIiOnQpKSxELmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxjLm92ZXJmbG93JiYoRC5vdmVyZmxvdz0iaGlkZGVuIixyLmFsd2F5cyhmdW5jdGlvbigpe0Qub3ZlcmZsb3c9Yy5vdmVyZmxvd1swXTsKRC5vdmVyZmxvd1g9Yy5vdmVyZmxvd1sxXTtELm92ZXJmbG93WT1jLm92ZXJmbG93WzJdfSkpLGI9ITEseilifHwoTz8iaGlkZGVuImluIE8mJihGPU8uaGlkZGVuKTpPPUcuYWNjZXNzKGEsImZ4c2hvdyIse2Rpc3BsYXk6bH0pLGcmJihPLmhpZGRlbj0hRiksRiYmJGEoW2FdLCEwKSxyLmRvbmUoZnVuY3Rpb24oKXtmb3IoZSBpbiBGfHwkYShbYV0pLEcucmVtb3ZlKGEsImZ4c2hvdyIpLHopZC5zdHlsZShhLGUseltlXSl9KSksYj11KEY\/T1tlXTowLGUsciksZSBpbiBPfHwoT1tlXT1iLnN0YXJ0LEYmJihiLmVuZD1iLnN0YXJ0LGIuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGEsYil7Yj94LnByZWZpbHRlcnMudW5zaGlmdChhKTp4LnByZWZpbHRlcnMucHVzaChhKX19KTtkLnNwZWVkPWZ1bmN0aW9uKGEsYixjKXt2YXIgZT1hJiYib2JqZWN0Ij09dHlwZW9mIGE\/ZC5leHRlbmQoe30sYSk6e2NvbXBsZXRlOmN8fCFjJiZifHxNKGEpJiZhLGR1cmF0aW9uOmEsZWFzaW5nOmMmJgpifHxiJiYhTShiKSYmYn07cmV0dXJuIGQuZngub2ZmP2UuZHVyYXRpb249MDoibnVtYmVyIiE9dHlwZW9mIGUuZHVyYXRpb24mJihlLmR1cmF0aW9uIGluIGQuZnguc3BlZWRzP2UuZHVyYXRpb249ZC5meC5zcGVlZHNbZS5kdXJhdGlvbl06ZS5kdXJhdGlvbj1kLmZ4LnNwZWVkcy5fZGVmYXVsdCksbnVsbCE9ZS5xdWV1ZSYmITAhPT1lLnF1ZXVlfHwoZS5xdWV1ZT0iZngiKSxlLm9sZD1lLmNvbXBsZXRlLGUuY29tcGxldGU9ZnVuY3Rpb24oKXtNKGUub2xkKSYmZS5vbGQuY2FsbCh0aGlzKTtlLnF1ZXVlJiZkLmRlcXVldWUodGhpcyxlLnF1ZXVlKX0sZX07ZC5mbi5leHRlbmQoe2ZhZGVUbzpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gdGhpcy5maWx0ZXIoUWIpLmNzcygib3BhY2l0eSIsMCkuc2hvdygpLmVuZCgpLmFuaW1hdGUoe29wYWNpdHk6Yn0sYSxjLGUpfSxhbmltYXRlOmZ1bmN0aW9uKGEsYixjLGUpe3ZhciBmPWQuaXNFbXB0eU9iamVjdChhKSxnPWQuc3BlZWQoYixjLGUpOwpiPWZ1bmN0aW9uKCl7dmFyIGg9eCh0aGlzLGQuZXh0ZW5kKHt9LGEpLGcpOyhmfHxHLmdldCh0aGlzLCJmaW5pc2giKSkmJmguc3RvcCghMCl9O3JldHVybiBiLmZpbmlzaD1iLGZ8fCExPT09Zy5xdWV1ZT90aGlzLmVhY2goYik6dGhpcy5xdWV1ZShnLnF1ZXVlLGIpfSxzdG9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZT1mdW5jdGlvbihmKXt2YXIgZz1mLnN0b3A7ZGVsZXRlIGYuc3RvcDtnKGMpfTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGEmJihjPWIsYj1hLGE9dm9pZCAwKSxiJiZ0aGlzLnF1ZXVlKGF8fCJmeCIsW10pLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBmPSEwLGc9bnVsbCE9YSYmYSsicXVldWVIb29rcyIsaD1kLnRpbWVycyxtPUcuZ2V0KHRoaXMpO2lmKGcpbVtnXSYmbVtnXS5zdG9wJiZlKG1bZ10pO2Vsc2UgZm9yKGcgaW4gbSltW2ddJiZtW2ddLnN0b3AmJnJkLnRlc3QoZykmJmUobVtnXSk7Zm9yKGc9aC5sZW5ndGg7Zy0tOyloW2ddLmVsZW0hPT10aGlzfHxudWxsIT0KYSYmaFtnXS5xdWV1ZSE9PWF8fChoW2ddLmFuaW0uc3RvcChjKSxmPSExLGguc3BsaWNlKGcsMSkpOyFmJiZjfHxkLmRlcXVldWUodGhpcyxhKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1HLmdldCh0aGlzKSxjPWJbYSsicXVldWUiXSxlPWJbYSsicXVldWVIb29rcyJdLGY9ZC50aW1lcnMsZz1jP2MubGVuZ3RoOjA7Yi5maW5pc2g9ITA7ZC5xdWV1ZSh0aGlzLGEsW10pO2UmJmUuc3RvcCYmZS5zdG9wLmNhbGwodGhpcywhMCk7Zm9yKGU9Zi5sZW5ndGg7ZS0tOylmW2VdLmVsZW09PT10aGlzJiZmW2VdLnF1ZXVlPT09YSYmKGZbZV0uYW5pbS5zdG9wKCEwKSxmLnNwbGljZShlLDEpKTtmb3IoZT0wO2U8ZztlKyspY1tlXSYmY1tlXS5maW5pc2gmJmNbZV0uZmluaXNoLmNhbGwodGhpcyk7ZGVsZXRlIGIuZmluaXNofSl9fSk7ZC5lYWNoKFsidG9nZ2xlIiwic2hvdyIsImhpZGUiXSxmdW5jdGlvbihhLApiKXt2YXIgYz1kLmZuW2JdO2QuZm5bYl09ZnVuY3Rpb24oZSxmLGcpe3JldHVybiBudWxsPT1lfHwiYm9vbGVhbiI9PXR5cGVvZiBlP2MuYXBwbHkodGhpcyxhcmd1bWVudHMpOnRoaXMuYW5pbWF0ZSh0YihiLCEwKSxlLGYsZyl9fSk7ZC5lYWNoKHtzbGlkZURvd246dGIoInNob3ciKSxzbGlkZVVwOnRiKCJoaWRlIiksc2xpZGVUb2dnbGU6dGIoInRvZ2dsZSIpLGZhZGVJbjp7b3BhY2l0eToic2hvdyJ9LGZhZGVPdXQ6e29wYWNpdHk6ImhpZGUifSxmYWRlVG9nZ2xlOntvcGFjaXR5OiJ0b2dnbGUifX0sZnVuY3Rpb24oYSxiKXtkLmZuW2FdPWZ1bmN0aW9uKGMsZSxmKXtyZXR1cm4gdGhpcy5hbmltYXRlKGIsYyxlLGYpfX0pO2QudGltZXJzPVtdO2QuZngudGljaz1mdW5jdGlvbigpe3ZhciBhLGI9MCxjPWQudGltZXJzO2ZvcihzYj1EYXRlLm5vdygpO2I8Yy5sZW5ndGg7YisrKShhPWNbYl0pKCl8fGNbYl0hPT1hfHxjLnNwbGljZShiLS0sMSk7Yy5sZW5ndGh8fGQuZnguc3RvcCgpOwpzYj12b2lkIDB9O2QuZngudGltZXI9ZnVuY3Rpb24oYSl7ZC50aW1lcnMucHVzaChhKTtkLmZ4LnN0YXJ0KCl9O2QuZnguaW50ZXJ2YWw9MTM7ZC5meC5zdGFydD1mdW5jdGlvbigpe1hifHwoWGI9ITAsQ2IoKSl9O2QuZnguc3RvcD1mdW5jdGlvbigpe1hiPW51bGx9O2QuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9O2QuZm4uZGVsYXk9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYT1kLmZ4JiZkLmZ4LnNwZWVkc1thXXx8YSxiPWJ8fCJmeCIsdGhpcy5xdWV1ZShiLGZ1bmN0aW9uKGMsZSl7dmFyIGY9bi5zZXRUaW1lb3V0KGMsYSk7ZS5zdG9wPWZ1bmN0aW9uKCl7bi5jbGVhclRpbWVvdXQoZil9fSl9O3ZhciBJYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0Iiksc2Q9TC5jcmVhdGVFbGVtZW50KCJzZWxlY3QiKS5hcHBlbmRDaGlsZChMLmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpKTtJYi50eXBlPSJjaGVja2JveCI7Ti5jaGVja09uPSIiIT09SWIudmFsdWU7Ti5vcHRTZWxlY3RlZD0Kc2Quc2VsZWN0ZWQ7KEliPUwuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkudmFsdWU9InQiO0liLnR5cGU9InJhZGlvIjtOLnJhZGlvVmFsdWU9InQiPT09SWIudmFsdWU7dmFyIEpiPWQuZXhwci5hdHRySGFuZGxlO2QuZm4uZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFhhKHRoaXMsZC5hdHRyLGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLnJlbW92ZUF0dHIodGhpcyxhKX0pfX0pO2QuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGc9YS5ub2RlVHlwZTtpZigzIT09ZyYmOCE9PWcmJjIhPT1nKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYS5nZXRBdHRyaWJ1dGU\/ZC5wcm9wKGEsYixjKTooMT09PWcmJmQuaXNYTUxEb2MoYSl8fChmPWQuYXR0ckhvb2tzW2IudG9Mb3dlckNhc2UoKV18fChkLmV4cHIubWF0Y2guYm9vbC50ZXN0KGIpP3RkOnZvaWQgMCkpLAp2b2lkIDAhPT1jP251bGw9PT1jP3ZvaWQgZC5yZW1vdmVBdHRyKGEsYik6ZiYmInNldCJpbiBmJiZ2b2lkIDAhPT0oZT1mLnNldChhLGMsYikpP2U6KGEuc2V0QXR0cmlidXRlKGIsYysiIiksYyk6ZiYmImdldCJpbiBmJiZudWxsIT09KGU9Zi5nZXQoYSxiKSk\/ZTpudWxsPT0oZT1kLmZpbmQuYXR0cihhLGIpKT92b2lkIDA6ZSl9LGF0dHJIb29rczp7dHlwZTp7c2V0OmZ1bmN0aW9uKGEsYil7aWYoIU4ucmFkaW9WYWx1ZSYmInJhZGlvIj09PWImJlgoYSwiaW5wdXQiKSl7dmFyIGM9YS52YWx1ZTtyZXR1cm4gYS5zZXRBdHRyaWJ1dGUoInR5cGUiLGIpLGMmJihhLnZhbHVlPWMpLGJ9fX19LHJlbW92ZUF0dHI6ZnVuY3Rpb24oYSxiKXt2YXIgYz0wLGU9YiYmYi5tYXRjaChMYSk7aWYoZSYmMT09PWEubm9kZVR5cGUpZm9yKDtiPWVbYysrXTspYS5yZW1vdmVBdHRyaWJ1dGUoYil9fSk7dmFyIHRkPXtzZXQ6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiExPT09Yj9kLnJlbW92ZUF0dHIoYSwKYyk6YS5zZXRBdHRyaWJ1dGUoYyxjKSxjfX07ZC5lYWNoKGQuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCgvXHcrL2cpLGZ1bmN0aW9uKGEsYil7dmFyIGM9SmJbYl18fGQuZmluZC5hdHRyO0piW2JdPWZ1bmN0aW9uKGUsZixnKXt2YXIgaCxtLGw9Zi50b0xvd2VyQ2FzZSgpO3JldHVybiBnfHwobT1KYltsXSxKYltsXT1oLGg9bnVsbCE9YyhlLGYsZyk\/bDpudWxsLEpiW2xdPW0pLGh9fSk7dmFyIHVkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbikkL2ksdmQ9L14oPzphfGFyZWEpJC9pO2QuZm4uZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYil7cmV0dXJuIFhhKHRoaXMsZC5wcm9wLGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVQcm9wOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkZWxldGUgdGhpc1tkLnByb3BGaXhbYV18fGFdfSl9fSk7ZC5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZz1hLm5vZGVUeXBlOwppZigzIT09ZyYmOCE9PWcmJjIhPT1nKXJldHVybiAxPT09ZyYmZC5pc1hNTERvYyhhKXx8KGI9ZC5wcm9wRml4W2JdfHxiLGY9ZC5wcm9wSG9va3NbYl0pLHZvaWQgMCE9PWM\/ZiYmInNldCJpbiBmJiZ2b2lkIDAhPT0oZT1mLnNldChhLGMsYikpP2U6YVtiXT1jOmYmJiJnZXQiaW4gZiYmbnVsbCE9PShlPWYuZ2V0KGEsYikpP2U6YVtiXX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWQuZmluZC5hdHRyKGEsInRhYmluZGV4Iik7cmV0dXJuIGI\/cGFyc2VJbnQoYiwxMCk6dWQudGVzdChhLm5vZGVOYW1lKXx8dmQudGVzdChhLm5vZGVOYW1lKSYmYS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSk7Ti5vcHRTZWxlY3RlZHx8KGQucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oYSl7YT1hLnBhcmVudE5vZGU7cmV0dXJuIGEmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsCm51bGx9LHNldDpmdW5jdGlvbihhKXthPWEucGFyZW50Tm9kZTthJiYoYS5zZWxlY3RlZEluZGV4LGEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgpfX0pO2QuZWFjaCgidGFiSW5kZXggcmVhZE9ubHkgbWF4TGVuZ3RoIGNlbGxTcGFjaW5nIGNlbGxQYWRkaW5nIHJvd1NwYW4gY29sU3BhbiB1c2VNYXAgZnJhbWVCb3JkZXIgY29udGVudEVkaXRhYmxlIi5zcGxpdCgiICIpLGZ1bmN0aW9uKCl7ZC5wcm9wRml4W3RoaXMudG9Mb3dlckNhc2UoKV09dGhpc30pO2QuZm4uZXh0ZW5kKHthZGRDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnLGg7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKG0pe2QodGhpcykuYWRkQ2xhc3MoYS5jYWxsKHRoaXMsbSxIKHRoaXMpKSl9KTooYj1QKGEpKS5sZW5ndGg\/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoZT1IKHRoaXMpLGM9MT09PXRoaXMubm9kZVR5cGUmJiIgIitDKGUpKyIgIil7Zm9yKGc9MDtnPGIubGVuZ3RoO2crKylmPQpiW2ddLDA+Yy5pbmRleE9mKCIgIitmKyIgIikmJihjKz1mKyIgIik7aD1DKGMpO2UhPT1oJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGgpfX0pOnRoaXN9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmLGcsaDtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24obSl7ZCh0aGlzKS5yZW1vdmVDbGFzcyhhLmNhbGwodGhpcyxtLEgodGhpcykpKX0pOmFyZ3VtZW50cy5sZW5ndGg\/KGI9UChhKSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKGU9SCh0aGlzKSxjPTE9PT10aGlzLm5vZGVUeXBlJiYiICIrQyhlKSsiICIpe2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspZm9yKGY9YltnXTstMTxjLmluZGV4T2YoIiAiK2YrIiAiKTspYz1jLnJlcGxhY2UoIiAiK2YrIiAiLCIgIik7aD1DKGMpO2UhPT1oJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGgpfX0pOnRoaXM6dGhpcy5hdHRyKCJjbGFzcyIsIiIpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihhLGIpe3ZhciBjLAplLGYsZyxoPXR5cGVvZiBhLG09InN0cmluZyI9PT1ofHxBcnJheS5pc0FycmF5KGEpO3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihsKXtkKHRoaXMpLnRvZ2dsZUNsYXNzKGEuY2FsbCh0aGlzLGwsSCh0aGlzKSxiKSxiKX0pOiJib29sZWFuIj09dHlwZW9mIGImJm0\/Yj90aGlzLmFkZENsYXNzKGEpOnRoaXMucmVtb3ZlQ2xhc3MoYSk6KGM9UChhKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtpZihtKWZvcihnPWQodGhpcyksZj0wO2Y8Yy5sZW5ndGg7ZisrKWU9Y1tmXSxnLmhhc0NsYXNzKGUpP2cucmVtb3ZlQ2xhc3MoZSk6Zy5hZGRDbGFzcyhlKTtlbHNlIHZvaWQgMCE9PWEmJiJib29sZWFuIiE9PWh8fCgoZT1IKHRoaXMpKSYmRy5zZXQodGhpcywiX19jbGFzc05hbWVfXyIsZSksdGhpcy5zZXRBdHRyaWJ1dGUmJnRoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsZXx8ITE9PT1hPyIiOkcuZ2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpKX0pKX0saGFzQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsCmM9MDtmb3IoYT0iICIrYSsiICI7Yj10aGlzW2MrK107KWlmKDE9PT1iLm5vZGVUeXBlJiYtMTwoIiAiK0MoSChiKSkrIiAiKS5pbmRleE9mKGEpKXJldHVybiEwO3JldHVybiExfX0pO3ZhciB3ZD0vXHIvZztkLmZuLmV4dGVuZCh7dmFsOmZ1bmN0aW9uKGEpe3ZhciBiLGMsZSxmPXRoaXNbMF07cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg\/KGU9TShhKSx0aGlzLmVhY2goZnVuY3Rpb24oZyl7dmFyIGg7MT09PXRoaXMubm9kZVR5cGUmJihudWxsPT0oaD1lP2EuY2FsbCh0aGlzLGcsZCh0aGlzKS52YWwoKSk6YSk\/aD0iIjoibnVtYmVyIj09dHlwZW9mIGg\/aCs9IiI6QXJyYXkuaXNBcnJheShoKSYmKGg9ZC5tYXAoaCxmdW5jdGlvbihtKXtyZXR1cm4gbnVsbD09bT8iIjptKyIifSkpLChiPWQudmFsSG9va3NbdGhpcy50eXBlXXx8ZC52YWxIb29rc1t0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCldKSYmInNldCJpbiBiJiZ2b2lkIDAhPT1iLnNldCh0aGlzLGgsInZhbHVlIil8fCh0aGlzLnZhbHVlPQpoKSl9KSk6Zj8oYj1kLnZhbEhvb2tzW2YudHlwZV18fGQudmFsSG9va3NbZi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJnZXQiaW4gYiYmdm9pZCAwIT09KGM9Yi5nZXQoZiwidmFsdWUiKSk\/Yzoic3RyaW5nIj09dHlwZW9mKGM9Zi52YWx1ZSk\/Yy5yZXBsYWNlKHdkLCIiKTpudWxsPT1jPyIiOmM6dm9pZCAwfX0pO2QuZXh0ZW5kKHt2YWxIb29rczp7b3B0aW9uOntnZXQ6ZnVuY3Rpb24oYSl7dmFyIGI9ZC5maW5kLmF0dHIoYSwidmFsdWUiKTtyZXR1cm4gbnVsbCE9Yj9iOkMoZC50ZXh0KGEpKX19LHNlbGVjdDp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiLGMsZT1hLm9wdGlvbnMsZj1hLnNlbGVjdGVkSW5kZXgsZz0ic2VsZWN0LW9uZSI9PT1hLnR5cGUsaD1nP251bGw6W10sbT1nP2YrMTplLmxlbmd0aDtmb3IoYz0wPmY\/bTpnP2Y6MDtjPG07YysrKWlmKCEoIShiPWVbY10pLnNlbGVjdGVkJiZjIT09Znx8Yi5kaXNhYmxlZHx8Yi5wYXJlbnROb2RlLmRpc2FibGVkJiZYKGIucGFyZW50Tm9kZSwKIm9wdGdyb3VwIikpKXtpZihhPWQoYikudmFsKCksZylyZXR1cm4gYTtoLnB1c2goYSl9cmV0dXJuIGh9LHNldDpmdW5jdGlvbihhLGIpe3ZhciBjLGUsZj1hLm9wdGlvbnM7Yj1kLm1ha2VBcnJheShiKTtmb3IodmFyIGc9Zi5sZW5ndGg7Zy0tOykoKGU9ZltnXSkuc2VsZWN0ZWQ9LTE8ZC5pbkFycmF5KGQudmFsSG9va3Mub3B0aW9uLmdldChlKSxiKSkmJihjPSEwKTtyZXR1cm4gY3x8KGEuc2VsZWN0ZWRJbmRleD0tMSksYn19fX0pO2QuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe2QudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihhLGIpe2lmKEFycmF5LmlzQXJyYXkoYikpcmV0dXJuIGEuY2hlY2tlZD0tMTxkLmluQXJyYXkoZChhKS52YWwoKSxiKX19O04uY2hlY2tPbnx8KGQudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09YS5nZXRBdHRyaWJ1dGUoInZhbHVlIik\/Im9uIjphLnZhbHVlfSl9KTt2YXIgS2I9bi5sb2NhdGlvbiwKRGM9RGF0ZS5ub3coKSxoYz0vXD8vO2QucGFyc2VYTUw9ZnVuY3Rpb24oYSl7dmFyIGI7aWYoIWF8fCJzdHJpbmciIT10eXBlb2YgYSlyZXR1cm4gbnVsbDt0cnl7dmFyIGM9KG5ldyBuLkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKGEsInRleHQveG1sIil9Y2F0Y2goZSl7fXJldHVybiBiPWMmJmMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIilbMF0sYyYmIWJ8fGQuZXJyb3IoIkludmFsaWQgWE1MOiAiKyhiP2QubWFwKGIuY2hpbGROb2RlcyxmdW5jdGlvbihlKXtyZXR1cm4gZS50ZXh0Q29udGVudH0pLmpvaW4oIlxuIik6YSkpLGN9O3ZhciBFYz0vXig\/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sRmM9ZnVuY3Rpb24oYSl7YS5zdG9wUHJvcGFnYXRpb24oKX07ZC5leHRlbmQoZC5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZixnLGgsbSxsLHQsdz1bY3x8TF0scj1GYi5jYWxsKGEsInR5cGUiKT9hLnR5cGU6YSx6PUZiLmNhbGwoYSwKIm5hbWVzcGFjZSIpP2EubmFtZXNwYWNlLnNwbGl0KCIuIik6W107aWYoZj10PWc9Yz1jfHxMLDMhPT1jLm5vZGVUeXBlJiY4IT09Yy5ub2RlVHlwZSYmIUVjLnRlc3QocitkLmV2ZW50LnRyaWdnZXJlZCkmJigtMTxyLmluZGV4T2YoIi4iKSYmKHI9KHo9ci5zcGxpdCgiLiIpKS5zaGlmdCgpLHouc29ydCgpKSxoPTA+ci5pbmRleE9mKCI6IikmJiJvbiIrciwoYT1hW2QuZXhwYW5kb10\/YTpuZXcgZC5FdmVudChyLCJvYmplY3QiPT10eXBlb2YgYSYmYSkpLmlzVHJpZ2dlcj1lPzI6MyxhLm5hbWVzcGFjZT16LmpvaW4oIi4iKSxhLnJuYW1lc3BhY2U9YS5uYW1lc3BhY2U\/bmV3IFJlZ0V4cCgiKF58XFwuKSIrei5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTpudWxsLGEucmVzdWx0PXZvaWQgMCxhLnRhcmdldHx8KGEudGFyZ2V0PWMpLGI9bnVsbD09Yj9bYV06ZC5tYWtlQXJyYXkoYixbYV0pLGw9ZC5ldmVudC5zcGVjaWFsW3JdfHx7fSxlfHwhbC50cmlnZ2VyfHwhMSE9PQpsLnRyaWdnZXIuYXBwbHkoYyxiKSkpe2lmKCFlJiYhbC5ub0J1YmJsZSYmIWtiKGMpKXt2YXIgRD1sLmRlbGVnYXRlVHlwZXx8cjtmb3IoRWMudGVzdChEK3IpfHwoZj1mLnBhcmVudE5vZGUpO2Y7Zj1mLnBhcmVudE5vZGUpdy5wdXNoKGYpLGc9ZjtnPT09KGMub3duZXJEb2N1bWVudHx8TCkmJncucHVzaChnLmRlZmF1bHRWaWV3fHxnLnBhcmVudFdpbmRvd3x8bil9Zm9yKHo9MDsoZj13W3orK10pJiYhYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpOyl0PWYsYS50eXBlPTE8ej9EOmwuYmluZFR5cGV8fHIsKG09KEcuZ2V0KGYsImV2ZW50cyIpfHxPYmplY3QuY3JlYXRlKG51bGwpKVthLnR5cGVdJiZHLmdldChmLCJoYW5kbGUiKSkmJm0uYXBwbHkoZixiKSwobT1oJiZmW2hdKSYmbS5hcHBseSYmR2IoZikmJihhLnJlc3VsdD1tLmFwcGx5KGYsYiksITE9PT1hLnJlc3VsdCYmYS5wcmV2ZW50RGVmYXVsdCgpKTtyZXR1cm4gYS50eXBlPXIsZXx8YS5pc0RlZmF1bHRQcmV2ZW50ZWQoKXx8CmwuX2RlZmF1bHQmJiExIT09bC5fZGVmYXVsdC5hcHBseSh3LnBvcCgpLGIpfHwhR2IoYyl8fGgmJk0oY1tyXSkmJiFrYihjKSYmKChnPWNbaF0pJiYoY1toXT1udWxsKSxkLmV2ZW50LnRyaWdnZXJlZD1yLGEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSYmdC5hZGRFdmVudExpc3RlbmVyKHIsRmMpLGNbcl0oKSxhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihyLEZjKSxkLmV2ZW50LnRyaWdnZXJlZD12b2lkIDAsZyYmKGNbaF09ZykpLGEucmVzdWx0fX0sc2ltdWxhdGU6ZnVuY3Rpb24oYSxiLGMpe2E9ZC5leHRlbmQobmV3IGQuRXZlbnQsYyx7dHlwZTphLGlzU2ltdWxhdGVkOiEwfSk7ZC5ldmVudC50cmlnZ2VyKGEsbnVsbCxiKX19KTtkLmZuLmV4dGVuZCh7dHJpZ2dlcjpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmV2ZW50LnRyaWdnZXIoYSxiLHRoaXMpfSl9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKGEsYil7dmFyIGM9CnRoaXNbMF07aWYoYylyZXR1cm4gZC5ldmVudC50cmlnZ2VyKGEsYixjLCEwKX19KTt2YXIgVWM9L1xbXF0kLyxHYz0vXHI\/XG4vZyx4ZD0vXig\/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2kseWQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2QucGFyYW09ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPVtdLGY9ZnVuY3Rpb24oZyxoKXtoPU0oaCk\/aCgpOmg7ZVtlLmxlbmd0aF09ZW5jb2RlVVJJQ29tcG9uZW50KGcpKyI9IitlbmNvZGVVUklDb21wb25lbnQobnVsbD09aD8iIjpoKX07aWYobnVsbD09YSlyZXR1cm4iIjtpZihBcnJheS5pc0FycmF5KGEpfHxhLmpxdWVyeSYmIWQuaXNQbGFpbk9iamVjdChhKSlkLmVhY2goYSxmdW5jdGlvbigpe2YodGhpcy5uYW1lLHRoaXMudmFsdWUpfSk7ZWxzZSBmb3IoYyBpbiBhKWVhKGMsYVtjXSxiLGYpO3JldHVybiBlLmpvaW4oIiYiKX07ZC5mbi5leHRlbmQoe3NlcmlhbGl6ZTpmdW5jdGlvbigpe3JldHVybiBkLnBhcmFtKHRoaXMuc2VyaWFsaXplQXJyYXkoKSl9LApzZXJpYWxpemVBcnJheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe3ZhciBhPWQucHJvcCh0aGlzLCJlbGVtZW50cyIpO3JldHVybiBhP2QubWFrZUFycmF5KGEpOnRoaXN9KS5maWx0ZXIoZnVuY3Rpb24oKXt2YXIgYT10aGlzLnR5cGU7cmV0dXJuIHRoaXMubmFtZSYmIWQodGhpcykuaXMoIjpkaXNhYmxlZCIpJiZ5ZC50ZXN0KHRoaXMubm9kZU5hbWUpJiYheGQudGVzdChhKSYmKHRoaXMuY2hlY2tlZHx8IUhiLnRlc3QoYSkpfSkubWFwKGZ1bmN0aW9uKGEsYil7YT1kKHRoaXMpLnZhbCgpO3JldHVybiBudWxsPT1hP251bGw6QXJyYXkuaXNBcnJheShhKT9kLm1hcChhLGZ1bmN0aW9uKGMpe3JldHVybntuYW1lOmIubmFtZSx2YWx1ZTpjLnJlcGxhY2UoR2MsIlxyXG4iKX19KTp7bmFtZTpiLm5hbWUsdmFsdWU6YS5yZXBsYWNlKEdjLCJcclxuIil9fSkuZ2V0KCl9fSk7dmFyIHpkPS8lMjAvZyxBZD0vIy4qJC8sQmQ9LyhbPyZdKV89W14mXSovLENkPS9eKC4qPyk6WyBcdF0qKFteXHJcbl0qKSQvZ20sCkRkPS9eKD86R0VUfEhFQUQpJC8sRWQ9L15cL1wvLyxIYz17fSxjYz17fSxJYz0iKi8iLmNvbmNhdCgiKiIpLGljPUwuY3JlYXRlRWxlbWVudCgiYSIpO2ljLmhyZWY9S2IuaHJlZjtkLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6S2IuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChLYi5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpJYyx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8sCmh0bWw6L1xiaHRtbC8sanNvbjovXGJqc29uXGIvfSxyZXNwb25zZUZpZWxkczp7eG1sOiJyZXNwb25zZVhNTCIsdGV4dDoicmVzcG9uc2VUZXh0Iixqc29uOiJyZXNwb25zZUpTT04ifSxjb252ZXJ0ZXJzOnsiKiB0ZXh0IjpTdHJpbmcsInRleHQgaHRtbCI6ITAsInRleHQganNvbiI6SlNPTi5wYXJzZSwidGV4dCB4bWwiOmQucGFyc2VYTUx9LGZsYXRPcHRpb25zOnt1cmw6ITAsY29udGV4dDohMH19LGFqYXhTZXR1cDpmdW5jdGlvbihhLGIpe3JldHVybiBiP2hiKGhiKGEsZC5hamF4U2V0dGluZ3MpLGIpOmhiKGQuYWpheFNldHRpbmdzLGEpfSxhamF4UHJlZmlsdGVyOlFhKEhjKSxhamF4VHJhbnNwb3J0OlFhKGNjKSxhamF4OmZ1bmN0aW9uKGEsYil7ZnVuY3Rpb24gYyhTLGhhLGliLFope3ZhciByYSx2YSxrYSxNYSx0YSxXPWhhO0t8fChLPSEwLG0mJm4uY2xlYXJUaW1lb3V0KG0pLGU9dm9pZCAwLGc9Wnx8IiIsUS5yZWFkeVN0YXRlPTA8Uz80OjAscmE9MjAwPD1TJiYzMDA+U3x8CjMwND09PVMsaWImJihNYT1mdW5jdGlvbihmYSxEYSxkYil7Zm9yKHZhciBWYSx1YSxZLGxhLElhPWZhLmNvbnRlbnRzLG1hPWZhLmRhdGFUeXBlczsiKiI9PT1tYVswXTspbWEuc2hpZnQoKSx2b2lkIDA9PT1WYSYmKFZhPWZhLm1pbWVUeXBlfHxEYS5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIikpO2lmKFZhKWZvcih1YSBpbiBJYSlpZihJYVt1YV0mJklhW3VhXS50ZXN0KFZhKSl7bWEudW5zaGlmdCh1YSk7YnJlYWt9aWYobWFbMF1pbiBkYilZPW1hWzBdO2Vsc2V7Zm9yKHVhIGluIGRiKXtpZighbWFbMF18fGZhLmNvbnZlcnRlcnNbdWErIiAiK21hWzBdXSl7WT11YTticmVha31sYXx8KGxhPXVhKX1ZPVl8fGxhfWlmKFkpcmV0dXJuIFkhPT1tYVswXSYmbWEudW5zaGlmdChZKSxkYltZXX0ocixRLGliKSksIXJhJiYtMTxkLmluQXJyYXkoInNjcmlwdCIsci5kYXRhVHlwZXMpJiYwPmQuaW5BcnJheSgianNvbiIsci5kYXRhVHlwZXMpJiYoci5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPQpmdW5jdGlvbigpe30pLE1hPWZ1bmN0aW9uKGZhLERhLGRiLFZhKXt2YXIgdWEsWSxsYSxJYSxtYSxIYT17fSx2Yj1mYS5kYXRhVHlwZXMuc2xpY2UoKTtpZih2YlsxXSlmb3IobGEgaW4gZmEuY29udmVydGVycylIYVtsYS50b0xvd2VyQ2FzZSgpXT1mYS5jb252ZXJ0ZXJzW2xhXTtmb3IoWT12Yi5zaGlmdCgpO1k7KWlmKGZhLnJlc3BvbnNlRmllbGRzW1ldJiYoZGJbZmEucmVzcG9uc2VGaWVsZHNbWV1dPURhKSwhbWEmJlZhJiZmYS5kYXRhRmlsdGVyJiYoRGE9ZmEuZGF0YUZpbHRlcihEYSxmYS5kYXRhVHlwZSkpLG1hPVksWT12Yi5zaGlmdCgpKWlmKCIqIj09PVkpWT1tYTtlbHNlIGlmKCIqIiE9PW1hJiZtYSE9PVkpe2lmKCEobGE9SGFbbWErIiAiK1ldfHxIYVsiKiAiK1ldKSlmb3IodWEgaW4gSGEpaWYoKElhPXVhLnNwbGl0KCIgIikpWzFdPT09WSYmKGxhPUhhW21hKyIgIitJYVswXV18fEhhWyIqICIrSWFbMF1dKSl7ITA9PT1sYT9sYT1IYVt1YV06ITAhPT1IYVt1YV0mJihZPQpJYVswXSx2Yi51bnNoaWZ0KElhWzFdKSk7YnJlYWt9aWYoITAhPT1sYSlpZihsYSYmZmFbInRocm93cyJdKURhPWxhKERhKTtlbHNlIHRyeXtEYT1sYShEYSl9Y2F0Y2goZmMpe3JldHVybntzdGF0ZToicGFyc2VyZXJyb3IiLGVycm9yOmxhP2ZjOiJObyBjb252ZXJzaW9uIGZyb20gIittYSsiIHRvICIrWX19fXJldHVybntzdGF0ZToic3VjY2VzcyIsZGF0YTpEYX19KHIsTWEsUSxyYSkscmE\/KHIuaWZNb2RpZmllZCYmKCh0YT1RLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoZC5sYXN0TW9kaWZpZWRbZl09dGEpLCh0YT1RLmdldFJlc3BvbnNlSGVhZGVyKCJldGFnIikpJiYoZC5ldGFnW2ZdPXRhKSksMjA0PT09U3x8IkhFQUQiPT09ci50eXBlP1c9Im5vY29udGVudCI6MzA0PT09Uz9XPSJub3Rtb2RpZmllZCI6KFc9TWEuc3RhdGUsdmE9TWEuZGF0YSxyYT0hKGthPU1hLmVycm9yKSkpOihrYT1XLCFTJiZXfHwoVz0iZXJyb3IiLDA+UyYmKFM9MCkpKSxRLnN0YXR1cz0KUyxRLnN0YXR1c1RleHQ9KGhhfHxXKSsiIixyYT9GLnJlc29sdmVXaXRoKHosW3ZhLFcsUV0pOkYucmVqZWN0V2l0aCh6LFtRLFcsa2FdKSxRLnN0YXR1c0NvZGUoYWEpLGFhPXZvaWQgMCxsJiZELnRyaWdnZXIocmE\/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbUSxyLHJhP3ZhOmthXSksTy5maXJlV2l0aCh6LFtRLFddKSxsJiYoRC50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtRLHJdKSwtLWQuYWN0aXZlfHxkLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX0ib2JqZWN0Ij09dHlwZW9mIGEmJihiPWEsYT12b2lkIDApO2I9Ynx8e307dmFyIGUsZixnLGgsbSxsLHQsdyxyPWQuYWpheFNldHVwKHt9LGIpLHo9ci5jb250ZXh0fHxyLEQ9ci5jb250ZXh0JiYoei5ub2RlVHlwZXx8ei5qcXVlcnkpP2Qoeik6ZC5ldmVudCxGPWQuRGVmZXJyZWQoKSxPPWQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGFhPXIuc3RhdHVzQ29kZXx8e30sR2E9e30scWE9e30sU2E9ImNhbmNlbGVkIixRPQp7cmVhZHlTdGF0ZTowLGdldFJlc3BvbnNlSGVhZGVyOmZ1bmN0aW9uKFMpe3ZhciBoYTtpZihLKXtpZighaClmb3IoaD17fTtoYT1DZC5leGVjKGcpOyloW2hhWzFdLnRvTG93ZXJDYXNlKCkrIiAiXT0oaFtoYVsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQoaGFbMl0pO2hhPWhbUy50b0xvd2VyQ2FzZSgpKyIgIl19cmV0dXJuIG51bGw9PWhhP251bGw6aGEuam9pbigiLCAiKX0sZ2V0QWxsUmVzcG9uc2VIZWFkZXJzOmZ1bmN0aW9uKCl7cmV0dXJuIEs\/ZzpudWxsfSxzZXRSZXF1ZXN0SGVhZGVyOmZ1bmN0aW9uKFMsaGEpe3JldHVybiBudWxsPT1LJiYoUz1xYVtTLnRvTG93ZXJDYXNlKCldPXFhW1MudG9Mb3dlckNhc2UoKV18fFMsR2FbU109aGEpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oUyl7cmV0dXJuIG51bGw9PUsmJihyLm1pbWVUeXBlPVMpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oUyl7dmFyIGhhO2lmKFMpaWYoSylRLmFsd2F5cyhTW1Euc3RhdHVzXSk7CmVsc2UgZm9yKGhhIGluIFMpYWFbaGFdPVthYVtoYV0sU1toYV1dO3JldHVybiB0aGlzfSxhYm9ydDpmdW5jdGlvbihTKXtTPVN8fFNhO3JldHVybiBlJiZlLmFib3J0KFMpLGMoMCxTKSx0aGlzfX07aWYoRi5wcm9taXNlKFEpLHIudXJsPSgoYXx8ci51cmx8fEtiLmhyZWYpKyIiKS5yZXBsYWNlKEVkLEtiLnByb3RvY29sKyIvLyIpLHIudHlwZT1iLm1ldGhvZHx8Yi50eXBlfHxyLm1ldGhvZHx8ci50eXBlLHIuZGF0YVR5cGVzPShyLmRhdGFUeXBlfHwiKiIpLnRvTG93ZXJDYXNlKCkubWF0Y2goTGEpfHxbIiJdLG51bGw9PXIuY3Jvc3NEb21haW4pe2E9TC5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e2EuaHJlZj1yLnVybCxhLmhyZWY9YS5ocmVmLHIuY3Jvc3NEb21haW49aWMucHJvdG9jb2wrIi8vIitpYy5ob3N0IT1hLnByb3RvY29sKyIvLyIrYS5ob3N0fWNhdGNoKFMpe3IuY3Jvc3NEb21haW49ITB9fWlmKHIuZGF0YSYmci5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiByLmRhdGEmJgooci5kYXRhPWQucGFyYW0oci5kYXRhLHIudHJhZGl0aW9uYWwpKSxFYihIYyxyLGIsUSksSylyZXR1cm4gUTtmb3IodCBpbihsPWQuZXZlbnQmJnIuZ2xvYmFsKSYmMD09ZC5hY3RpdmUrKyYmZC5ldmVudC50cmlnZ2VyKCJhamF4U3RhcnQiKSxyLnR5cGU9ci50eXBlLnRvVXBwZXJDYXNlKCksci5oYXNDb250ZW50PSFEZC50ZXN0KHIudHlwZSksZj1yLnVybC5yZXBsYWNlKEFkLCIiKSxyLmhhc0NvbnRlbnQ\/ci5kYXRhJiZyLnByb2Nlc3NEYXRhJiYwPT09KHIuY29udGVudFR5cGV8fCIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmKHIuZGF0YT1yLmRhdGEucmVwbGFjZSh6ZCwiKyIpKToodz1yLnVybC5zbGljZShmLmxlbmd0aCksci5kYXRhJiYoci5wcm9jZXNzRGF0YXx8InN0cmluZyI9PXR5cGVvZiByLmRhdGEpJiYoZis9KGhjLnRlc3QoZik\/IiYiOiI\/Iikrci5kYXRhLGRlbGV0ZSByLmRhdGEpLCExPT09ci5jYWNoZSYmKGY9Zi5yZXBsYWNlKEJkLAoiJDEiKSx3PShoYy50ZXN0KGYpPyImIjoiPyIpKyJfPSIrRGMrKyArdyksci51cmw9Zit3KSxyLmlmTW9kaWZpZWQmJihkLmxhc3RNb2RpZmllZFtmXSYmUS5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Nb2RpZmllZC1TaW5jZSIsZC5sYXN0TW9kaWZpZWRbZl0pLGQuZXRhZ1tmXSYmUS5zZXRSZXF1ZXN0SGVhZGVyKCJJZi1Ob25lLU1hdGNoIixkLmV0YWdbZl0pKSwoci5kYXRhJiZyLmhhc0NvbnRlbnQmJiExIT09ci5jb250ZW50VHlwZXx8Yi5jb250ZW50VHlwZSkmJlEuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixyLmNvbnRlbnRUeXBlKSxRLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsci5kYXRhVHlwZXNbMF0mJnIuYWNjZXB0c1tyLmRhdGFUeXBlc1swXV0\/ci5hY2NlcHRzW3IuZGF0YVR5cGVzWzBdXSsoIioiIT09ci5kYXRhVHlwZXNbMF0\/IiwgIitJYysiOyBxPTAuMDEiOiIiKTpyLmFjY2VwdHNbIioiXSksci5oZWFkZXJzKVEuc2V0UmVxdWVzdEhlYWRlcih0LHIuaGVhZGVyc1t0XSk7CmlmKHIuYmVmb3JlU2VuZCYmKCExPT09ci5iZWZvcmVTZW5kLmNhbGwoeixRLHIpfHxLKSlyZXR1cm4gUS5hYm9ydCgpO2lmKFNhPSJhYm9ydCIsTy5hZGQoci5jb21wbGV0ZSksUS5kb25lKHIuc3VjY2VzcyksUS5mYWlsKHIuZXJyb3IpLGU9RWIoY2MscixiLFEpKXtpZihRLnJlYWR5U3RhdGU9MSxsJiZELnRyaWdnZXIoImFqYXhTZW5kIixbUSxyXSksSylyZXR1cm4gUTtyLmFzeW5jJiYwPHIudGltZW91dCYmKG09bi5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7US5hYm9ydCgidGltZW91dCIpfSxyLnRpbWVvdXQpKTt0cnl7dmFyIEs9ITE7ZS5zZW5kKEdhLGMpfWNhdGNoKFMpe2lmKEspdGhyb3cgUztjKC0xLFMpfX1lbHNlIGMoLTEsIk5vIFRyYW5zcG9ydCIpO3JldHVybiBRfSxnZXRKU09OOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZC5nZXQoYSxiLGMsImpzb24iKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7cmV0dXJuIGQuZ2V0KGEsdm9pZCAwLGIsInNjcmlwdCIpfX0pO2QuZWFjaChbImdldCIsCiJwb3N0Il0sZnVuY3Rpb24oYSxiKXtkW2JdPWZ1bmN0aW9uKGMsZSxmLGcpe3JldHVybiBNKGUpJiYoZz1nfHxmLGY9ZSxlPXZvaWQgMCksZC5hamF4KGQuZXh0ZW5kKHt1cmw6Yyx0eXBlOmIsZGF0YVR5cGU6ZyxkYXRhOmUsc3VjY2VzczpmfSxkLmlzUGxhaW5PYmplY3QoYykmJmMpKX19KTtkLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oYSl7Zm9yKHZhciBiIGluIGEuaGVhZGVycykiY29udGVudC10eXBlIj09PWIudG9Mb3dlckNhc2UoKSYmKGEuY29udGVudFR5cGU9YS5oZWFkZXJzW2JdfHwiIil9KTtkLl9ldmFsVXJsPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gZC5hamF4KHt1cmw6YSx0eXBlOiJHRVQiLGRhdGFUeXBlOiJzY3JpcHQiLGNhY2hlOiEwLGFzeW5jOiExLGdsb2JhbDohMSxjb252ZXJ0ZXJzOnsidGV4dCBzY3JpcHQiOmZ1bmN0aW9uKCl7fX0sZGF0YUZpbHRlcjpmdW5jdGlvbihlKXtkLmdsb2JhbEV2YWwoZSxiLGMpfX0pfTtkLmZuLmV4dGVuZCh7d3JhcEFsbDpmdW5jdGlvbihhKXt2YXIgYjsKcmV0dXJuIHRoaXNbMF0mJihNKGEpJiYoYT1hLmNhbGwodGhpc1swXSkpLGI9ZChhLHRoaXNbMF0ub3duZXJEb2N1bWVudCkuZXEoMCkuY2xvbmUoITApLHRoaXNbMF0ucGFyZW50Tm9kZSYmYi5pbnNlcnRCZWZvcmUodGhpc1swXSksYi5tYXAoZnVuY3Rpb24oKXtmb3IodmFyIGM9dGhpcztjLmZpcnN0RWxlbWVudENoaWxkOyljPWMuZmlyc3RFbGVtZW50Q2hpbGQ7cmV0dXJuIGN9KS5hcHBlbmQodGhpcykpLHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihhKXtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24oYil7ZCh0aGlzKS53cmFwSW5uZXIoYS5jYWxsKHRoaXMsYikpfSk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9ZCh0aGlzKSxjPWIuY29udGVudHMoKTtjLmxlbmd0aD9jLndyYXBBbGwoYSk6Yi5hcHBlbmQoYSl9KX0sd3JhcDpmdW5jdGlvbihhKXt2YXIgYj1NKGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oYyl7ZCh0aGlzKS53cmFwQWxsKGI\/YS5jYWxsKHRoaXMsCmMpOmEpfSl9LHVud3JhcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wYXJlbnQoYSkubm90KCJib2R5IikuZWFjaChmdW5jdGlvbigpe2QodGhpcykucmVwbGFjZVdpdGgodGhpcy5jaGlsZE5vZGVzKX0pLHRoaXN9fSk7ZC5leHByLnBzZXVkb3MuaGlkZGVuPWZ1bmN0aW9uKGEpe3JldHVybiFkLmV4cHIucHNldWRvcy52aXNpYmxlKGEpfTtkLmV4cHIucHNldWRvcy52aXNpYmxlPWZ1bmN0aW9uKGEpe3JldHVybiEhKGEub2Zmc2V0V2lkdGh8fGEub2Zmc2V0SGVpZ2h0fHxhLmdldENsaWVudFJlY3RzKCkubGVuZ3RoKX07ZC5hamF4U2V0dGluZ3MueGhyPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBuZXcgbi5YTUxIdHRwUmVxdWVzdH1jYXRjaChhKXt9fTt2YXIgRmQ9ezA6MjAwLDEyMjM6MjA0fSxMYj1kLmFqYXhTZXR0aW5ncy54aHIoKTtOLmNvcnM9ISFMYiYmIndpdGhDcmVkZW50aWFscyJpbiBMYjtOLmFqYXg9TGI9ISFMYjtkLmFqYXhUcmFuc3BvcnQoZnVuY3Rpb24oYSl7dmFyIGIsCmM7aWYoTi5jb3JzfHxMYiYmIWEuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSxmKXt2YXIgZyxoPWEueGhyKCk7aWYoaC5vcGVuKGEudHlwZSxhLnVybCxhLmFzeW5jLGEudXNlcm5hbWUsYS5wYXNzd29yZCksYS54aHJGaWVsZHMpZm9yKGcgaW4gYS54aHJGaWVsZHMpaFtnXT1hLnhockZpZWxkc1tnXTtmb3IoZyBpbiBhLm1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUmJmgub3ZlcnJpZGVNaW1lVHlwZShhLm1pbWVUeXBlKSxhLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSloLnNldFJlcXVlc3RIZWFkZXIoZyxlW2ddKTtiPWZ1bmN0aW9uKG0pe3JldHVybiBmdW5jdGlvbigpe2ImJihiPWM9aC5vbmxvYWQ9aC5vbmVycm9yPWgub25hYm9ydD1oLm9udGltZW91dD1oLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1tP2guYWJvcnQoKToiZXJyb3IiPT09bT8KIm51bWJlciIhPXR5cGVvZiBoLnN0YXR1cz9mKDAsImVycm9yIik6ZihoLnN0YXR1cyxoLnN0YXR1c1RleHQpOmYoRmRbaC5zdGF0dXNdfHxoLnN0YXR1cyxoLnN0YXR1c1RleHQsInRleHQiIT09KGgucmVzcG9uc2VUeXBlfHwidGV4dCIpfHwic3RyaW5nIiE9dHlwZW9mIGgucmVzcG9uc2VUZXh0P3tiaW5hcnk6aC5yZXNwb25zZX06e3RleHQ6aC5yZXNwb25zZVRleHR9LGguZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpKX19O2gub25sb2FkPWIoKTtjPWgub25lcnJvcj1oLm9udGltZW91dD1iKCJlcnJvciIpO3ZvaWQgMCE9PWgub25hYm9ydD9oLm9uYWJvcnQ9YzpoLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PT1oLnJlYWR5U3RhdGUmJm4uc2V0VGltZW91dChmdW5jdGlvbigpe2ImJmMoKX0pfTtiPWIoImFib3J0Iik7dHJ5e2guc2VuZChhLmhhc0NvbnRlbnQmJmEuZGF0YXx8bnVsbCl9Y2F0Y2gobSl7aWYoYil0aHJvdyBtO319LGFib3J0OmZ1bmN0aW9uKCl7YiYmCmIoKX19fSk7ZC5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGEpe2EuY3Jvc3NEb21haW4mJihhLmNvbnRlbnRzLnNjcmlwdD0hMSl9KTtkLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihhKXtyZXR1cm4gZC5nbG9iYWxFdmFsKGEpLGF9fX0pO2QuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihhKXt2b2lkIDA9PT1hLmNhY2hlJiYoYS5jYWNoZT0hMSk7YS5jcm9zc0RvbWFpbiYmKGEudHlwZT0iR0VUIil9KTtkLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24oYSl7dmFyIGIsYztpZihhLmNyb3NzRG9tYWlufHxhLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsCmYpe2I9ZCgiPHNjcmlwdD4iKS5hdHRyKGEuc2NyaXB0QXR0cnN8fHt9KS5wcm9wKHtjaGFyc2V0OmEuc2NyaXB0Q2hhcnNldCxzcmM6YS51cmx9KS5vbigibG9hZCBlcnJvciIsYz1mdW5jdGlvbihnKXtiLnJlbW92ZSgpO2M9bnVsbDtnJiZmKCJlcnJvciI9PT1nLnR5cGU\/NDA0OjIwMCxnLnR5cGUpfSk7TC5oZWFkLmFwcGVuZENoaWxkKGJbMF0pfSxhYm9ydDpmdW5jdGlvbigpe2MmJmMoKX19fSk7dmFyIEpjLEtjPVtdLGpjPS8oPSlcPyg\/PSZ8JCl8XD9cPy87ZC5hamF4U2V0dXAoe2pzb25wOiJjYWxsYmFjayIsanNvbnBDYWxsYmFjazpmdW5jdGlvbigpe3ZhciBhPUtjLnBvcCgpfHxkLmV4cGFuZG8rIl8iK0RjKys7cmV0dXJuIHRoaXNbYV09ITAsYX19KTtkLmFqYXhQcmVmaWx0ZXIoImpzb24ganNvbnAiLGZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD0hMSE9PWEuanNvbnAmJihqYy50ZXN0KGEudXJsKT8idXJsIjoic3RyaW5nIj09dHlwZW9mIGEuZGF0YSYmMD09PShhLmNvbnRlbnRUeXBlfHwKIiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZqYy50ZXN0KGEuZGF0YSkmJiJkYXRhIik7aWYoaHx8Impzb25wIj09PWEuZGF0YVR5cGVzWzBdKXJldHVybiBlPWEuanNvbnBDYWxsYmFjaz1NKGEuanNvbnBDYWxsYmFjayk\/YS5qc29ucENhbGxiYWNrKCk6YS5qc29ucENhbGxiYWNrLGg\/YVtoXT1hW2hdLnJlcGxhY2UoamMsIiQxIitlKTohMSE9PWEuanNvbnAmJihhLnVybCs9KGhjLnRlc3QoYS51cmwpPyImIjoiPyIpK2EuanNvbnArIj0iK2UpLGEuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBnfHxkLmVycm9yKGUrIiB3YXMgbm90IGNhbGxlZCIpLGdbMF19LGEuZGF0YVR5cGVzWzBdPSJqc29uIixmPW5bZV0sbltlXT1mdW5jdGlvbigpe2c9YXJndW1lbnRzfSxjLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWY\/ZChuKS5yZW1vdmVQcm9wKGUpOm5bZV09ZjthW2VdJiYoYS5qc29ucENhbGxiYWNrPWIuanNvbnBDYWxsYmFjaywKS2MucHVzaChlKSk7ZyYmTShmKSYmZihnWzBdKTtnPWY9dm9pZCAwfSksInNjcmlwdCJ9KTtOLmNyZWF0ZUhUTUxEb2N1bWVudD0oKEpjPUwuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKS5ib2R5KS5pbm5lckhUTUw9Ijxmb3JtPjwvZm9ybT48Zm9ybT48L2Zvcm0+IiwyPT09SmMuY2hpbGROb2Rlcy5sZW5ndGgpO2QucGFyc2VIVE1MPWZ1bmN0aW9uKGEsYixjKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIGE\/W106KCJib29sZWFuIj09dHlwZW9mIGImJihjPWIsYj0hMSksYnx8KE4uY3JlYXRlSFRNTERvY3VtZW50PygoZT0oYj1MLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikpLmNyZWF0ZUVsZW1lbnQoImJhc2UiKSkuaHJlZj1MLmxvY2F0aW9uLmhyZWYsYi5oZWFkLmFwcGVuZENoaWxkKGUpKTpiPUwpLGc9IWMmJltdLChmPXljLmV4ZWMoYSkpP1tiLmNyZWF0ZUVsZW1lbnQoZlsxXSldOihmPVJiKFthXSxiLGcpLGcmJmcubGVuZ3RoJiZkKGcpLnJlbW92ZSgpLApkLm1lcmdlKFtdLGYuY2hpbGROb2RlcykpKTt2YXIgZSxmLGd9O2QuZm4ubG9hZD1mdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9dGhpcyxtPWEuaW5kZXhPZigiICIpO3JldHVybi0xPG0mJihlPUMoYS5zbGljZShtKSksYT1hLnNsaWNlKDAsbSkpLE0oYik\/KGM9YixiPXZvaWQgMCk6YiYmIm9iamVjdCI9PXR5cGVvZiBiJiYoZj0iUE9TVCIpLDA8aC5sZW5ndGgmJmQuYWpheCh7dXJsOmEsdHlwZTpmfHwiR0VUIixkYXRhVHlwZToiaHRtbCIsZGF0YTpifSkuZG9uZShmdW5jdGlvbihsKXtnPWFyZ3VtZW50cztoLmh0bWwoZT9kKCI8ZGl2PiIpLmFwcGVuZChkLnBhcnNlSFRNTChsKSkuZmluZChlKTpsKX0pLmFsd2F5cyhjJiZmdW5jdGlvbihsLHQpe2guZWFjaChmdW5jdGlvbigpe2MuYXBwbHkodGhpcyxnfHxbbC5yZXNwb25zZVRleHQsdCxsXSl9KX0pLHRoaXN9O2QuZXhwci5wc2V1ZG9zLmFuaW1hdGVkPWZ1bmN0aW9uKGEpe3JldHVybiBkLmdyZXAoZC50aW1lcnMsZnVuY3Rpb24oYil7cmV0dXJuIGE9PT0KYi5lbGVtfSkubGVuZ3RofTtkLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGcsaD1kLmNzcyhhLCJwb3NpdGlvbiIpLG09ZChhKSxsPXt9OyJzdGF0aWMiPT09aCYmKGEuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIik7dmFyIHQ9bS5vZmZzZXQoKSx3PWQuY3NzKGEsInRvcCIpLHI9ZC5jc3MoYSwibGVmdCIpOygiYWJzb2x1dGUiPT09aHx8ImZpeGVkIj09PWgpJiYtMTwodytyKS5pbmRleE9mKCJhdXRvIik\/KGc9KGU9bS5wb3NpdGlvbigpKS50b3AsZj1lLmxlZnQpOihnPXBhcnNlRmxvYXQodyl8fDAsZj1wYXJzZUZsb2F0KHIpfHwwKTtNKGIpJiYoYj1iLmNhbGwoYSxjLGQuZXh0ZW5kKHt9LHQpKSk7bnVsbCE9Yi50b3AmJihsLnRvcD1iLnRvcC10LnRvcCtnKTtudWxsIT1iLmxlZnQmJihsLmxlZnQ9Yi5sZWZ0LXQubGVmdCtmKTsidXNpbmciaW4gYj9iLnVzaW5nLmNhbGwoYSxsKTptLmNzcyhsKX19O2QuZm4uZXh0ZW5kKHtvZmZzZXQ6ZnVuY3Rpb24oYSl7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09CmE\/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oZil7ZC5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsYSxmKX0pO3ZhciBiLGMsZT10aGlzWzBdO3JldHVybiBlP2UuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGg\/KGI9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPWUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldyx7dG9wOmIudG9wK2MucGFnZVlPZmZzZXQsbGVmdDpiLmxlZnQrYy5wYWdlWE9mZnNldH0pOnt0b3A6MCxsZWZ0OjB9OnZvaWQgMH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgYSxiPXRoaXNbMF0sYz17dG9wOjAsbGVmdDowfTtpZigiZml4ZWQiPT09ZC5jc3MoYiwicG9zaXRpb24iKSl2YXIgZT1iLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7ZT10aGlzLm9mZnNldCgpO3ZhciBmPWIub3duZXJEb2N1bWVudDtmb3IoYT1iLm9mZnNldFBhcmVudHx8Zi5kb2N1bWVudEVsZW1lbnQ7YSYmKGE9PT1mLmJvZHl8fGE9PT1mLmRvY3VtZW50RWxlbWVudCkmJgoic3RhdGljIj09PWQuY3NzKGEsInBvc2l0aW9uIik7KWE9YS5wYXJlbnROb2RlO2EmJmEhPT1iJiYxPT09YS5ub2RlVHlwZSYmKChjPWQoYSkub2Zmc2V0KCkpLnRvcCs9ZC5jc3MoYSwiYm9yZGVyVG9wV2lkdGgiLCEwKSxjLmxlZnQrPWQuY3NzKGEsImJvcmRlckxlZnRXaWR0aCIsITApKX1yZXR1cm57dG9wOmUudG9wLWMudG9wLWQuY3NzKGIsIm1hcmdpblRvcCIsITApLGxlZnQ6ZS5sZWZ0LWMubGVmdC1kLmNzcyhiLCJtYXJnaW5MZWZ0IiwhMCl9fX0sb2Zmc2V0UGFyZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBhPXRoaXMub2Zmc2V0UGFyZW50O2EmJiJzdGF0aWMiPT09ZC5jc3MoYSwicG9zaXRpb24iKTspYT1hLm9mZnNldFBhcmVudDtyZXR1cm4gYXx8amJ9KX19KTtkLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24oYSxiKXt2YXIgYz0icGFnZVlPZmZzZXQiPT09CmI7ZC5mblthXT1mdW5jdGlvbihlKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihmLGcsaCl7dmFyIG07aWYoa2IoZik\/bT1mOjk9PT1mLm5vZGVUeXBlJiYobT1mLmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1oKXJldHVybiBtP21bYl06ZltnXTttP20uc2Nyb2xsVG8oYz9tLnBhZ2VYT2Zmc2V0OmgsYz9oOm0ucGFnZVlPZmZzZXQpOmZbZ109aH0sYSxlLGFyZ3VtZW50cy5sZW5ndGgpfX0pO2QuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihhLGIpe2QuY3NzSG9va3NbYl09VmIoTi5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGMsZSl7aWYoZSlyZXR1cm4gZT1LYShjLGIpLGJjLnRlc3QoZSk\/ZChjKS5wb3NpdGlvbigpW2JdKyJweCI6ZX0pfSk7ZC5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24oYSxiKXtkLmVhY2goe3BhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6YiwiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKGMsZSl7ZC5mbltlXT1mdW5jdGlvbihmLApnKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoJiYoY3x8ImJvb2xlYW4iIT10eXBlb2YgZiksbT1jfHwoITA9PT1mfHwhMD09PWc\/Im1hcmdpbiI6ImJvcmRlciIpO3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGwsdCx3KXt2YXIgcjtyZXR1cm4ga2IobCk\/MD09PWUuaW5kZXhPZigib3V0ZXIiKT9sWyJpbm5lciIrYV06bC5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWwubm9kZVR5cGU\/KHI9bC5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgobC5ib2R5WyJzY3JvbGwiK2FdLHJbInNjcm9sbCIrYV0sbC5ib2R5WyJvZmZzZXQiK2FdLHJbIm9mZnNldCIrYV0sclsiY2xpZW50IithXSkpOnZvaWQgMD09PXc\/ZC5jc3MobCx0LG0pOmQuc3R5bGUobCx0LHcsbSl9LGIsaD9mOnZvaWQgMCxoKX19KX0pO2QuZWFjaCgiYWpheFN0YXJ0IGFqYXhTdG9wIGFqYXhDb21wbGV0ZSBhamF4RXJyb3IgYWpheFN1Y2Nlc3MgYWpheFNlbmQiLnNwbGl0KCIgIiksZnVuY3Rpb24oYSwKYil7ZC5mbltiXT1mdW5jdGlvbihjKXtyZXR1cm4gdGhpcy5vbihiLGMpfX0pO2QuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gdGhpcy5vbihhLG51bGwsYixjKX0sdW5iaW5kOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMub2ZmKGEsbnVsbCxiKX0sZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIHRoaXMub24oYixhLGMsZSl9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihhLCIqKiIpOnRoaXMub2ZmKGIsYXx8IioqIixjKX0saG92ZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGEpLm1vdXNlbGVhdmUoYnx8YSl9fSk7ZC5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLApmdW5jdGlvbihhLGIpe2QuZm5bYl09ZnVuY3Rpb24oYyxlKXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24oYixudWxsLGMsZSk6dGhpcy50cmlnZ2VyKGIpfX0pO3ZhciBHZD0vXltcc1x1RkVGRlx4QTBdK3woW15cc1x1RkVGRlx4QTBdKVtcc1x1RkVGRlx4QTBdKyQvZztkLnByb3h5PWZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmO2lmKCJzdHJpbmciPT10eXBlb2YgYiYmKGM9YVtiXSxiPWEsYT1jKSxNKGEpKXJldHVybiBlPXlhLmNhbGwoYXJndW1lbnRzLDIpLChmPWZ1bmN0aW9uKCl7cmV0dXJuIGEuYXBwbHkoYnx8dGhpcyxlLmNvbmNhdCh5YS5jYWxsKGFyZ3VtZW50cykpKX0pLmd1aWQ9YS5ndWlkPWEuZ3VpZHx8ZC5ndWlkKyssZn07ZC5ob2xkUmVhZHk9ZnVuY3Rpb24oYSl7YT9kLnJlYWR5V2FpdCsrOmQucmVhZHkoITApfTtkLmlzQXJyYXk9QXJyYXkuaXNBcnJheTtkLnBhcnNlSlNPTj1KU09OLnBhcnNlO2Qubm9kZU5hbWU9WDtkLmlzRnVuY3Rpb249TTtkLmlzV2luZG93PQprYjtkLmNhbWVsQ2FzZT1CYTtkLnR5cGU9VTtkLm5vdz1EYXRlLm5vdztkLmlzTnVtZXJpYz1mdW5jdGlvbihhKXt2YXIgYj1kLnR5cGUoYSk7cmV0dXJuKCJudW1iZXIiPT09Ynx8InN0cmluZyI9PT1iKSYmIWlzTmFOKGEtcGFyc2VGbG9hdChhKSl9O2QudHJpbT1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09YT8iIjooYSsiIikucmVwbGFjZShHZCwiJDEiKX07ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZCYmZGVmaW5lKCJqcXVlcnkiLFtdLGZ1bmN0aW9uKCl7cmV0dXJuIGR9KTt2YXIgSGQ9bi5qUXVlcnksSWQ9bi4kO3JldHVybiBkLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oYSl7cmV0dXJuIG4uJD09PWQmJihuLiQ9SWQpLGEmJm4ualF1ZXJ5PT09ZCYmKG4ualF1ZXJ5PUhkKSxkfSwidW5kZWZpbmVkIj09dHlwZW9mIGRhJiYobi5qUXVlcnk9bi4kPWQpLGR9KTt2YXIgbWF0Y2hlZCxicm93c2VyOwpqUXVlcnkudWFNYXRjaD1mdW5jdGlvbihuKXtuPW4udG9Mb3dlckNhc2UoKTtuPS8oY2hyb21lKVsgXC9dKFtcdy5dKykvLmV4ZWMobil8fC8od2Via2l0KVsgXC9dKFtcdy5dKykvLmV4ZWMobil8fC8ob3BlcmEpKD86Lip2ZXJzaW9ufClbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKG1zaWUpIChbXHcuXSspLy5leGVjKG4pfHwwPm4uaW5kZXhPZigiY29tcGF0aWJsZSIpJiYvKG1vemlsbGEpKD86Lio\/IHJ2OihbXHcuXSspfCkvLmV4ZWMobil8fFtdO3JldHVybnticm93c2VyOm5bMV18fCIiLHZlcnNpb246blsyXXx8IjAifX07bWF0Y2hlZD1qUXVlcnkudWFNYXRjaChuYXZpZ2F0b3IudXNlckFnZW50KTticm93c2VyPXt9O21hdGNoZWQuYnJvd3NlciYmKGJyb3dzZXJbbWF0Y2hlZC5icm93c2VyXT0hMCxicm93c2VyLnZlcnNpb249bWF0Y2hlZC52ZXJzaW9uKTticm93c2VyLmNocm9tZT9icm93c2VyLndlYmtpdD0hMDpicm93c2VyLndlYmtpdCYmKGJyb3dzZXIuc2FmYXJpPSEwKTsKalF1ZXJ5LmJyb3dzZXI9YnJvd3NlcjsKKGZ1bmN0aW9uKG4peyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLGZ1bmN0aW9uKGRhKXtyZXR1cm4gbihkYSx3aW5kb3cpfSk6Im9iamVjdCI9PT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1uKHJlcXVpcmUoImpxdWVyeSIpLHdpbmRvdyk6bihqUXVlcnksd2luZG93KX0pKGZ1bmN0aW9uKG4sZGEpe2Z1bmN0aW9uIHdhKHUpe2E6e3ZhciB4PS9eKFxkKylcLihcZCspXC4oXGQrKS8sQz14LmV4ZWMobi5mbi5qcXVlcnkpfHxbXTt4PXguZXhlYyh1KXx8W107Zm9yKHU9MTszPj11O3UrKyl7aWYoK0NbdV0+K3hbdV0pe0M9MTticmVhayBhfWlmKCtDW3VdPCt4W3VdKXtDPS0xO2JyZWFrIGF9fUM9MH1yZXR1cm4gMDw9Q31mdW5jdGlvbiBVKHUseCl7dmFyIEM9ZGEuY29uc29sZTshbi5taWdyYXRlSXNQYXRjaEVuYWJsZWQodSl8fG4ubWlncmF0ZURlZHVwbGljYXRlV2FybmluZ3MmJm1iW3hdfHwKKG1iW3hdPSEwLG4ubWlncmF0ZVdhcm5pbmdzLnB1c2goeCsiIFsiK3UrIl0iKSxDJiZDLndhcm4mJiFuLm1pZ3JhdGVNdXRlJiYoQy53YXJuKCJKUU1JR1JBVEU6ICIreCksbi5taWdyYXRlVHJhY2UmJkMudHJhY2UmJkMudHJhY2UoKSkpfWZ1bmN0aW9uIGViKHUseCxDLEgsUCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHUseCx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7VShILFApO3JldHVybiBDfSxzZXQ6ZnVuY3Rpb24oZWEpe1UoSCxQKTtDPWVhfX0pfWZ1bmN0aW9uIFgodSx4LEMsSCxQKXt2YXIgZWEsUWE9dVt4XTt1W3hdPWZ1bmN0aW9uKCl7UCYmVShILFApO2VhPW4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKEgpP0M6UWF8fG4ubm9vcDtyZXR1cm4gZWEuYXBwbHkodGhpcyxhcmd1bWVudHMpfX1mdW5jdGlvbiBiYSh1LHgsQyxILFApe2lmKCFQKXRocm93IEVycm9yKCJObyB3YXJuaW5nIG1lc3NhZ2UgcHJvdmlkZWQiKTtyZXR1cm4gWCh1LAp4LEMsSCxQKX1mdW5jdGlvbiBqYSh1LHgsQyxIKXtyZXR1cm4gWCh1LHgsQyxIKX1mdW5jdGlvbiBsYih1KXtyZXR1cm4gdS5yZXBsYWNlKC8tKFthLXpdKS9nLGZ1bmN0aW9uKHgsQyl7cmV0dXJuIEMudG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIFlhKHUpe3JldHVybiBwYi50ZXN0KHUpJiZTYi50ZXN0KHVbMF0udG9VcHBlckNhc2UoKSt1LnNsaWNlKDEpKX1uLm1pZ3JhdGVWZXJzaW9uPSIzLjQuMSI7dmFyIFphPU9iamVjdC5jcmVhdGUobnVsbCk7bi5taWdyYXRlRGlzYWJsZVBhdGNoZXM9ZnVuY3Rpb24oKXt2YXIgdTtmb3IodT0wO3U8YXJndW1lbnRzLmxlbmd0aDt1KyspWmFbYXJndW1lbnRzW3VdXT0hMH07bi5taWdyYXRlRW5hYmxlUGF0Y2hlcz1mdW5jdGlvbigpe3ZhciB1O2Zvcih1PTA7dTxhcmd1bWVudHMubGVuZ3RoO3UrKylkZWxldGUgWmFbYXJndW1lbnRzW3VdXX07bi5taWdyYXRlSXNQYXRjaEVuYWJsZWQ9ZnVuY3Rpb24odSl7cmV0dXJuIVphW3VdfTtkYS5jb25zb2xlJiYKZGEuY29uc29sZS5sb2cmJihuJiZ3YSgiMy4wLjAiKSYmIXdhKCI1LjAuMCIpfHxkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBqUXVlcnkgMy54LTQueCBSRVFVSVJFRCIpLG4ubWlncmF0ZVdhcm5pbmdzJiZkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBNaWdyYXRlIHBsdWdpbiBsb2FkZWQgbXVsdGlwbGUgdGltZXMiKSxkYS5jb25zb2xlLmxvZygiSlFNSUdSQVRFOiBNaWdyYXRlIGlzIGluc3RhbGxlZCIrKG4ubWlncmF0ZU11dGU\/IiI6IiB3aXRoIGxvZ2dpbmcgYWN0aXZlIikrIiwgdmVyc2lvbiAiK24ubWlncmF0ZVZlcnNpb24pKTt2YXIgbWI9e307bi5taWdyYXRlRGVkdXBsaWNhdGVXYXJuaW5ncz0hMDtuLm1pZ3JhdGVXYXJuaW5ncz1bXTt2b2lkIDA9PT1uLm1pZ3JhdGVUcmFjZSYmKG4ubWlncmF0ZVRyYWNlPSEwKTtuLm1pZ3JhdGVSZXNldD1mdW5jdGlvbigpe21iPXt9O24ubWlncmF0ZVdhcm5pbmdzLmxlbmd0aD0wfTsiQmFja0NvbXBhdCI9PT1kYS5kb2N1bWVudC5jb21wYXRNb2RlJiYKVSgicXVpcmtzIiwialF1ZXJ5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggUXVpcmtzIE1vZGUiKTt2YXIgT2EsTmI9e30sQmE9bi5mbi5pbml0LEphPW4uZmluZCxPYj0vXFsoXHMqWy1cd10rXHMqKShbfnxeJCpdPz0pXHMqKFstXHcjXSo\/I1stXHcjXSopXHMqXF0vLFBiPS9cWyhccypbLVx3XStccyopKFt+fF4kKl0\/PSlccyooWy1cdyNdKj8jWy1cdyNdKilccypcXS9nLCRhPS9eW1xzXHVGRUZGXHhBMF0rfChbXlxzXHVGRUZGXHhBMF0pW1xzXHVGRUZGXHhBMF0rJC9nO2phKG4uZm4sImluaXQiLGZ1bmN0aW9uKHUpe3ZhciB4PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7bi5taWdyYXRlSXNQYXRjaEVuYWJsZWQoInNlbGVjdG9yLWVtcHR5LWlkIikmJiJzdHJpbmciPT09dHlwZW9mIHUmJiIjIj09PXUmJihVKCJzZWxlY3Rvci1lbXB0eS1pZCIsImpRdWVyeSggJyMnICkgaXMgbm90IGEgdmFsaWQgc2VsZWN0b3IiKSx4WzBdPVtdKTtyZXR1cm4gQmEuYXBwbHkodGhpcywKeCl9LCJzZWxlY3Rvci1lbXB0eS1pZCIpO24uZm4uaW5pdC5wcm90b3R5cGU9bi5mbjtqYShuLCJmaW5kIixmdW5jdGlvbih1KXt2YXIgeD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO2lmKCJzdHJpbmciPT09dHlwZW9mIHUmJk9iLnRlc3QodSkpdHJ5e2RhLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IodSl9Y2F0Y2goQyl7dT11LnJlcGxhY2UoUGIsZnVuY3Rpb24oSCxQLGVhLFFhKXtyZXR1cm4iWyIrUCtlYSsnIicrUWErJyJdJ30pO3RyeXtkYS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHUpLFUoInNlbGVjdG9yLWhhc2giLCJBdHRyaWJ1dGUgc2VsZWN0b3Igd2l0aCAnIycgbXVzdCBiZSBxdW90ZWQ6ICIreFswXSkseFswXT11fWNhdGNoKEgpe1UoInNlbGVjdG9yLWhhc2giLCJBdHRyaWJ1dGUgc2VsZWN0b3Igd2l0aCAnIycgd2FzIG5vdCBmaXhlZDogIit4WzBdKX19cmV0dXJuIEphLmFwcGx5KHRoaXMseCl9LCJzZWxlY3Rvci1oYXNoIik7Zm9yKE9hIGluIEphKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChKYSwKT2EpJiYobi5maW5kW09hXT1KYVtPYV0pO2JhKG4uZm4sInNpemUiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSwic2l6ZSIsImpRdWVyeS5mbi5zaXplKCkgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZDsgdXNlIHRoZSAubGVuZ3RoIHByb3BlcnR5Iik7YmEobiwicGFyc2VKU09OIixmdW5jdGlvbigpe3JldHVybiBKU09OLnBhcnNlLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sInBhcnNlSlNPTiIsImpRdWVyeS5wYXJzZUpTT04gaXMgZGVwcmVjYXRlZDsgdXNlIEpTT04ucGFyc2UiKTtiYShuLCJob2xkUmVhZHkiLG4uaG9sZFJlYWR5LCJob2xkUmVhZHkiLCJqUXVlcnkuaG9sZFJlYWR5IGlzIGRlcHJlY2F0ZWQiKTtiYShuLCJ1bmlxdWUiLG4udW5pcXVlU29ydCwidW5pcXVlIiwialF1ZXJ5LnVuaXF1ZSBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LnVuaXF1ZVNvcnQiKTtlYihuLmV4cHIsImZpbHRlcnMiLG4uZXhwci5wc2V1ZG9zLCJleHByLXByZS1wc2V1ZG9zIiwialF1ZXJ5LmV4cHIuZmlsdGVycyBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LmV4cHIucHNldWRvcyIpOwplYihuLmV4cHIsIjoiLG4uZXhwci5wc2V1ZG9zLCJleHByLXByZS1wc2V1ZG9zIiwialF1ZXJ5LmV4cHJbJzonXSBpcyBkZXByZWNhdGVkOyB1c2UgalF1ZXJ5LmV4cHIucHNldWRvcyIpO3dhKCIzLjEuMSIpJiZiYShuLCJ0cmltIixmdW5jdGlvbih1KXtyZXR1cm4gbnVsbD09dT8iIjoodSsiIikucmVwbGFjZSgkYSwiJDEiKX0sInRyaW0iLCJqUXVlcnkudHJpbSBpcyBkZXByZWNhdGVkOyB1c2UgU3RyaW5nLnByb3RvdHlwZS50cmltIik7d2EoIjMuMi4wIikmJihiYShuLCJub2RlTmFtZSIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdS5ub2RlTmFtZSYmdS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09eC50b0xvd2VyQ2FzZSgpfSwibm9kZU5hbWUiLCJqUXVlcnkubm9kZU5hbWUgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzQXJyYXkiLEFycmF5LmlzQXJyYXksImlzQXJyYXkiLCJqUXVlcnkuaXNBcnJheSBpcyBkZXByZWNhdGVkOyB1c2UgQXJyYXkuaXNBcnJheSIpKTt3YSgiMy4zLjAiKSYmCihiYShuLCJpc051bWVyaWMiLGZ1bmN0aW9uKHUpe3ZhciB4PXR5cGVvZiB1O3JldHVybigibnVtYmVyIj09PXh8fCJzdHJpbmciPT09eCkmJiFpc05hTih1LXBhcnNlRmxvYXQodSkpfSwiaXNOdW1lcmljIiwialF1ZXJ5LmlzTnVtZXJpYygpIGlzIGRlcHJlY2F0ZWQiKSxuLmVhY2goIkJvb2xlYW4gTnVtYmVyIFN0cmluZyBGdW5jdGlvbiBBcnJheSBEYXRlIFJlZ0V4cCBPYmplY3QgRXJyb3IgU3ltYm9sIi5zcGxpdCgiICIpLGZ1bmN0aW9uKHUseCl7TmJbIltvYmplY3QgIit4KyJdIl09eC50b0xvd2VyQ2FzZSgpfSksYmEobiwidHlwZSIsZnVuY3Rpb24odSl7cmV0dXJuIG51bGw9PXU\/dSsiIjoib2JqZWN0Ij09PXR5cGVvZiB1fHwiZnVuY3Rpb24iPT09dHlwZW9mIHU\/TmJbT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHUpXXx8Im9iamVjdCI6dHlwZW9mIHV9LCJ0eXBlIiwialF1ZXJ5LnR5cGUgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzRnVuY3Rpb24iLGZ1bmN0aW9uKHUpe3JldHVybiJmdW5jdGlvbiI9PT0KdHlwZW9mIHV9LCJpc0Z1bmN0aW9uIiwialF1ZXJ5LmlzRnVuY3Rpb24oKSBpcyBkZXByZWNhdGVkIiksYmEobiwiaXNXaW5kb3ciLGZ1bmN0aW9uKHUpe3JldHVybiBudWxsIT11JiZ1PT09dS53aW5kb3d9LCJpc1dpbmRvdyIsImpRdWVyeS5pc1dpbmRvdygpIGlzIGRlcHJlY2F0ZWQiKSk7aWYobi5hamF4KXt2YXIgc2E9bi5hamF4LG5iPS8oPSlcPyg\/PSZ8JCl8XD9cPy87amEobiwiYWpheCIsZnVuY3Rpb24oKXt2YXIgdT1zYS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dS5wcm9taXNlJiYoYmEodSwic3VjY2VzcyIsdS5kb25lLCJqcVhIUi1tZXRob2RzIiwialFYSFIuc3VjY2VzcyBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIiksYmEodSwiZXJyb3IiLHUuZmFpbCwianFYSFItbWV0aG9kcyIsImpRWEhSLmVycm9yIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKSxiYSh1LCJjb21wbGV0ZSIsdS5hbHdheXMsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5jb21wbGV0ZSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIikpOwpyZXR1cm4gdX0sImpxWEhSLW1ldGhvZHMiKTt3YSgiNC4wLjAiKXx8bi5hamF4UHJlZmlsdGVyKCIranNvbiIsZnVuY3Rpb24odSl7ITEhPT11Lmpzb25wJiYobmIudGVzdCh1LnVybCl8fCJzdHJpbmciPT09dHlwZW9mIHUuZGF0YSYmMD09PSh1LmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJm5iLnRlc3QodS5kYXRhKSkmJlUoImpzb25wLXByb21vdGlvbiIsIkpTT04tdG8tSlNPTlAgYXV0by1wcm9tb3Rpb24gaXMgZGVwcmVjYXRlZCIpfSl9dmFyIFJiPW4uZm4ucmVtb3ZlQXR0cixhYj1uLmZuLnRvZ2dsZUNsYXNzLGJiPS9cUysvZztqYShuLmZuLCJyZW1vdmVBdHRyIixmdW5jdGlvbih1KXt2YXIgeD10aGlzLEM9ITE7bi5lYWNoKHUubWF0Y2goYmIpLGZ1bmN0aW9uKEgsUCl7bi5leHByLm1hdGNoLmJvb2wudGVzdChQKSYmeC5lYWNoKGZ1bmN0aW9uKCl7aWYoITEhPT1uKHRoaXMpLnByb3AoUCkpcmV0dXJuIEM9CiEwLCExfSk7QyYmKFUoInJlbW92ZUF0dHItYm9vbCIsImpRdWVyeS5mbi5yZW1vdmVBdHRyIG5vIGxvbmdlciBzZXRzIGJvb2xlYW4gcHJvcGVydGllczogIitQKSx4LnByb3AoUCwhMSkpfSk7cmV0dXJuIFJiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sInJlbW92ZUF0dHItYm9vbCIpO2phKG4uZm4sInRvZ2dsZUNsYXNzIixmdW5jdGlvbih1KXtpZih2b2lkIDAhPT11JiYiYm9vbGVhbiIhPT10eXBlb2YgdSlyZXR1cm4gYWIuYXBwbHkodGhpcyxhcmd1bWVudHMpO1UoInRvZ2dsZUNsYXNzLWJvb2wiLCJqUXVlcnkuZm4udG9nZ2xlQ2xhc3MoIGJvb2xlYW4gKSBpcyBkZXByZWNhdGVkIik7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB4PXRoaXMuZ2V0QXR0cmlidXRlJiZ0aGlzLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiI7eCYmbi5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iLHgpO3RoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHh8fAohMT09PXU\/IiI6bi5kYXRhKHRoaXMsIl9fY2xhc3NOYW1lX18iKXx8IiIpfSl9LCJ0b2dnbGVDbGFzcy1ib29sIik7dmFyIGZiPSExLHBiPS9eW2Etel0vLFNiPS9eKD86Qm9yZGVyKD86VG9wfFJpZ2h0fEJvdHRvbXxMZWZ0KT8oPzpXaWR0aHwpfCg\/Ok1hcmdpbnxQYWRkaW5nKT8oPzpUb3B8UmlnaHR8Qm90dG9tfExlZnQpP3woPzpNaW58TWF4KT8oPzpXaWR0aHxIZWlnaHQpKSQvO24uc3dhcCYmbi5lYWNoKFsiaGVpZ2h0Iiwid2lkdGgiLCJyZWxpYWJsZU1hcmdpblJpZ2h0Il0sZnVuY3Rpb24odSx4KXt2YXIgQz1uLmNzc0hvb2tzW3hdJiZuLmNzc0hvb2tzW3hdLmdldDtDJiYobi5jc3NIb29rc1t4XS5nZXQ9ZnVuY3Rpb24oKXtmYj0hMDt2YXIgSD1DLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtmYj0hMTtyZXR1cm4gSH0pfSk7amEobiwic3dhcCIsZnVuY3Rpb24odSx4LEMsSCl7dmFyIFAsZWE9e307ZmJ8fFUoInN3YXAiLCJqUXVlcnkuc3dhcCgpIGlzIHVuZG9jdW1lbnRlZCBhbmQgZGVwcmVjYXRlZCIpOwpmb3IoUCBpbiB4KWVhW1BdPXUuc3R5bGVbUF0sdS5zdHlsZVtQXT14W1BdO0M9Qy5hcHBseSh1LEh8fFtdKTtmb3IoUCBpbiB4KXUuc3R5bGVbUF09ZWFbUF07cmV0dXJuIEN9LCJzd2FwIik7d2EoIjMuNC4wIikmJiJ1bmRlZmluZWQiIT09dHlwZW9mIFByb3h5JiYobi5jc3NQcm9wcz1uZXcgUHJveHkobi5jc3NQcm9wc3x8e30se3NldDpmdW5jdGlvbigpe1UoImNzc1Byb3BzIiwialF1ZXJ5LmNzc1Byb3BzIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pKTtpZih3YSgiNC4wLjAiKSl7dmFyIHFiPXthbmltYXRpb25JdGVyYXRpb25Db3VudDohMCxjb2x1bW5Db3VudDohMCxmaWxsT3BhY2l0eTohMCxmbGV4R3JvdzohMCxmbGV4U2hyaW5rOiEwLGZvbnRXZWlnaHQ6ITAsZ3JpZEFyZWE6ITAsZ3JpZENvbHVtbjohMCxncmlkQ29sdW1uRW5kOiEwLGdyaWRDb2x1bW5TdGFydDohMCxncmlkUm93OiEwLGdyaWRSb3dFbmQ6ITAsCmdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9O24uY3NzTnVtYmVyPSJ1bmRlZmluZWQiIT09dHlwZW9mIFByb3h5P25ldyBQcm94eShxYix7Z2V0OmZ1bmN0aW9uKCl7VSgiY3NzLW51bWJlciIsImpRdWVyeS5jc3NOdW1iZXIgaXMgZGVwcmVjYXRlZCIpO3JldHVybiBSZWZsZWN0LmdldC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHNldDpmdW5jdGlvbigpe1UoImNzcy1udW1iZXIiLCJqUXVlcnkuY3NzTnVtYmVyIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5zZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0pOnFifWVsc2UgcWI9bi5jc3NOdW1iZXI7dmFyICRiPW4uZm4uY3NzO2phKG4uZm4sImNzcyIsZnVuY3Rpb24odSx4KXt2YXIgQz10aGlzO2lmKHUmJiJvYmplY3QiPT09dHlwZW9mIHUmJiFBcnJheS5pc0FycmF5KHUpKXJldHVybiBuLmVhY2godSxmdW5jdGlvbihQLAplYSl7bi5mbi5jc3MuY2FsbChDLFAsZWEpfSksdGhpcztpZigibnVtYmVyIj09PXR5cGVvZiB4KXt2YXIgSD1sYih1KTtZYShIKXx8cWJbSF18fFUoImNzcy1udW1iZXIiLCdOdW1iZXItdHlwZWQgdmFsdWVzIGFyZSBkZXByZWNhdGVkIGZvciBqUXVlcnkuZm4uY3NzKCAiJyt1KyciLCB2YWx1ZSApJyl9cmV0dXJuICRiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImNzcy1udW1iZXIiKTt2YXIgZ2I9bi5kYXRhO2phKG4sImRhdGEiLGZ1bmN0aW9uKHUseCxDKXt2YXIgSDtpZih4JiYib2JqZWN0Ij09PXR5cGVvZiB4JiYyPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIFA9bi5oYXNEYXRhKHUpJiZnYi5jYWxsKHRoaXMsdSksZWE9e307Zm9yKEggaW4geClIIT09bGIoSCk\/KFUoImRhdGEtY2FtZWxDYXNlIiwialF1ZXJ5LmRhdGEoKSBhbHdheXMgc2V0cy9nZXRzIGNhbWVsQ2FzZWQgbmFtZXM6ICIrSCksUFtIXT14W0hdKTplYVtIXT14W0hdO2diLmNhbGwodGhpcyx1LGVhKTtyZXR1cm4geH1yZXR1cm4geCYmCiJzdHJpbmciPT09dHlwZW9mIHgmJnghPT1sYih4KSYmKFA9bi5oYXNEYXRhKHUpJiZnYi5jYWxsKHRoaXMsdSkpJiZ4IGluIFA\/KFUoImRhdGEtY2FtZWxDYXNlIiwialF1ZXJ5LmRhdGEoKSBhbHdheXMgc2V0cy9nZXRzIGNhbWVsQ2FzZWQgbmFtZXM6ICIreCksMjxhcmd1bWVudHMubGVuZ3RoJiYoUFt4XT1DKSxQW3hdKTpnYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJkYXRhLWNhbWVsQ2FzZSIpO2lmKG4uZngpe3ZhciBjYj1uLlR3ZWVuLnByb3RvdHlwZS5ydW4sVGI9ZnVuY3Rpb24odSl7cmV0dXJuIHV9O2phKG4uVHdlZW4ucHJvdG90eXBlLCJydW4iLGZ1bmN0aW9uKCl7MTxuLmVhc2luZ1t0aGlzLmVhc2luZ10ubGVuZ3RoJiYoVSgiZWFzaW5nLW9uZS1hcmciLCInalF1ZXJ5LmVhc2luZy4iK3RoaXMuZWFzaW5nLnRvU3RyaW5nKCkrIicgc2hvdWxkIHVzZSBvbmx5IG9uZSBhcmd1bWVudCIpLG4uZWFzaW5nW3RoaXMuZWFzaW5nXT1UYik7Y2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwKImVhc2luZy1vbmUtYXJnIik7dmFyIEthPW4uZnguaW50ZXJ2YWw7ZGEucmVxdWVzdEFuaW1hdGlvbkZyYW1lJiZPYmplY3QuZGVmaW5lUHJvcGVydHkobi5meCwiaW50ZXJ2YWwiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtkYS5kb2N1bWVudC5oaWRkZW58fFUoImZ4LWludGVydmFsIiwialF1ZXJ5LmZ4LmludGVydmFsIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gbi5taWdyYXRlSXNQYXRjaEVuYWJsZWQoImZ4LWludGVydmFsIik\/dm9pZCAwPT09S2E\/MTM6S2E6S2F9LHNldDpmdW5jdGlvbih1KXtVKCJmeC1pbnRlcnZhbCIsImpRdWVyeS5meC5pbnRlcnZhbCBpcyBkZXByZWNhdGVkIik7S2E9dX19KX12YXIgVmI9bi5mbi5sb2FkLEFiPW4uZXZlbnQuYWRkLFdiPW4uZXZlbnQuZml4O24uZXZlbnQucHJvcHM9W107bi5ldmVudC5maXhIb29rcz17fTtlYihuLmV2ZW50LnByb3BzLCJjb25jYXQiLG4uZXZlbnQucHJvcHMuY29uY2F0LCJldmVudC1vbGQtcGF0Y2giLAoialF1ZXJ5LmV2ZW50LnByb3BzLmNvbmNhdCgpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQiKTtqYShuLmV2ZW50LCJmaXgiLGZ1bmN0aW9uKHUpe3ZhciB4PXUudHlwZSxDPXRoaXMuZml4SG9va3NbeF0sSD1uLmV2ZW50LnByb3BzO2lmKEgubGVuZ3RoKWZvcihVKCJldmVudC1vbGQtcGF0Y2giLCJqUXVlcnkuZXZlbnQucHJvcHMgYXJlIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ6ICIrSC5qb2luKCkpO0gubGVuZ3RoOyluLmV2ZW50LmFkZFByb3AoSC5wb3AoKSk7aWYoQyYmIUMuX21pZ3JhdGVkXyYmKEMuX21pZ3JhdGVkXz0hMCxVKCJldmVudC1vbGQtcGF0Y2giLCJqUXVlcnkuZXZlbnQuZml4SG9va3MgYXJlIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ6ICIreCksKEg9Qy5wcm9wcykmJkgubGVuZ3RoKSlmb3IoO0gubGVuZ3RoOyluLmV2ZW50LmFkZFByb3AoSC5wb3AoKSk7eD1XYi5jYWxsKHRoaXMsdSk7cmV0dXJuIEMmJkMuZmlsdGVyP0MuZmlsdGVyKHgsdSk6eH0sImV2ZW50LW9sZC1wYXRjaCIpOwpqYShuLmV2ZW50LCJhZGQiLGZ1bmN0aW9uKHUseCl7dT09PWRhJiYibG9hZCI9PT14JiYiY29tcGxldGUiPT09ZGEuZG9jdW1lbnQucmVhZHlTdGF0ZSYmVSgibG9hZC1hZnRlci1ldmVudCIsImpRdWVyeSh3aW5kb3cpLm9uKCdsb2FkJy4uLikgY2FsbGVkIGFmdGVyIGxvYWQgZXZlbnQgb2NjdXJyZWQiKTtyZXR1cm4gQWIuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwibG9hZC1hZnRlci1ldmVudCIpO24uZWFjaChbImxvYWQiLCJ1bmxvYWQiLCJlcnJvciJdLGZ1bmN0aW9uKHUseCl7amEobi5mbix4LGZ1bmN0aW9uKCl7dmFyIEM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApO2lmKCJsb2FkIj09PXgmJiJzdHJpbmciPT09dHlwZW9mIENbMF0pcmV0dXJuIFZiLmFwcGx5KHRoaXMsQyk7VSgic2hvcnRoYW5kLXJlbW92ZWQtdjMiLCJqUXVlcnkuZm4uIit4KyIoKSBpcyBkZXByZWNhdGVkIik7Qy5zcGxpY2UoMCwwLHgpO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMub24uYXBwbHkodGhpcywKQyk7dGhpcy50cmlnZ2VySGFuZGxlci5hcHBseSh0aGlzLEMpO3JldHVybiB0aGlzfSwic2hvcnRoYW5kLXJlbW92ZWQtdjMiKX0pO24uZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSxmdW5jdGlvbih1LHgpe2JhKG4uZm4seCxmdW5jdGlvbihDLEgpe3JldHVybiAwPGFyZ3VtZW50cy5sZW5ndGg\/dGhpcy5vbih4LG51bGwsQyxIKTp0aGlzLnRyaWdnZXIoeCl9LCJzaG9ydGhhbmQtZGVwcmVjYXRlZC12MyIsImpRdWVyeS5mbi4iK3grIigpIGV2ZW50IHNob3J0aGFuZCBpcyBkZXByZWNhdGVkIil9KTtuKGZ1bmN0aW9uKCl7bihkYS5kb2N1bWVudCkudHJpZ2dlckhhbmRsZXIoInJlYWR5Iil9KTsKbi5ldmVudC5zcGVjaWFsLnJlYWR5PXtzZXR1cDpmdW5jdGlvbigpe3RoaXM9PT1kYS5kb2N1bWVudCYmVSgicmVhZHktZXZlbnQiLCIncmVhZHknIGV2ZW50IGlzIGRlcHJlY2F0ZWQiKX19O2JhKG4uZm4sImJpbmQiLGZ1bmN0aW9uKHUseCxDKXtyZXR1cm4gdGhpcy5vbih1LG51bGwseCxDKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmJpbmQoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwidW5iaW5kIixmdW5jdGlvbih1LHgpe3JldHVybiB0aGlzLm9mZih1LG51bGwseCl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi51bmJpbmQoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwiZGVsZWdhdGUiLGZ1bmN0aW9uKHUseCxDLEgpe3JldHVybiB0aGlzLm9uKHgsdSxDLEgpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uZGVsZWdhdGUoKSBpcyBkZXByZWNhdGVkIik7YmEobi5mbiwidW5kZWxlZ2F0ZSIsZnVuY3Rpb24odSx4LEMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD8KdGhpcy5vZmYodSwiKioiKTp0aGlzLm9mZih4LHV8fCIqKiIsQyl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi51bmRlbGVnYXRlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sImhvdmVyIixmdW5jdGlvbih1LHgpe3JldHVybiB0aGlzLm9uKCJtb3VzZWVudGVyIix1KS5vbigibW91c2VsZWF2ZSIseHx8dSl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi5ob3ZlcigpIGlzIGRlcHJlY2F0ZWQiKTt2YXIgcmI9LzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW2Etel1bXlwvXDA+XHgyMFx0XHJcblxmXSopW14+XSopXC8+L2dpLEJiPWZ1bmN0aW9uKHUpe3ZhciB4PWRhLmRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIik7eC5ib2R5LmlubmVySFRNTD11O3JldHVybiB4LmJvZHkmJnguYm9keS5pbm5lckhUTUx9O24uVU5TQUZFX3Jlc3RvcmVMZWdhY3lIdG1sUHJlZmlsdGVyPWZ1bmN0aW9uKCl7bi5taWdyYXRlRW5hYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpfTsKamEobiwiaHRtbFByZWZpbHRlciIsZnVuY3Rpb24odSl7dmFyIHg9dS5yZXBsYWNlKHJiLCI8JDE+PC8kMj4iKTt4IT09dSYmQmIodSkhPT1CYih4KSYmVSgic2VsZi1jbG9zZWQtdGFncyIsIkhUTUwgdGFncyBtdXN0IGJlIHByb3Blcmx5IG5lc3RlZCBhbmQgY2xvc2VkOiAiK3UpO3JldHVybiB1LnJlcGxhY2UocmIsIjwkMT48LyQyPiIpfSwic2VsZi1jbG9zZWQtdGFncyIpO24ubWlncmF0ZURpc2FibGVQYXRjaGVzKCJzZWxmLWNsb3NlZC10YWdzIik7dmFyIHphPW4uZm4ub2Zmc2V0O2phKG4uZm4sIm9mZnNldCIsZnVuY3Rpb24oKXt2YXIgdT10aGlzWzBdO3JldHVybiF1fHx1Lm5vZGVUeXBlJiZ1LmdldEJvdW5kaW5nQ2xpZW50UmVjdD96YS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6KFUoIm9mZnNldC12YWxpZC1lbGVtIiwialF1ZXJ5LmZuLm9mZnNldCgpIHJlcXVpcmVzIGEgdmFsaWQgRE9NIGVsZW1lbnQiKSxhcmd1bWVudHMubGVuZ3RoP3RoaXM6dm9pZCAwKX0sIm9mZnNldC12YWxpZC1lbGVtIik7CmlmKG4uYWpheCl7dmFyIENiPW4ucGFyYW07amEobiwicGFyYW0iLGZ1bmN0aW9uKHUseCl7dmFyIEM9bi5hamF4U2V0dGluZ3MmJm4uYWpheFNldHRpbmdzLnRyYWRpdGlvbmFsO3ZvaWQgMD09PXgmJkMmJihVKCJwYXJhbS1hamF4LXRyYWRpdGlvbmFsIiwialF1ZXJ5LnBhcmFtKCkgbm8gbG9uZ2VyIHVzZXMgalF1ZXJ5LmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbCIpLHg9Qyk7cmV0dXJuIENiLmNhbGwodGhpcyx1LHgpfSwicGFyYW0tYWpheC10cmFkaXRpb25hbCIpfWJhKG4uZm4sImFuZFNlbGYiLG4uZm4uYWRkQmFjaywiYW5kU2VsZiIsImpRdWVyeS5mbi5hbmRTZWxmKCkgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCwgdXNlIGpRdWVyeS5mbi5hZGRCYWNrKCkiKTtpZihuLkRlZmVycmVkKXt2YXIgRGI9bi5EZWZlcnJlZCx0Yj1bWyJyZXNvbHZlIiwiZG9uZSIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlc29sdmVkIl0sClsicmVqZWN0IiwiZmFpbCIsbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5Iiksbi5DYWxsYmFja3MoIm9uY2UgbWVtb3J5IiksInJlamVjdGVkIl0sWyJub3RpZnkiLCJwcm9ncmVzcyIsbi5DYWxsYmFja3MoIm1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKV1dO2phKG4sIkRlZmVycmVkIixmdW5jdGlvbih1KXtmdW5jdGlvbiB4KCl7dmFyIFA9YXJndW1lbnRzO3JldHVybiBuLkRlZmVycmVkKGZ1bmN0aW9uKGVhKXtuLmVhY2godGIsZnVuY3Rpb24oUWEsRWIpe3ZhciBoYj0iZnVuY3Rpb24iPT09dHlwZW9mIFBbUWFdJiZQW1FhXTtDW0ViWzFdXShmdW5jdGlvbigpe3ZhciBvYT1oYiYmaGIuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKG9hJiYiZnVuY3Rpb24iPT09dHlwZW9mIG9hLnByb21pc2Upb2EucHJvbWlzZSgpLmRvbmUoZWEucmVzb2x2ZSkuZmFpbChlYS5yZWplY3QpLnByb2dyZXNzKGVhLm5vdGlmeSk7ZWxzZSBlYVtFYlswXSsiV2l0aCJdKHRoaXM9PT1IP2VhLnByb21pc2UoKToKdGhpcyxoYj9bb2FdOmFyZ3VtZW50cyl9KX0pO1A9bnVsbH0pLnByb21pc2UoKX12YXIgQz1EYigpLEg9Qy5wcm9taXNlKCk7YmEoQywicGlwZSIseCwiZGVmZXJyZWQtcGlwZSIsImRlZmVycmVkLnBpcGUoKSBpcyBkZXByZWNhdGVkIik7YmEoSCwicGlwZSIseCwiZGVmZXJyZWQtcGlwZSIsImRlZmVycmVkLnBpcGUoKSBpcyBkZXByZWNhdGVkIik7dSYmdS5jYWxsKEMsQyk7cmV0dXJuIEN9LCJkZWZlcnJlZC1waXBlIik7bi5EZWZlcnJlZC5leGNlcHRpb25Ib29rPURiLmV4Y2VwdGlvbkhvb2t9cmV0dXJuIG59KTsKLyoqIC9tL2pzL2pxdWVyeS5jb29raWUuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5Y29va2llanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOToyOCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5Y29va2llanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjowOSI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb29raWVqc19jX29uPSIyMDIzLTA5LTA2IDE0OjMwOjA2IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihoLGwscil7ZnVuY3Rpb24gdChiKXtyZXR1cm4gYn1mdW5jdGlvbiB1KGIpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGIucmVwbGFjZShtLCIgIikpfWNhdGNoKGMpe3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHVuZXNjYXBlKGIpLnJlcGxhY2UobSwiICIpKX1jYXRjaChhKXtyZXR1cm4gY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKGEubWVzc2FnZSksYn19fWZ1bmN0aW9uIG4oYixjLGEsZSxrLGYpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZiYmc2V0VGltZW91dChmdW5jdGlvbigpe24oYixjLGEsZSxrLGYtMSl9LDFFMyk6d2luZG93LkNvb2tpZUxvZ2dlci5sb2coYixjLGEsZSxrKX12YXIgbT0vXCsvZyxnPWguY29va2llPWZ1bmN0aW9uKGIsYyxhKXtpZihjIT09cilyZXR1cm4gQ29va2llcy5pc0Nvb2tpZUFsbG93ZWQoYixmdW5jdGlvbihkKXtkZWJ1ZygiQ29va2llOiAiLApiLGQpO2E9aC5leHRlbmQoe30sZy5kZWZhdWx0cyxhKTtpZighZClyZXR1cm4gQ29va2llcy5yZW1vdmUoYixhLnBhdGgsYS5kb21haW4pLCExO251bGw9PT1jJiYoYS5leHBpcmVzPS0xKTsibnVtYmVyIj09PXR5cGVvZiBhLmV4cGlyZXNJbk1pbnV0ZXMmJihhLmV4cGlyZXM9YS5leHBpcmVzSW5NaW51dGVzLzE0NDApO2lmKCJudW1iZXIiPT09dHlwZW9mIGEuZXhwaXJlcyl7ZD1hLmV4cGlyZXM7dmFyIHA9YS5leHBpcmVzPW5ldyBEYXRlO3Auc2V0VGltZSgrcCs4NjRFNSpkKX1kPW5ldyBEYXRlO2Quc2V0RnVsbFllYXIoZC5nZXRGdWxsWWVhcigpKzEpO2EuZXhwaXJlcz5kJiYoYS5leHBpcmVzPWQpO2M9Zy5qc29uP0pTT04uc3RyaW5naWZ5KGMpOlN0cmluZyhjKTtuKGIsYyxhLmV4cGlyZXMsYS5wYXRoLGEuZG9tYWluKTtyZXR1cm4gbC5jb29raWU9W2VuY29kZVVSSUNvbXBvbmVudChiKSwiPSIsZy5yYXc\/YzplbmNvZGVVUklDb21wb25lbnQoYyksYS5leHBpcmVzPyI7IGV4cGlyZXM9IisKYS5leHBpcmVzLnRvVVRDU3RyaW5nKCk6IiIsYS5wYXRoPyI7IHBhdGg9IithLnBhdGg6IiIsYS5kb21haW4\/IjsgZG9tYWluPSIrYS5kb21haW46IiIsYS5zZWN1cmU\/Ijsgc2VjdXJlIjoiIl0uam9pbigiIil9KTtmb3IodmFyIGU9Zy5yYXc\/dDp1LGs9bC5jb29raWUuc3BsaXQoIjsgIiksZj0wLHY9ay5sZW5ndGg7Zjx2O2YrKyl7dmFyIHE9a1tmXS5zcGxpdCgiPSIpO2lmKGUocS5zaGlmdCgpKT09PWIpcmV0dXJuIGU9ZShxLmpvaW4oIj0iKSksZy5qc29uP0pTT04ucGFyc2UoZSk6ZX1yZXR1cm4gbnVsbH07Zy5kZWZhdWx0cz17fTtoLnJlbW92ZUNvb2tpZT1mdW5jdGlvbihiLGMpe3JldHVybiBudWxsIT09aC5jb29raWUoYik\/KGguY29va2llKGIsbnVsbCxjKSwhMCk6ITF9fSkoalF1ZXJ5LGRvY3VtZW50KTsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9jb29raWVzLmNvbnNlbnQuanMgKiovCnZhciBfX19kMmNfY29va2llc2NvbnNlbnRqc19jX29uPSIyMDI2LTA1LTI2IDE0OjMwOjAzIjsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKCl7d2luZG93LkQyQ0ZiQ29uc2VudD13aW5kb3cuRDJDRmJDb25zZW50fHx7X3N0YXRlOm51bGwsX3F1ZXVlOltdLF9mbHVzaDpmdW5jdGlvbigpe3ZhciBhPXRoaXMuX3F1ZXVlO3RoaXMuX3F1ZXVlPVtdO2EuZm9yRWFjaChmdW5jdGlvbihiKXt0cnl7YigpfWNhdGNoKGMpe319KX0sZ3JhbnQ6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT0iZ3JhbnQiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSYmKGZicSgiY29uc2VudCIsImdyYW50IiksdGhpcy5fZmx1c2goKSl9LHJldm9rZTpmdW5jdGlvbigpe3RoaXMuX3N0YXRlPSJyZXZva2UiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSYmZmJxKCJjb25zZW50IiwicmV2b2tlIil9LG9uR3JhbnRlZDpmdW5jdGlvbihhKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpaWYoImdyYW50Ij09PXRoaXMuX3N0YXRlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBmYnEpdHJ5e2EoKX1jYXRjaChiKXt9ZWxzZSB0aGlzLl9xdWV1ZS5wdXNoKGEpfSwKc3luY1RvRmJxOmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGZicSYmKGZicSgiY29uc2VudCIsdGhpcy5fc3RhdGUpLCJncmFudCI9PT10aGlzLl9zdGF0ZSYmdGhpcy5fZmx1c2goKSl9fTt3aW5kb3cuQ29va2llQ29uc2VudD17Q0FURUdPUllJRF9FU1NFTlRJQUw6MixfY21wSW50ZXJ2YWxJRDpudWxsLF9jdXJyZW50VmVuZG9yOm51bGwsX2Nvb2tpZXM6bnVsbCxfY2F0ZWdvcmllczpudWxsLF9yZWdpc3RlcmVkUmVxdWVzdHM6W10saW5pdDpmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQuX2xvYWRKU09OKG51bGwpO0Nvb2tpZUNvbnNlbnQuX2NtcEludGVydmFsSUQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtDb29raWVDb25zZW50Lmxpc3RlbkZvck9uZVRydXN0KCl9LDFFMyk7bGV0IGE9Q29va2llQ29uc2VudC5nZXRDb25zZW50KCk7bnVsbD09YXx8YS5pbmRleE9mKCJDMDAwMiIpOyJncmFudGVkIj09PShudWxsPT1hfHwtMTxhLmluZGV4T2YoIkMwMDA0Iik\/CiJncmFudGVkIjoiZGVuaWVkIik\/d2luZG93LkQyQ0ZiQ29uc2VudC5ncmFudCgpOndpbmRvdy5EMkNGYkNvbnNlbnQucmV2b2tlKCl9LGxpc3RlbkZvck9uZVRydXN0OmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgT25lVHJ1c3Qpe2NvbnNvbGUubG9nKCJDb29raWVDb25zZW50Lmxpc3RlbkZvck9uZVRydXN0KCkiKTtDb29raWVDb25zZW50Ll9jdXJyZW50VmVuZG9yPSJPbmVUcnVzdCI7Y2xlYXJJbnRlcnZhbChDb29raWVDb25zZW50Ll9jbXBJbnRlcnZhbElEKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjb25ldHJ1c3QtY2xvc2UtYnRuLWNvbnRhaW5lciAub25ldHJ1c3QtY2xvc2UtYnRuLWhhbmRsZXIiKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtsZXQgYj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsYz1sb2NhdGlvbi5ob3N0bmFtZS5zcGxpdCgiLiIpLnNsaWNlKC0yKS5qb2luKCIuIik7CmRvY3VtZW50LmNvb2tpZT0iT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0iK2IrIjsiO2RvY3VtZW50LmNvb2tpZT0iT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkPTsgUGF0aD0vOyBFeHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDEgR01UO2RvbWFpbj0iK2MrIjsifSwxRTMpfSk7T25lVHJ1c3QuT25Db25zZW50Q2hhbmdlZChmdW5jdGlvbihiKXtpZihiJiZiLmRldGFpbCl7dmFyIGM9Q29va2llQ29uc2VudC5fZ2V0Q29uc2VudENvb2tpZSgpO0Nvb2tpZUNvbnNlbnQuX3VwZGF0ZUNvbnNlbnRDb29raWUoSlNPTi5zdHJpbmdpZnkoYi5kZXRhaWwpKTstMTxiLmRldGFpbC5pbmRleE9mKCJDMDAwNCIpP2d0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthZF9zdG9yYWdlOiJncmFudGVkIn0pOmd0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthZF9zdG9yYWdlOiJkZW5pZWQifSk7LTE8Yi5kZXRhaWwuaW5kZXhPZigiQzAwMDIiKT8KZ3RhZygiY29uc2VudCIsInVwZGF0ZSIse2FuYWx5dGljc19zdG9yYWdlOiJncmFudGVkIn0pOmd0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthbmFseXRpY3Nfc3RvcmFnZToiZGVuaWVkIn0pOy0xPGIuZGV0YWlsLmluZGV4T2YoIkMwMDA0Iik\/d2luZG93LkQyQ0ZiQ29uc2VudC5ncmFudCgpOndpbmRvdy5EMkNGYkNvbnNlbnQucmV2b2tlKCk7MT09Yi5kZXRhaWwubGVuZ3RoJiYiQzAwMDEiPT1iLmRldGFpbFswXSYmKG51bGw9PWN8fDE8Yy5sZW5ndGgpJiZkMmNGb290ZXJEZWxldGVBbGxDb29raWVzKCEwKTtpZigtMTxiLmRldGFpbC5pbmRleE9mKCJDMDAwMiIpKXtjPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImQyY19jb25zZW50X3dhaXQiKTtjPW51bGwhPWM\/SlNPTi5wYXJzZShhdG9iKGMpKTp7fTtmb3IodmFyIGQgaW4gYylDb29raWVzLnNldChjW2RdLmtleSxjW2RdLnZhbHVlLGNbZF0uZXhwaXJlcyxjW2RdLnBhdGgsY1tkXS5kb21haW4pfXNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oImQyY19jb25zZW50X3dhaXQiKTsKZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYm9keSIpLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJkMmNfY29uc2VudF9jaGFuZ2VkIix7Y2F0ZWdvcmllczpiLmRldGFpbH0pKX19KX19LF91cGRhdGVDb25zZW50Q29va2llOmZ1bmN0aW9uKGEpe0Nvb2tpZXMuc2V0KCJkMmNfY29va2llX2NvbnNlbnQiLGEsMzY1LCIvIil9LF9nZXRDb25zZW50Q29va2llOmZ1bmN0aW9uKCl7aWYoIUNvb2tpZXMuaGFzKCJkMmNfY29va2llX2NvbnNlbnQiKSlyZXR1cm4gbnVsbDtsZXQgYT1Db29raWVzLmdldCgiZDJjX2Nvb2tpZV9jb25zZW50Iik7cmV0dXJuIEpTT04ucGFyc2UoYSl9LGdldENvbnNlbnQ6ZnVuY3Rpb24oKXtsZXQgYT0oIiIrZG9jdW1lbnQuY29va2llKS5zcGxpdCgiOyIpO2ZvcihsZXQgYj0wO2I8YS5sZW5ndGg7YisrKXtsZXQgYz1hW2JdO2M9Yy50cmltKCk7aWYoMD09Yy5pbmRleE9mKCJkMmNfY29va2llX2NvbnNlbnQ9Iikpe3RyeXtjPWRlY29kZVVSSUNvbXBvbmVudChjKX1jYXRjaChkKXtjb25zb2xlLmxvZyhkKTsKYnJlYWt9cmV0dXJuIGMuc3Vic3RyaW5nKDE5LGMubGVuZ3RoKX19cmV0dXJuIG51bGx9LGlzQ29va2llQWxsb3dlZDpmdW5jdGlvbihhLGIpe2lmKFsiZDJjX2Nvb2tpZV9jb25zZW50IiwiQ1NSRkRPTUFJTkNIRUNLXzEiXS5pbmNsdWRlcyhhKSliKCEwKTtlbHNlIGlmKG51bGw9PT1Db29raWVDb25zZW50Ll9jb29raWVzfHxudWxsPT09Q29va2llQ29uc2VudC5fY2F0ZWdvcmllcylDb29raWVDb25zZW50Ll9yZWdpc3RlckpTT05Mb2FkZWRFdmVudChmdW5jdGlvbigpe0Nvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkKGEsYil9KTtlbHNlIGlmKENvb2tpZUNvbnNlbnQuX2Nvb2tpZXMuaGFzT3duUHJvcGVydHkoYSkpe3ZhciBjPUNvb2tpZUNvbnNlbnQuX2Nvb2tpZXNbYV0sZD1Db29raWVDb25zZW50Ll9nZXRWZW5kb3JDYXRlZ29yeShjKSxlPUNvb2tpZUNvbnNlbnQuX2dldENvbnNlbnRDb29raWUoKTsiZnVuY3Rpb24iPT09dHlwZW9mIGRlYnVnJiZkZWJ1Zyh7bmFtZTphLApjYXRlZ29yeTpjLHZlbmRvcjpkLGNvbnNlbnQ6ZX0pO251bGw9PT1lfHxudWxsPT09ZD9iKCExKToib2JqZWN0Ij09PXR5cGVvZiBkPyhjPTA8ZC5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuLTE8ZS5pbmRleE9mKGYpfSkubGVuZ3RoLGIoYykpOmIoLTE8ZS5pbmRleE9mKGQpKX1lbHNlIGIoITEpfSxfbG9hZEpTT046ZnVuY3Rpb24oYSl7ZmV0Y2goIi9qcy9qc29uL2NhdGVnb3JpemVkX2Nvb2tpZXMuanNvbiIpLnRoZW4oZnVuY3Rpb24oYil7cmV0dXJuIGIuanNvbigpfSkudGhlbihmdW5jdGlvbihiKXtDb29raWVDb25zZW50Ll9jb29raWVzPWIuY29va2llcztDb29raWVDb25zZW50Ll9jYXRlZ29yaWVzPWIuY2F0ZWdvcmllcztpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpdHJ5e2EoKX1jYXRjaChjKXt9MDxDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMubGVuZ3RoJiZDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMuZm9yRWFjaChmdW5jdGlvbihjKXt0cnl7YygpfWNhdGNoKGQpe319KX0pfSwKX3JlZ2lzdGVySlNPTkxvYWRlZEV2ZW50OmZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PT10eXBlb2YgYSlpZihudWxsIT09Q29va2llQ29uc2VudC5fY29va2llcyl0cnl7YSgpfWNhdGNoKGIpe31lbHNlIENvb2tpZUNvbnNlbnQuX3JlZ2lzdGVyZWRSZXF1ZXN0cy5wdXNoKGEpfSxfZ2V0VmVuZG9yQ2F0ZWdvcnk6ZnVuY3Rpb24oYSl7aWYobnVsbD09PUNvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3Ipe2xldCBjPVtdO09iamVjdC52YWx1ZXMoQ29va2llQ29uc2VudC5fY2F0ZWdvcmllcykuZm9yRWFjaChmdW5jdGlvbihkKXtkLmhhc093blByb3BlcnR5KGEpJiZjLnB1c2goZFthXSl9KTtyZXR1cm4gY31sZXQgYj1Db29raWVDb25zZW50Ll9jYXRlZ29yaWVzW0Nvb2tpZUNvbnNlbnQuX2N1cnJlbnRWZW5kb3JdO3JldHVybiBiJiZiLmhhc093blByb3BlcnR5KGEpP2JbYV06bnVsbH19O3dpbmRvdy5Db29raWVDb25zZW50LmluaXQoKX0pKCk7Ci8qKiAvbS9qcy92YW5pbGxhanMvY29udGVudExvYWRlci5qcyAqKi8KdmFyIF9fX2QyY19jb250ZW50TG9hZGVyanNfY19vbj0iMjAyNi0wNS0wNSAxMzozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXtjPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpcmV0dXJuO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7ZD1lWzBdO2Q9IWEmJmQgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZVtmXTtpZighKGcgaW4gZCkpcmV0dXJuO2Q9ZFtnXX1lPWVbZS5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9kW2VdOm51bGw7Yj1iKGMpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZSk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIrZSksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShkLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgYz1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChjLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhkKTtpZighZC5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZDt2YXIgZT1kLnZhbHVlfWNhdGNoKGYpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oZiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8sZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmNvbnN0IGNvbnRlbnRCbG9ja3M9KCk9Pntjb25zdCBhPWI9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3ZhciBjPWIuZGF0YXNldCxkLGU9bnVsbD09KGQ9Yi5xdWVyeVNlbGVjdG9yKCdpbnB1dFtuYW1lPSJibG9jay1kYXRhIl0nKSk\/dm9pZCAwOmQudmFsdWU7ZD0iRlJFTkNIIj09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbHVlPyJmciI6ImVuIjtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZGF0YTplfHwie30ifSk7Yz15aWVsZCh5aWVsZCBmZXRjaChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGQpfS9hamF4L2dldFNrZWxldG9uQ29udGVudGAse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyIsY2hhcnNldDoiVVRGLTgifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoYyl9KSkuanNvbigpOwppZigidW5kZWZpbmVkIiE9dHlwZW9mIGMuc3RhdHVzJiYic3VjY2VzcyI9PWMuc3RhdHVzKWlmKGM9Yy5jb250ZW50LDE+Yy5sZW5ndGgpYi5yZXBsYWNlV2l0aCgiIik7ZWxzZXtjPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGMpLmNoaWxkcmVuWzBdO3ZhciBmO2U9bnVsbD09KGY9Yi5kYXRhc2V0KT92b2lkIDA6Zi5jYWxsYmFjaztiLnBhcmVudEVsZW1lbnQuZGF0YXNldC5sb2FkZWQ9IjEiO2IucmVwbGFjZVdpdGgoYyk7ZSYmImZ1bmN0aW9uIj09PXR5cGVvZiBoYW5kbGVyc1tlXSYmaGFuZGxlcnNbZV0oYykuaW5pdCgpfX0pO2hhbmRsZXJzPXtwYXltZW50Q2FsY0Jsb2NrOmI9Pntjb25zdCBjPWIuY2xvc2VzdCgiLmRpdkNhclNpbmdsZUlubmVyQm94Iik7cmV0dXJue2luaXQ6KCk9PnskKGIpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGQ9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTsKJCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpkLGdyYXZpdHk6ImVhc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGUpe319KTtiLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKGQpe2Quc3RvcFByb3BhZ2F0aW9uKCk7aWYoYi5kYXRhc2V0LnRvb2x0aXBDcmVhdGVkKXJldHVybiExO2IuZGF0YXNldC50b29sdGlwQ3JlYXRlZD0iMSI7JChkLmN1cnJlbnRUYXJnZXQucXVlcnlTZWxlY3RvcigiLmNhci1maW5hbmNlLWluZm8iKSkuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Indlc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmxpcEluIn0pfSk7Yi5xdWVyeVNlbGVjdG9yKCIuY2FyLWZpbmFuY2UtaW5mbyIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7aWYoIWMpcmV0dXJuITE7aWYoIlNVUCI9PWQudGFyZ2V0LnRhZ05hbWUmJgpkLnRhcmdldC5oYXNBdHRyaWJ1dGUoImRhdGEtZGlzY2xhaW1lci1kaXZpZCIpJiZ2b2lkIDAhPWRyRGlzY2xhaW1lckpTKXJldHVybiBkPWQudGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS1kaXNjbGFpbWVyLWRpdmlkIiksZHJEaXNjbGFpbWVySlMub3BlbkRpc2NsYWltZXJEaXYoZCksITE7ZD1jLnF1ZXJ5U2VsZWN0b3IoIi5kaXZDYXJUaXRsZUNvbnRhaW5lciBhIikuaHJlZjt3aW5kb3cub3BlbihkLCJfc2VsZiIpfSl9fX19O3JldHVybntzZXRCbG9ja09ic2VydmVyOigpPT57Y29uc3QgYj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZD0+e2QuZm9yRWFjaChlPT57ZS5pc0ludGVyc2VjdGluZyYmKGUudGFyZ2V0LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLGIudW5vYnNlcnZlKGUudGFyZ2V0KSxjb25zb2xlLmxvZygic2tlbGV0b24gb2JzZXJ2ZWQgIitlLnRhcmdldCksYShlLnRhcmdldCkpfSl9LHt0aHJlc2hvbGQ6LjF9KSxjPW5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb250ZW50LXNrZWxldG9uIikuZm9yRWFjaChkPT57Yi5vYnNlcnZlKGQpOyJza2VsZXRvbiI9PT1jLmdldCgiZGVidWciKSYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbnRlbnQtc2tlbGV0b24iKS5mb3JFYWNoKGU9PmUuY2xhc3NMaXN0LmFkZCgiZGVidWciKSl9KX0saGFuZGxlcnN9fTtkb2NSZWFkeUFyci5wdXNoKCgpPT57ImZ1bmN0aW9uIj09PXR5cGVvZiBjb250ZW50QmxvY2tzJiZjb250ZW50QmxvY2tzKCkuc2V0QmxvY2tPYnNlcnZlcigpfSk7Ci8qKiAvbS9qcy92YW5pbGxhanMvY29va2llcy5qcyAqKi8KdmFyIF9fX2QyY19jb29raWVzanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxMzoyNSI7J3VzZSBzdHJpY3QnOyhmdW5jdGlvbigpe2Z1bmN0aW9uIGwoYSxjLGIsaCxkLGYsZSl7dmFyIGc9IiI7aWYoYil7bGV0IGs9bmV3IERhdGU7ay5zZXRGdWxsWWVhcihrLmdldEZ1bGxZZWFyKCkrMSk7c3dpdGNoKGIuY29uc3RydWN0b3Ipe2Nhc2UgTnVtYmVyOjM2NTxiJiYoYj0zNjUpO2c9bmV3IERhdGU7Zy5zZXREYXRlKGcuZ2V0RGF0ZSgpK2IpO2c9SW5maW5pdHk9PT1iPyI7IGV4cGlyZXM9RnJpLCAzMSBEZWMgOTk5OSAyMzo1OTo1OSBHTVQiOiI7IGV4cGlyZXM9IitnLnRvVVRDU3RyaW5nKCk7YnJlYWs7Y2FzZSBTdHJpbmc6bmV3IERhdGUoYik+ayYmKGI9ay50b1VUQ1N0cmluZygpKTtnPSI7IGV4cGlyZXM9IitiO2JyZWFrO2Nhc2UgRGF0ZTpiPmsmJihiPWspLGc9IjsgZXhwaXJlcz0iK2IudG9VVENTdHJpbmcoKX19InVuZGVmaW5lZCI9PT10eXBlb2YgZiYmKGY9Imh0dHBzOiI9PT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wpO3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYSkrCiI9IitlbmNvZGVVUklDb21wb25lbnQoYykrZysoZD8iOyBkb21haW49IitkOiIiKSsoaD8iOyBwYXRoPSIraDoiIikrKGY\/Ijsgc2VjdXJlIjoiIikrKGUmJiJub19yZXN0cmljdGlvbiIhPT1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKT8ibGF4Ij09PWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpfHwxPT09TWF0aC5jZWlsKGUpfHwhMD09PWU\/Ijsgc2FtZXNpdGU9bGF4Ijoibm9uZSI9PT1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKXx8MD5lPyI7IHNhbWVzaXRlPW5vbmUiOiI7IHNhbWVzaXRlPXN0cmljdCI6IiIpfWZ1bmN0aW9uIG0oYSxjKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBhfHxudWxsPT09YSlyZXR1cm4tMTtzd2l0Y2goYS5jb25zdHJ1Y3Rvcil7Y2FzZSBOdW1iZXI6aWYoIm51bWJlciI9PT1jKXZhciBiPTg2NDAwKmE7ZWxzZSBiPW5ldyBEYXRlLGIuc2V0RGF0ZShiLmdldERhdGUoKSthKSxiPUluZmluaXR5PT09YT8iRnJpLCAzMSBEZWMgOTk5OSAyMzo1OTo1OSBHTVQiOgpiLnRvVVRDU3RyaW5nKCk7YnJlYWs7Y2FzZSBTdHJpbmc6InN0cmluZyI9PT1jP2I9YTooYj1uZXcgRGF0ZSxiPSgobmV3IERhdGUoYSkpLmdldFRpbWUoKS1iLmdldFRpbWUoKSkvMUUzKTticmVhaztjYXNlIERhdGU6InN0cmluZyI9PT1jP2I9YS50b1VUQ1N0cmluZygpOihiPW5ldyBEYXRlLGI9KGEuZ2V0VGltZSgpLWIuZ2V0VGltZSgpKS8xRTMpfSJudW1iZXIiPT09YyYmKGI9TWF0aC5yb3VuZChiKSk7cmV0dXJuIGJ9dmFyIG49L1tcLVwuXCtcKl0vZyxwPS9eKD86ZXhwaXJlc3xtYXhcLWFnZXxwYXRofGRvbWFpbnxzZWN1cmV8c2FtZXNpdGV8aHR0cG9ubHkpJC9pLHE9InV0bV9jYW1wYWlnbiB1dG1fa2V5d29yZCB1dG1fbGFuZGluZyB1dG1fbGFuZGluZ19mb290ZXIgdXRtX21lZGl1bSB1dG1fc291cmNlIHV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyB1dG1fc291cmNlX3JldGFyZ2V0aW5nIERpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbiBEaXNwbGF5U291cmNlVVRNU291cmNlIi5zcGxpdCgiICIpOwp3aW5kb3cuQ29va2llcz17Z2V0OmZ1bmN0aW9uKGEpe3JldHVybiBhP2RlY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5jb29raWUucmVwbGFjZShuZXcgUmVnRXhwKCIoPzooPzpefC4qOylcXHMqIitlbmNvZGVVUklDb21wb25lbnQoYSkucmVwbGFjZShuLCJcXCQmIikrIlxccypcXD1cXHMqKFteO10qKS4qJCl8Xi4qJCIpLCIkMSIpKXx8bnVsbDpudWxsfSxzZXQ6ZnVuY3Rpb24oYSxjLGIsaCxkLGYsZSl7cmV0dXJuIWF8fHAudGVzdChhKT8hMTpDb29raWVzLmlzQ29va2llQWxsb3dlZChhLGZ1bmN0aW9uKGcpe2Q9ZD9kOiIiO2Y9bnVsbD09Zj8hMDpmO2U9bnVsbD09ZT8iTm9uZSI6ZTtDb29raWVzLmxvZyhhLGMsYixoLGQpO2lmKCFnKXJldHVybi0xPHEuaW5kZXhPZihhKSYmbnVsbD09Q29va2llcy5nZXQoImQyY19jb29raWVfY29uc2VudCIpJiYoZz1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkMmNfY29uc2VudF93YWl0IiksZz1udWxsIT1nP0pTT04ucGFyc2UoYXRvYihnKSk6Cnt9LGdbYV09e2tleTphLHZhbHVlOmMsZXhwaXJlczpiLHBhdGg6aCxkb21haW46ZH0sdXRtQ29va2llc1N0b3JhZ2VKU09OPUpTT04uc3RyaW5naWZ5KGcpLHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oImQyY19jb25zZW50X3dhaXQiLGJ0b2EodXRtQ29va2llc1N0b3JhZ2VKU09OKSkpLENvb2tpZXMucmVtb3ZlKGEsaCxkLGYsZSksITE7ZG9jdW1lbnQuY29va2llPWwoYSxjLGIsaCxkLGYsZSk7cmV0dXJuITB9KX0scmVtb3ZlOmZ1bmN0aW9uKGEsYyxiLGgsZCl7aWYoIXRoaXMuaGFzKGEpKXJldHVybiExO2RvY3VtZW50LmNvb2tpZT1sKGEsIiIsIlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixjLGIsaCxkKTtyZXR1cm4hMH0saGFzOmZ1bmN0aW9uKGEpe3JldHVybiFhfHxwLnRlc3QoYSk\/ITE6KG5ldyBSZWdFeHAoIig\/Ol58O1xccyopIitlbmNvZGVVUklDb21wb25lbnQoYSkucmVwbGFjZShuLCJcXCQmIikrIlxccypcXD0iKSkudGVzdChkb2N1bWVudC5jb29raWUpfSwKa2V5czpmdW5jdGlvbigpe2Zvcih2YXIgYT1kb2N1bWVudC5jb29raWUucmVwbGFjZSgvKCg\/Ol58XHMqOylbXj1dKykoPz07fCQpfF5ccyp8XHMqKD86PVteO10qKT8oPzpcMXwkKS9nLCIiKS5zcGxpdCgvXHMqKD86PVteO10qKT87XHMqLyksYz1hLmxlbmd0aCxiPTA7YjxjO2IrKylhW2JdPWRlY29kZVVSSUNvbXBvbmVudChhW2JdKTtyZXR1cm4gYX0sY2xlYXI6ZnVuY3Rpb24oYSxjLGIsaCl7Zm9yKHZhciBkPXRoaXMua2V5cygpLGY9ZC5sZW5ndGgsZT0wO2U8ZjtlKyspdGhpcy5yZW1vdmVJdGVtKGRbZV0sYSxjLGIsaCl9LGxvZzpmdW5jdGlvbihhLGMsYixoLGQsZil7InVuZGVmaW5lZCI9PT10eXBlb2YgZiYmKGY9NSk7InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj9mJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Q29va2llcy5sb2coYSxjLGIsaCxkLGYtMSl9LDFFMyk6d2luZG93LkNvb2tpZUxvZ2dlci5sb2coYSxjLGIsaCxkKX0saXNDb29raWVBbGxvd2VkOmZ1bmN0aW9uKGEsCmMpe3JldHVybiJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVDb25zZW50fHwidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llQ29uc2VudC5pc0Nvb2tpZUFsbG93ZWQ\/YyghMCk6d2luZG93LkNvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkKGEsYyl9fTt3aW5kb3cuQ29va2llTG9nZ2VyPXtfc3RhY2s6W10saW5pdDpmdW5jdGlvbigpe2xldCBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZWFsZXJQcm92aW5jZUNvZGUiKTthJiYiUUMiPT1uZXcgU3RyaW5nKGEudmFsdWUpJiYxPT1NYXRoLmZsb29yKDMqTWF0aC5yYW5kb20oKSkmJmZldGNoKCIvcHJveHlfcmQyYy9kMmNhcGkvbG9nL2Nvb2tpZXMvYWN0aXZlIikudGhlbihmdW5jdGlvbihjKXtyZXR1cm4gYy5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGMpeyJhY3RpdmUiPT09Yy5zdGF0dXMmJkNvb2tpZUxvZ2dlci53YWl0U3RhY2soKX0pfSxsb2c6ZnVuY3Rpb24oYSxjLGIsaCxkKXtpZigibGl2ZSI9PT0Kd2luZG93LmRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCkpe2RlYnVnKCJMb2dnaW5nIGNvb2tpZToiLHtuYW1lOmEsdmFsdWU6Y3x8IiIsZHVyYXRpb246bShiLCJudW1iZXIiKSxwYXRoOmgsZG9tYWluOmR9KTt2YXIgZixlLGc9InVuZGVmaW5lZCIhPXR5cGVvZiBjdXJyZW50U2l0ZUlEP2N1cnJlbnRTaXRlSUQ6bnVsbCE9KGU9bnVsbD09KGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpKT92b2lkIDA6Zi52YWx1ZSk\/ZToiIjt0aGlzLl9zdGFjay5wdXNoKHtuYW1lOmEsZHVyYXRpb246bShiLCJudW1iZXIiKSxwYXRoOmh8fCIvIixkb21haW46ZHx8d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLHVyaTp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsc2l0ZWlkOmcsdmFsdWU6YnRvYShjKX0pfX0sX3NlbmRTdGFjazpmdW5jdGlvbigpe2lmKDAhPT10aGlzLl9zdGFjay5sZW5ndGgpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb29raWVMb2dUb2tlbiIpPwpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29va2llTG9nVG9rZW4iKS52YWx1ZTpudWxsO2lmKGEpe3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgY3VycmVudFNpdGVJRD9jdXJyZW50U2l0ZUlEOmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXRlSUQiKT9kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIikudmFsdWU6IiI7KG5ldyBXb3JrZXIoIi9qcy92YW5pbGxhanMvY29va2llV29ya2VyLmpzIikpLnBvc3RNZXNzYWdlKHt0b2tlbjphLHNpdGVJRDpjLHN0YWNrOkNvb2tpZUxvZ2dlci5fc3RhY2t9KTtDb29raWVMb2dnZXIuX3N0YWNrPVtdfWVsc2UgZGVidWcoIk5vIGNvb2tpZSBsb2cgdG9rZW4gZm91bmQuIil9fSx3YWl0U3RhY2s6ZnVuY3Rpb24oKXsibGl2ZSI9PT13aW5kb3cuZGVwbG95bWVudFR5cGUudG9Mb3dlckNhc2UoKSYmKHNldFRpbWVvdXQoZnVuY3Rpb24oKXtDb29raWVMb2dnZXIuX3NlbmRTdGFjaygpfSwxRTQpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLApmdW5jdGlvbigpe0Nvb2tpZUxvZ2dlci5fc2VuZFN0YWNrKCl9KSl9fTt3aW5kb3cuQ29va2llTG9nZ2VyLmluaXQoKX0pKCk7Ci8qKiAvbS9qcy9qcXVlcnkuYmFzZTY0LmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzU6NDgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyMy0wMS0xMiAxMTozNTo1OCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ1OjM5IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjEtMTItMTUgMTI6NDM6MzQiOyJ1c2Ugc3RyaWN0IjsKalF1ZXJ5LmJhc2U2ND1mdW5jdGlvbihrKXtmdW5jdGlvbiBlKGEsYyl7YT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuaW5kZXhPZihhLmNoYXJBdChjKSk7aWYoLTE9PT1hKXRocm93IkNhbm5vdCBkZWNvZGUgYmFzZTY0IjtyZXR1cm4gYX1mdW5jdGlvbiBoKGEsYyl7YT1hLmNoYXJDb2RlQXQoYyk7aWYoMjU1PGEpdGhyb3ciSU5WQUxJRF9DSEFSQUNURVJfRVJSOiBET00gRXhjZXB0aW9uIDUiO3JldHVybiBhfXJldHVybntkZWNvZGU6ZnVuY3Rpb24oYSl7dmFyIGM9MCxiLGY9YS5sZW5ndGgsZD1bXTthPVN0cmluZyhhKTtpZigwPT09ZilyZXR1cm4gYTtpZigwIT09ZiU0KXRocm93IkNhbm5vdCBkZWNvZGUgYmFzZTY0IjsiPSI9PT1hLmNoYXJBdChmLTEpJiYoYz0xLCI9Ij09PWEuY2hhckF0KGYtMikmJihjPTIpLGYtPTQpO2ZvcihiPTA7YjxmO2IrPTQpe3ZhciBnPWUoYSxiKTw8MTh8ZShhLGIrMSk8PAoxMnxlKGEsYisyKTw8NnxlKGEsYiszKTtkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShnPj4xNixnPj44JjI1NSxnJjI1NSkpfXN3aXRjaChjKXtjYXNlIDE6Zz1lKGEsYik8PDE4fGUoYSxiKzEpPDwxMnxlKGEsYisyKTw8NjtkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShnPj4xNixnPj44JjI1NSkpO2JyZWFrO2Nhc2UgMjpnPWUoYSxiKTw8MTh8ZShhLGIrMSk8PDEyLGQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGc+PjE2KSl9cmV0dXJuIGQuam9pbigiIil9LGVuY29kZTpmdW5jdGlvbihhKXtpZigxIT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyJTeW50YXhFcnJvcjogZXhhY3RseSBvbmUgYXJndW1lbnQgcmVxdWlyZWQiO2E9U3RyaW5nKGEpO3ZhciBjLGI9W10sZj1hLmxlbmd0aC1hLmxlbmd0aCUzO2lmKDA9PT1hLmxlbmd0aClyZXR1cm4gYTtmb3IoYz0wO2M8ZjtjKz0zKXt2YXIgZD1oKGEsYyk8PDE2fGgoYSxjKzEpPDw4fGgoYSxjKzIpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PgoxOCkpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjEyJjYzKSk7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+NiY2MykpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQmNjMpKX1zd2l0Y2goYS5sZW5ndGgtZil7Y2FzZSAxOmQ9aChhLGMpPDwxNjtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xOCkrIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xMiY2MykrIj09Iik7YnJlYWs7Y2FzZSAyOmQ9CmgoYSxjKTw8MTZ8aChhLGMrMSk8PDgsYi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTgpKyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTImNjMpKyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+NiY2MykrIj0iKX1yZXR1cm4gYi5qb2luKCIiKX0sVkVSU0lPTjoiMS4wIn19KGpRdWVyeSk7Ci8qKiAvbS9qcy9qcXVlcnkuZGFya3Rvb2x0aXAuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5ZGFya3Rvb2x0aXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjQ4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlkYXJrdG9vbHRpcGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzM6MDciOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGUoYSxjKXt0aGlzLmJlYXJlcj1hO3RoaXMub3B0aW9ucz1jO3RoaXMuaGlkZUV2ZW50O3RoaXMuaGlkaW5nPSExO3RoaXMubW91c2VPdmVyTW9kZT0iaG92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im1vdXNlb3ZlciI9PXRoaXMub3B0aW9ucy50cmlnZ2VyfHwib25tb3VzZW92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcn1lLnByb3RvdHlwZT17c2hvdzpmdW5jdGlvbigpe3ZhciBhPXRoaXM7dGhpcy5vcHRpb25zLm1vZGFsJiZ0aGlzLm1vZGFsTGF5ZXIuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTt0aGlzLnRvb2x0aXAuY3NzKCJkaXNwbGF5IiwiYmxvY2siKTthLm1vdXNlT3Zlck1vZGUmJih0aGlzLnRvb2x0aXAub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5oaWRlRXZlbnQpO2EuaGlkaW5nPSExfSksdGhpcy50b29sdGlwLm9uKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoYS5oaWRlRXZlbnQpOwphLmhpZGUoKTthLmhpZGluZz0hMX0pKX0saGlkZTpmdW5jdGlvbigpe3ZhciBhPXRoaXM7YS5oaWRpbmd8fChhLmhpZGluZz0hMCx0aGlzLmhpZGVFdmVudD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5oaWRpbmc9ITE7YS50b29sdGlwLmhpZGUoKX0pLGEub3B0aW9ucy5tb2RhbCYmKGEuaGlkaW5nPSExLGEubW9kYWxMYXllci5oaWRlKCkpLHRoaXMub3B0aW9ucy5vbkNsb3NlKCkpfSx0b2dnbGU6ZnVuY3Rpb24oKXt0aGlzLnRvb2x0aXAuaXMoIjp2aXNpYmxlIik\/dGhpcy5oaWRlKCk6dGhpcy5zaG93KCl9LGFkZEFuaW1hdGlvbjpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKXtjYXNlICJmYWRlSW4iOnRoaXMudG9vbHRpcC5hZGRDbGFzcygiYW5pbWF0ZWQiKTt0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImZhZGVJbiIpO2JyZWFrO2Nhc2UgImZsaXBJbiI6dGhpcy50b29sdGlwLmFkZENsYXNzKCJhbmltYXRlZCIpLHRoaXMudG9vbHRpcC5hZGRDbGFzcygiZmxpcEluIil9fSwKc2V0Q29udGVudDpmdW5jdGlvbigpe2IodGhpcy5iZWFyZXIpLmNzcygiY3Vyc29yIiwicG9pbnRlciIpO2lmKHRoaXMub3B0aW9ucy5jb250ZW50KXRoaXMuY29udGVudD10aGlzLm9wdGlvbnMuY29udGVudDtlbHNlIGlmKHRoaXMuYmVhcmVyLmF0dHIoImRhdGEtdG9vbHRpcCIpKXRoaXMuY29udGVudD10aGlzLmJlYXJlci5hdHRyKCJkYXRhLXRvb2x0aXAiKTtlbHNlIHJldHVybjtpZigiIyI9PXRoaXMuY29udGVudC5jaGFyQXQoMCkpe2lmKHRoaXMub3B0aW9ucy5kZWxldGVfY29udGVudCl7dmFyIGE9Yih0aGlzLmNvbnRlbnQpLmh0bWwoKTtiKHRoaXMuY29udGVudCkuaHRtbCgiIik7dGhpcy5jb250ZW50PWE7ZGVsZXRlIGF9ZWxzZSBiKHRoaXMuY29udGVudCkuaGlkZSgpLHRoaXMuY29udGVudD1iKHRoaXMuY29udGVudCkuaHRtbCgpO3RoaXMuY29udGVudFR5cGU9Imh0bWwifWVsc2UgdGhpcy5jb250ZW50VHlwZT0idGV4dCI7YT0iIiE9dGhpcy5iZWFyZXIuYXR0cigiaWQiKSYmCiJ1bmRlZmluZWQiIT10aGlzLmJlYXJlci5hdHRyKCJpZCIpPyJpZD0nZGFya3Rvb2x0aXAtIit0aGlzLmJlYXJlci5hdHRyKCJpZCIpKyInIjoiaWQ9J2Rhcmt0b29sdGlwLSIrKERhdGUubm93KCkrTWF0aC5mbG9vcigxRTQqTWF0aC5yYW5kb20oKSkpKyInIjswPT09YigiSU5TLmRhcmt0b29sdGlwLW1vZGFsLWxheWVyIikubGVuZ3RoJiYodGhpcy5tb2RhbExheWVyPWIoIjxpbnMgY2xhc3M9J2Rhcmt0b29sdGlwLW1vZGFsLWxheWVyJz48L2lucz4iKSk7dGhpcy50b29sdGlwPWIoIjxpbnMgIithKyIgY2xhc3MgPSAnZGFyay10b29sdGlwICIrdGhpcy5vcHRpb25zLnRoZW1lKyIgIit0aGlzLm9wdGlvbnMuc2l6ZSsiICIrdGhpcy5vcHRpb25zLmdyYXZpdHkrIic+PGRpdj4iK3RoaXMuY29udGVudCsiPC9kaXY+PGRpdiBjbGFzcyA9ICd0aXAnPjwvZGl2PjwvaW5zPiIpO3RoaXMudGlwPXRoaXMudG9vbHRpcC5maW5kKCIudGlwIik7YigiYm9keSIpLmFwcGVuZCh0aGlzLm1vZGFsTGF5ZXIpOwpiKCJib2R5IikuYXBwZW5kKHRoaXMudG9vbHRpcCk7Imh0bWwiPT10aGlzLmNvbnRlbnRUeXBlJiZ0aGlzLnRvb2x0aXAuY3NzKCJtYXgtd2lkdGgiLCJub25lIik7dGhpcy50b29sdGlwLmNzcygib3BhY2l0eSIsdGhpcy5vcHRpb25zLm9wYWNpdHkpO3RoaXMuYWRkQW5pbWF0aW9uKCk7dGhpcy5vcHRpb25zLmNvbmZpcm0mJnRoaXMuYWRkQ29uZmlybSgpfSxzZXRQb3NpdGlvbnM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLmJlYXJlci5vZmZzZXQoKS5sZWZ0LGM9dGhpcy5iZWFyZXIub2Zmc2V0KCkudG9wO3N3aXRjaCh0aGlzLm9wdGlvbnMuZ3Jhdml0eSl7Y2FzZSAic291dGgiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKS8yLXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCkvMjtjKz0tdGhpcy50b29sdGlwLm91dGVySGVpZ2h0KCktdGhpcy50aXAub3V0ZXJIZWlnaHQoKS8yO2JyZWFrO2Nhc2UgIndlc3QiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKSt0aGlzLnRpcC5vdXRlcldpZHRoKCkvCjI7Yys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKS8yLXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLzI7YnJlYWs7Y2FzZSAibm9ydGgiOmErPXRoaXMuYmVhcmVyLm91dGVyV2lkdGgoKS8yLXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCkvMjtjKz10aGlzLmJlYXJlci5vdXRlckhlaWdodCgpK3RoaXMudGlwLm91dGVySGVpZ2h0KCkvMjticmVhaztjYXNlICJlYXN0IjphKz0tdGhpcy50b29sdGlwLm91dGVyV2lkdGgoKS10aGlzLnRpcC5vdXRlcldpZHRoKCkvMixjKz10aGlzLmJlYXJlci5vdXRlckhlaWdodCgpLzItdGhpcy50b29sdGlwLm91dGVySGVpZ2h0KCkvMn10aGlzLm9wdGlvbnMuYXV0b0xlZnQmJnRoaXMudG9vbHRpcC5jc3MoImxlZnQiLGEpO3RoaXMub3B0aW9ucy5hdXRvVG9wJiZ0aGlzLnRvb2x0aXAuY3NzKCJ0b3AiLGMpfSxzZXRFdmVudHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLGM9YS5vcHRpb25zLmhvdmVyRGVsYXksZjtpZihhLm1vdXNlT3Zlck1vZGUpdGhpcy5iZWFyZXIub24oIm1vdXNlZW50ZXIiLApmdW5jdGlvbigpe2Y9c2V0VGltZW91dChmdW5jdGlvbigpe2Euc2V0UG9zaXRpb25zKCk7YS5zaG93KCl9LGMpfSkub24oIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGYpO2EuaGlkZSgpfSk7ZWxzZSBpZigiY2xpY2siPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im9uY2xpayI9PXRoaXMub3B0aW9ucy50cmlnZ2VyKXRoaXMudG9vbHRpcC5vbigiY2xpY2siLGZ1bmN0aW9uKGQpe2Quc3RvcFByb3BhZ2F0aW9uKCl9KSx0aGlzLmJlYXJlci5vbigiY2xpY2siLGZ1bmN0aW9uKGQpe2QucHJldmVudERlZmF1bHQoKTthLnNldFBvc2l0aW9ucygpO2EudG9nZ2xlKCk7ZC5zdG9wUHJvcGFnYXRpb24oKX0pLGIoImh0bWwiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5oaWRlKCl9KX0sYWN0aXZhdGU6ZnVuY3Rpb24oKXt0aGlzLnNldENvbnRlbnQoKTt0aGlzLmNvbnRlbnQmJnRoaXMuc2V0RXZlbnRzKCl9LGFkZENvbmZpcm06ZnVuY3Rpb24oKXt0aGlzLnRvb2x0aXAuYXBwZW5kKCI8dWwgY2xhc3MgPSAnY29uZmlybSc+PGxpIGNsYXNzID0gJ2Rhcmt0b29sdGlwLXllcyc+IisKdGhpcy5vcHRpb25zLnllcysiPC9saT48bGkgY2xhc3MgPSAnZGFya3Rvb2x0aXAtbm8nPiIrdGhpcy5vcHRpb25zLm5vKyI8L2xpPjwvdWw+Iik7dGhpcy5zZXRDb25maXJtRXZlbnRzKCl9LHNldENvbmZpcm1FdmVudHM6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMudG9vbHRpcC5maW5kKCJsaS5kYXJrdG9vbHRpcC15ZXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGMpe2Eub25ZZXMoKTtjLnN0b3BQcm9wYWdhdGlvbigpfSk7dGhpcy50b29sdGlwLmZpbmQoImxpLmRhcmt0b29sdGlwLW5vIikub24oImNsaWNrIixmdW5jdGlvbihjKXthLm9uTm8oKTtjLnN0b3BQcm9wYWdhdGlvbigpfSl9LGZpbmFsTWVzc2FnZTpmdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucy5maW5hbE1lc3NhZ2Upe3ZhciBhPXRoaXM7YS50b29sdGlwLmZpbmQoImRpdjpmaXJzdCIpLmh0bWwodGhpcy5vcHRpb25zLmZpbmFsTWVzc2FnZSk7YS50b29sdGlwLmZpbmQoInVsIikucmVtb3ZlKCk7YS5zZXRQb3NpdGlvbnMoKTsKc2V0VGltZW91dChmdW5jdGlvbigpe2EuaGlkZSgpO2Euc2V0Q29udGVudCgpfSxhLm9wdGlvbnMuZmluYWxNZXNzYWdlRHVyYXRpb24pfWVsc2UgdGhpcy5oaWRlKCl9LG9uWWVzOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9uWWVzKHRoaXMuYmVhcmVyKTt0aGlzLmZpbmFsTWVzc2FnZSgpfSxvbk5vOmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9uTm8odGhpcy5iZWFyZXIpO3RoaXMuaGlkZSgpfX07Yi5mbi5kYXJrVG9vbHRpcD1mdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7YT1iLmV4dGVuZCh7fSxiLmZuLmRhcmtUb29sdGlwLmRlZmF1bHRzLGEpOyhuZXcgZShiKHRoaXMpLGEpKS5hY3RpdmF0ZSgpfSl9O2IuZm4uZGFya1Rvb2x0aXAuZGVmYXVsdHM9e2FuaW1hdGlvbjoibm9uZSIsY29uZmlybTohMSxjb250ZW50OiIiLGZpbmFsTWVzc2FnZToiIixmaW5hbE1lc3NhZ2VEdXJhdGlvbjoxRTMsZ3Jhdml0eToic291dGgiLGhvdmVyRGVsYXk6MCxtb2RhbDohMSwKbm86Ik5vIixvbk5vOmZ1bmN0aW9uKCl7fSxvblllczpmdW5jdGlvbigpe30sb3BhY2l0eTouOSxzaXplOiJtZWRpdW0iLHRoZW1lOiJkYXJrIix0cmlnZ2VyOiJob3ZlciIseWVzOiJZZXMiLGF1dG9Ub3A6ITAsYXV0b0xlZnQ6ITAsb25DbG9zZTpmdW5jdGlvbigpe319fSkoalF1ZXJ5KTsKLyoqIC9tL2pzL2pxdWVyeS52YWxpZGl0eS5taW4uanMgKiovCihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGIsYyxlKXt2YXIgZj0oYi5yZWR1Y3Rpb258fGIpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxpPVtdO3JldHVybiAxPmIubGVuZ3RoPyhjb25zb2xlLmxvZygiQ291bGQgbm90IHZhbGlkYXRlIGVsZW1lbnQiLGIpLGIpOihmLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpP2kucHVzaCh0aGlzKTpkKHRoaXMsZyhlLHtmaWVsZDpoKHRoaXMpfSkpfSksYi5yZWR1Y3Rpb249YShpKSxiKX1mdW5jdGlvbiBjKCl7YS52YWxpZGl0eS5pc1ZhbGlkYXRpbmcoKSYmKGEudmFsaWRpdHkucmVwb3J0LmVycm9ycysrLGEudmFsaWRpdHkucmVwb3J0LnZhbGlkPSExKX1mdW5jdGlvbiBkKGIsZCl7YygpLGEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdJiZhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXS5yYWlzZSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2UoYShiKSxkKX1mdW5jdGlvbiBlKGIsZCl7YygpLGEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdJiZhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXS5yYWlzZUFnZ3JlZ2F0ZSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2VBZ2dyZWdhdGUoYixkKX1mdW5jdGlvbiBmKGEpe3ZhciBiPTA7cmV0dXJuIGEuZWFjaChmdW5jdGlvbigpe3ZhciBhPXBhcnNlRmxvYXQodGhpcy52YWx1ZSk7Yis9aXNOYU4oYSk\/MDphfSksYn1mdW5jdGlvbiBnKGEsYil7Zm9yKHZhciBjIGluIGIpYT1hLnJlcGxhY2UoIiN7IitjKyJ9IixiW2NdKTtyZXR1cm4gaihhKX1mdW5jdGlvbiBoKGIpe3ZhciBjPWEoYiksZD1hLnZhbGlkaXR5LnNldHRpbmdzLmRlZmF1bHRGaWVsZE5hbWU7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjLmF0dHIoInRpdGxlIikmJmMuYXR0cigidGl0bGUiKS5sZW5ndGgpZD1jLmF0dHIoInRpdGxlIik7ZWxzZSBpZigvXihbQS1aMC05XVthLXpdKikrJC8udGVzdChiLmlkKSlkPWIuaWQucmVwbGFjZSgvKFtBLVowLTldKVthLXpdKi9nLCIgJCYiKTtlbHNlIGlmKC9eW2EtejAtOV9dKiQvLnRlc3QoYi5pZCkpe2Zvcih2YXIgZT1iLmlkLnNwbGl0KCJfIiksZj0wO2Y8ZS5sZW5ndGg7KytmKWVbZl09aihlW2ZdKTtkPWUuam9pbigiICIpfXJldHVybiBkfWZ1bmN0aW9uIGooYSl7cmV0dXJuIGEuc3Vic3RyaW5nP2Euc3Vic3RyaW5nKDAsMSkudG9VcHBlckNhc2UoKSthLnN1YnN0cmluZygxLGEubGVuZ3RoKTphfWEudmFsaWRpdHk9e3NldHRpbmdzOmEuZXh0ZW5kKHtvdXRwdXRNb2RlOiJsYWJlbCIsY3NzQ2xhc3M6ImVycm9yIixzY3JvbGxUbzohMSxtb2RhbEVycm9yc0NsaWNrYWJsZTohMCxkZWZhdWx0RmllbGROYW1lOiJUaGlzIGZpZWxkIixlbGVtZW50U3VwcG9ydDoiOnRleHQsIFt0eXBlPXRlbF0sIFt0eXBlPWVtYWlsXSwgW3R5cGU9ZGF0ZV0sIDpwYXNzd29yZCwgdGV4dGFyZWEsIHNlbGVjdCwgOnJhZGlvLCA6Y2hlY2tib3giLGFyZ1RvU3RyaW5nOmZ1bmN0aW9uKGEpe3JldHVybiBhLmdldERhdGU\/YS5nZXRNb250aCgpKzErIi8iK2EuZ2V0RGF0ZSgpKyIvIithLmdldEZ1bGxZZWFyKCk6YX19LHt9KSxwYXR0ZXJuczp7aW50ZWdlcjovXlxkKyQvLGRhdGU6L14oKDA\/XGQpfCgxWzAxMl0pKVwvKFswMTJdP1xkfDMwfDMxKVwvXGR7MSw0fSQvLGVtYWlsOi9eKCgoW2Etel18XGR8WyEjXCQlJidcKlwrXC1cLz1cP1xeX2B7XHx9fl18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKyhcLihbYS16XXxcZHxbISNcJCUmJ1wqXCtcLVwvPVw\/XF5fYHtcfH1+XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkrKSopfCgoXHgyMikoKCgoXHgyMHxceDA5KSooXHgwZFx4MGEpKT8oXHgyMHxceDA5KSspPygoW1x4MDEtXHgwOFx4MGJceDBjXHgwZS1ceDFmXHg3Zl18XHgyMXxbXHgyMy1ceDViXXxbXHg1ZC1ceDdlXXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KFxcKFtceDAxLVx4MDlceDBiXHgwY1x4MGQtXHg3Zl18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSkpKigoKFx4MjB8XHgwOSkqKFx4MGRceDBhKSk\/KFx4MjB8XHgwOSkrKT8oXHgyMikpKUAoKChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKihbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKVwuKSsoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4\/JC9pLHVzZDovXlwkPyhcZHsxLDN9LD8oXGR7M30sPykqXGR7M30oXC5cZHswLDJ9KT98XGR7MSwzfShcLlxkezAsMn0pP3xcLlxkezEsMn0\/KSQvLHVybDovXihodHRwcz98ZnRwKTpcL1wvKCgoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6KSpAKT8oKChcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pKXwoKChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKihbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKVwuKSsoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4\/KSg6XGQqKT8pKFwvKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDp8QCkrKFwvKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKSopKik\/KT8oXD8oKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKXxbXHVFMDAwLVx1RjhGRl18XC98XD8pKik\/KFwjKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDp8QCl8XC98XD8pKik\/JC9pLG51bWJlcjovXlsrLV0\/KFxkKyhcLlxkKik\/fFwuXGQrKShbRWVdXGQrKT8kLyx6aXA6L15cZHs1fSgtXGR7NH0pPyQvLHBob25lOi9eWzItOV1cZHsyfS1cZHszfS1cZHs0fSQvLGd1aWQ6L14oXHs\/KFswLTlhLWZBLUZdKXs4fS0oKFswLTlhLWZBLUZdKXs0fS0pezN9KFswLTlhLWZBLUZdKXsxMn1cfT8pJC8sdGltZTEyOi9eWzAxXT9cZDpbMC01XVxkP1xzP1thQXBQXVwuP1ttTV1cLj8kLyx0aW1lMjQ6L14oMjB8MjF8MjJ8MjN8WzAxXVxkfFxkKSgoWzpdWzAtNV1cZCl7MSwyfSkkLyxub25IdG1sOi9eW148Pl0qJC99LG1lc3NhZ2VzOnthcmVhY29kZToiI3tmaWVsZH0gYWNjZXB0cyBvbmx5IGxvY2FsIGFyZWEgY29kZXMiLHJlcXVpcmU6IiN7ZmllbGR9IGlzIHJlcXVpcmVkLiIsbWF0Y2g6IiN7ZmllbGR9IGlzIGluIGFuIGludmFsaWQgZm9ybWF0LiIsaW50ZWdlcjoiI3tmaWVsZH0gbXVzdCBiZSBhIHBvc2l0aXZlLCB3aG9sZSBudW1iZXIuIixkYXRlOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIGRhdGUuIixlbWFpbDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYW4gZW1haWwuIix1c2Q6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgVVMgRG9sbGFyIGFtb3VudC4iLHVybDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBVUkwuIixudW1iZXI6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgbnVtYmVyLiIsemlwOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIHppcGNvZGUgIyMjIyMgb3IgIyMjIyMtIyMjIy4iLHBob25lOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIHBob25lIG51bWJlciAjIyMtIyMjLSMjIyMuIixndWlkOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIGd1aWQgbGlrZSB7M0YyNTA0RTAtNEY4OS0xMUQzLTlBMEMtMDMwNUU4MkMzMzAxfS4iLHRpbWUyNDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSAyNCBob3VyIHRpbWU6IDIzOjAwLiIsdGltZTEyOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIDEyIGhvdXIgdGltZTogMTI6MDAgQU0vUE0iLGxlc3NUaGFuOiIje2ZpZWxkfSBtdXN0IGJlIGxlc3MgdGhhbiAje21heH0uIixsZXNzVGhhbk9yRXF1YWxUbzoiI3tmaWVsZH0gbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gI3ttYXh9LiIsZ3JlYXRlclRoYW46IiN7ZmllbGR9IG11c3QgYmUgZ3JlYXRlciB0aGFuICN7bWlufS4iLGdyZWF0ZXJUaGFuT3JFcXVhbFRvOiIje2ZpZWxkfSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAje21pbn0uIixyYW5nZToiI3tmaWVsZH0gbXVzdCBiZSBiZXR3ZWVuICN7bWlufSBhbmQgI3ttYXh9LiIsdG9vTG9uZzoiI3tmaWVsZH0gY2Fubm90IGJlIGxvbmdlciB0aGFuICN7bWF4fSBjaGFyYWN0ZXJzLiIsdG9vU2hvcnQ6IiN7ZmllbGR9IGNhbm5vdCBiZSBzaG9ydGVyIHRoYW4gI3ttaW59IGNoYXJhY3RlcnMuIixub25IdG1sOiIje2ZpZWxkfSBjYW5ub3QgY29udGFpbiBIVE1MIGNoYXJhY3RlcnMuIixhbHBoYWJldDoiI3tmaWVsZH0gY29udGFpbnMgZGlzYWxsb3dlZCBjaGFyYWN0ZXJzLiIsbWluQ2hhckNsYXNzOiIje2ZpZWxkfSBjYW5ub3QgaGF2ZSBtb3JlIHRoYW4gI3ttaW59ICN7Y2hhckNsYXNzfSBjaGFyYWN0ZXJzLiIsbWF4Q2hhckNsYXNzOiIje2ZpZWxkfSBjYW5ub3QgaGF2ZSBsZXNzIHRoYW4gI3ttaW59ICN7Y2hhckNsYXNzfSBjaGFyYWN0ZXJzLiIsZXF1YWw6IlZhbHVlcyBkb24ndCBtYXRjaC4iLGRpc3RpbmN0OiJBIHZhbHVlIHdhcyByZXBlYXRlZC4iLHN1bToiVmFsdWVzIGRvbid0IGFkZCB0byAje3N1bX0uIixzdW1NYXg6IlRoZSBzdW0gb2YgdGhlIHZhbHVlcyBtdXN0IGJlIGxlc3MgdGhhbiAje21heH0uIixzdW1NaW46IlRoZSBzdW0gb2YgdGhlIHZhbHVlcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAje21pbn0uIixyYWRpb0NoZWNrZWQ6IlRoZSBzZWxlY3RlZCB2YWx1ZSBpcyBub3QgdmFsaWQuIixnZW5lcmljOiJJbnZhbGlkLiJ9LGNoYXJDbGFzc2VzOnthbHBoYWJldGljYWw6L1x3L2csbnVtZXJpYzovXGQvZyxhbHBoYW51bWVyaWM6L1tBLVphLXowLTldL2csc3ltYm9sOi9bXkEtWmEtejAtOV0vZ30sb3V0cHV0czp7fSxzZXR1cDpmdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5zZXR0aW5ncz1hLmV4dGVuZCh0aGlzLnNldHRpbmdzLGIpLHRoaXN9LHJlcG9ydDpudWxsLGlzVmFsaWRhdGluZzpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5yZXBvcnR9LHN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0mJnRoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdLnN0YXJ0JiZ0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXS5zdGFydCgpLHRoaXMucmVwb3J0PXtlcnJvcnM6MCx2YWxpZDohMH19LGVuZDpmdW5jdGlvbigpe3ZhciBhPXRoaXMucmVwb3J0fHx7ZXJyb3JzOjAsdmFsaWQ6ITB9O3JldHVybiB0aGlzLnJlcG9ydD1udWxsLHRoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdJiZ0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXS5lbmQmJnRoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdLmVuZChhKSxhfSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuc3RhcnQoKSx0aGlzLmVuZCgpfX0sYS5mbi5leHRlbmQoe3ZhbGlkaXR5OmZ1bmN0aW9uKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZigiZm9ybSI9PXRoaXMudGFnTmFtZS50b0xvd2VyQ2FzZSgpKXt2YXIgYz1udWxsOyJzdHJpbmciPT10eXBlb2YgYj9jPWZ1bmN0aW9uKCl7YShiKS5yZXF1aXJlKCl9OmlzRnVuY3Rpb24oYikmJihjPWIpLGImJmEodGhpcykub24oInN1Ym1pdCIsZnVuY3Rpb24oKXtyZXR1cm4gYS52YWxpZGl0eS5zdGFydCgpLGMoKSxhLnZhbGlkaXR5LmVuZCgpLnZhbGlkfSl9fSl9LHJlcXVpcmU6ZnVuY3Rpb24oYyl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihiKXt2YXIgYz1hKGIpLnZhbCgpLGQ9dHJpbShjKS5sZW5ndGg7cmV0dXJuIGR9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmVxdWlyZSl9LG1hdGNoOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGR8fChkPWEudmFsaWRpdHkubWVzc2FnZXMubWF0Y2gsInN0cmluZyI9PXR5cGVvZiBjJiZhLnZhbGlkaXR5Lm1lc3NhZ2VzW2NdJiYoZD1hLnZhbGlkaXR5Lm1lc3NhZ2VzW2NdKSksInN0cmluZyI9PXR5cGVvZiBjJiYoYz1hLnZhbGlkaXR5LnBhdHRlcm5zW2NdKSxiKHRoaXMsaXNGdW5jdGlvbihjKT9mdW5jdGlvbihhKXtyZXR1cm4hYS52YWx1ZS5sZW5ndGh8fGMoYS52YWx1ZSl9OmZ1bmN0aW9uKGEpe3JldHVybiBjLmdsb2JhbCYmKGMubGFzdEluZGV4PTApLCFhLnZhbHVlLmxlbmd0aHx8Yy50ZXN0KGEudmFsdWUpfSxkKX0scmFuZ2U6ZnVuY3Rpb24oYyxlLGYpe3JldHVybiBiKHRoaXMsYy5nZXRUaW1lJiZlLmdldFRpbWU\/ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IERhdGUoYS52YWx1ZSk7cmV0dXJuIGI+PW5ldyBEYXRlKGMpJiZiPD1uZXcgRGF0ZShlKX06Yy5zdWJzdHJpbmcmJmUuc3Vic3RyaW5nJiZCaWc\/ZnVuY3Rpb24oYSl7dmFyIGI9bmV3IEJpZyhhLnZhbHVlKTtyZXR1cm4gYi5ncmVhdGVyVGhhbk9yRXF1YWxUbyhuZXcgQmlnKGMpKSYmYi5sZXNzVGhhbk9yRXF1YWxUbyhuZXcgQmlnKGUpKX06ZnVuY3Rpb24oYSl7dmFyIGI9cGFyc2VGbG9hdChhLnZhbHVlKTtyZXR1cm4gYj49YyYmYjw9ZX0sZnx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhbmdlLHttaW46YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhjKSxtYXg6YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhlKX0pKX0sZ3JlYXRlclRoYW46ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGMuZ2V0VGltZT9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IERhdGUoYS52YWx1ZSk+Y306Yy5zdWJzdHJpbmcmJkJpZz9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEJpZyhhLnZhbHVlKS5ncmVhdGVyVGhhbihuZXcgQmlnKGMpKX06ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlRmxvYXQoYS52YWx1ZSk+Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmdyZWF0ZXJUaGFuLHttaW46YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhjKX0pKX0sZ3JlYXRlclRoYW5PckVxdWFsVG86ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGMuZ2V0VGltZT9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IERhdGUoYS52YWx1ZSk+PWN9OmMuc3Vic3RyaW5nJiZCaWc\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBCaWcoYS52YWx1ZSkuZ3JlYXRlclRoYW5PckVxdWFsVG8obmV3IEJpZyhjKSl9OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUZsb2F0KGEudmFsdWUpPj1jfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuZ3JlYXRlclRoYW5PckVxdWFsVG8se21pbjphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGMpfSkpfSxsZXNzVGhhbjpmdW5jdGlvbihjLGQpe3JldHVybiBiKHRoaXMsYy5nZXRUaW1lP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgRGF0ZShhLnZhbHVlKTxjfTpjLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgQmlnKGEudmFsdWUpLmxlc3NUaGFuKG5ldyBCaWcoYykpfTpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnZhbHVlKTxjfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMubGVzc1RoYW4se21heDphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGMpfSkpfSxsZXNzVGhhbk9yRXF1YWxUbzpmdW5jdGlvbihjLGQpe3JldHVybiBiKHRoaXMsYy5nZXRUaW1lP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgRGF0ZShhLnZhbHVlKTw9Y306Yy5zdWJzdHJpbmcmJkJpZz9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEJpZyhhLnZhbHVlKS5sZXNzVGhhbk9yRXF1YWxUbyhuZXcgQmlnKGMpKX06ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlRmxvYXQoYS52YWx1ZSk8PWN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5sZXNzVGhhbk9yRXF1YWxUbyx7bWF4OmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyl9KSl9LG1heExlbmd0aDpmdW5jdGlvbihjLGQpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYSl7cmV0dXJuIGEudmFsdWUubGVuZ3RoPD1jfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMudG9vTG9uZyx7bWF4OmN9KSl9LG1pbkxlbmd0aDpmdW5jdGlvbihjLGQpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYSl7cmV0dXJuIGEudmFsdWUubGVuZ3RoPj1jfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMudG9vU2hvcnQse21pbjpjfSkpfSxhbHBoYWJldDpmdW5jdGlvbihjLGQpe3ZhciBlPVtdO3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYSl7Zm9yKHZhciBiPTA7YjxhLnZhbHVlLmxlbmd0aDsrK2IpaWYoLTE9PWMuaW5kZXhPZihhLnZhbHVlLmNoYXJBdChiKSkpcmV0dXJuIGUucHVzaChhLnZhbHVlLmNoYXJBdChiKSksITE7cmV0dXJuITB9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5hbHBoYWJldCx7Y2hhcnM6ZS5qb2luKCIsICIpfSkpfSxtaW5DaGFyQ2xhc3M6ZnVuY3Rpb24oYyxkLGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYyYmKGM9Yy50b0xvd2VyQ2FzZSgpLGEudmFsaWRpdHkuY2hhckNsYXNzZXNbY10mJihjPWEudmFsaWRpdHkuY2hhckNsYXNzZXNbY10pKSxiKHRoaXMsZnVuY3Rpb24oYSl7cmV0dXJuKGEudmFsdWUubWF0Y2goYyl8fFtdKS5sZW5ndGg+PWR9LGV8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5taW5DaGFyQ2xhc3Mse21pbjpkLGNoYXJDbGFzczpjfSkpfSxtYXhDaGFyQ2xhc3M6ZnVuY3Rpb24oYyxkLGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgYyYmKGM9Yy50b0xvd2VyQ2FzZSgpLGEudmFsaWRpdHkuY2hhckNsYXNzZXNbY10mJihjPWEudmFsaWRpdHkuY2hhckNsYXNzZXNbY10pKSxiKHRoaXMsZnVuY3Rpb24oYSl7cmV0dXJuKGEudmFsdWUubWF0Y2goYyl8fFtdKS5sZW5ndGg8PWR9LGV8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5tYXhDaGFyQ2xhc3Mse21heDpkLGNoYXJDbGFzczpjfSkpfSxwYXNzd29yZDpmdW5jdGlvbihiKXtyZXR1cm4gYj1hLmV4dGVuZCh7YWxwaGFiZXQ6bnVsbCxtaW5MZW5ndGg6MCxtYXhMZW5ndGg6MCxtaW5TeW1ib2w6MCxtaW5BbHBoYWJldGljYWw6MCxtaW5OdW1lcmljOjAsbWluQWxwaGFOdW1lcmljOjB9LGIpLGIuYWxwaGFiZXQmJnRoaXMuYWxwaGFiZXQoYi5hbHBoYWJldCksYi5taW5MZW5ndGgmJnRoaXMubWluTGVuZ3RoKGIubWluTGVuZ3RoKSxiLm1heExlbmd0aCYmdGhpcy5tYXhMZW5ndGgoYi5tYXhMZW5ndGgpLGIubWluU3ltYm9sJiZ0aGlzLm1pbkNoYXJDbGFzcygic3ltYm9sIixiLm1pblN5bWJvbCksYi5taW5BbHBoYWJldGljYWwmJnRoaXMubWluQ2hhckNsYXNzKCJhbHBoYWJldGljYWwiLGIubWluQWxwaGFiZXRpY2FsKSxiLm1pbk51bWVyaWMmJnRoaXMubWluQ2hhckNsYXNzKCJudW1lcmljIixiLm1pbk51bWVyaWMpLGIubWluQWxwaGFudW1lcmljJiZ0aGlzLm1pbkNoYXJDbGFzcygiYWxwaGFudW1lcmljIixiLm1pbkFscGhhbnVtZXJpYyksdGhpc30sbm9uSHRtbDpmdW5jdGlvbihjKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGIpe3JldHVybiBhLnZhbGlkaXR5LnBhdHRlcm5zLm5vbkh0bWwudGVzdChiLnZhbHVlKX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5ub25IdG1sKX0sZXF1YWw6ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxmPWZ1bmN0aW9uKGEpe3JldHVybiBhfSxnPWEudmFsaWRpdHkubWVzc2FnZXMuZXF1YWw7aWYoZC5sZW5ndGgpe2lzRnVuY3Rpb24oYik\/KGY9Yiwic3RyaW5nIj09dHlwZW9mIGMmJihnPWMpKToic3RyaW5nIj09dHlwZW9mIGImJihnPWIpO3ZhciBoPWEubWFwKGQsZnVuY3Rpb24oYSl7cmV0dXJuIGYoYS52YWx1ZSl9KSxqPWhbMF0saz0hMDtmb3IodmFyIGwgaW4gaCloW2xdIT1qJiYoaz0hMSk7a3x8KGUoZCxnKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSl9cmV0dXJuIHRoaXN9LGRpc3RpbmN0OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksZj1mdW5jdGlvbihhKXtyZXR1cm4gYX0sZz1hLnZhbGlkaXR5Lm1lc3NhZ2VzLmRpc3RpbmN0LGg9W10saT0hMDtpZihkLmxlbmd0aCl7aXNGdW5jdGlvbihiKT8oZj1iLCJzdHJpbmciPT10eXBlb2YgYyYmKGc9YykpOiJzdHJpbmciPT10eXBlb2YgYiYmKGc9Yik7Zm9yKHZhciBqPWEubWFwKGQsZnVuY3Rpb24oYSl7cmV0dXJuIGYoYS52YWx1ZSl9KSxrPTA7azxqLmxlbmd0aDsrK2spaWYoaltrXS5sZW5ndGgpe2Zvcih2YXIgbD0wO2w8aC5sZW5ndGg7KytsKWhbbF09PWpba10mJihpPSExKTtoLnB1c2goaltrXSl9aXx8KGUoZCxnKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSl9cmV0dXJuIHRoaXN9LHN1bTpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO3JldHVybiBkLmxlbmd0aCYmYiE9ZihkKSYmKGUoZCxjfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuc3VtLHtzdW06Yn0pKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSksdGhpc30sc3VtTWF4OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7cmV0dXJuIGQubGVuZ3RoJiZiPGYoZCkmJihlKGQsY3x8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnN1bU1heCx7bWF4OmJ9KSksdGhpcy5yZWR1Y3Rpb249YShbXSkpLHRoaXN9LHN1bU1pbjpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO3JldHVybiBkLmxlbmd0aCYmYjxmKGQpJiYoZShkLGN8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5zdW1NaW4se21pbjpifSkpLHRoaXMucmVkdWN0aW9uPWEoW10pKSx0aGlzfSxyYWRpb0NoZWNrZWQ6ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtkLmlzKCI6cmFkaW8iKSYmZC5maW5kKCI6Y2hlY2tlZCIpLnZhbCgpIT1iJiZlKGQsY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5yYWRpb0NoZWNrZWQpfSxyYWRpb05vdENoZWNrZWQ6ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtkLmlzKCI6cmFkaW8iKSYmZC5maWx0ZXIoIjpjaGVja2VkIikudmFsKCk9PWImJmUoZCxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhZGlvQ2hlY2tlZCl9LGNoZWNrYm94Q2hlY2tlZDpmdW5jdGlvbihiKXt2YXIgYz0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtjLmlzKCI6Y2hlY2tib3giKSYmIWMuaXMoIjpjaGVja2VkIikmJihlKGMsYnx8YS52YWxpZGl0eS5tZXNzYWdlcy5yYWRpb0NoZWNrZWQpLGMucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKX0sYXNzZXJ0OmZ1bmN0aW9uKGMsZCl7dmFyIGY9dGhpcy5yZWR1Y3Rpb258fHRoaXM7aWYoZi5sZW5ndGgpe2lmKGlzRnVuY3Rpb24oYykpcmV0dXJuIGIodGhpcyxjLGR8fGEudmFsaWRpdHkubWVzc2FnZXMuZ2VuZXJpYyk7Y3x8KGUoZixkfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLmdlbmVyaWMpLHRoaXMucmVkdWN0aW9uPWEoW10pKX1yZXR1cm4gdGhpc319KSxhLmZuLmV4dGVuZCh7dmFsaWRBbGxvck5vbmU6ZnVuY3Rpb24oKXt2YXIgYj0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxjPSEwO3JldHVybiBiLmVhY2goZnVuY3Rpb24oKXtpZigiIiE9YSh0aGlzKS52YWwoKSlyZXR1cm4gYi5lYWNoKGZ1bmN0aW9uKCl7IiI9PWEodGhpcykudmFsKCkmJihjPSExLGQodGhpcyxnKCIiLHtmaWVsZDpoKHRoaXMpfSkpKX0pLCExfSksdGhpc30scmVxdWlyZVdpdGhXYXRlcm1hcms6ZnVuY3Rpb24oYyl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihiKXt2YXIgYz1mdW5jdGlvbihhKXtyZXR1cm4gMDxhLnRyaW0oKS5sZW5ndGh9LGQ9YShiKS5hdHRyKCJhbHQiKSxlPWEoYikudmFsKCkudHJpbSgpO3JldHVybiBkP2QhPWUmJmMoZSk6YyhlKX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5yZXF1aXJlKX0scmVxdWlyZVBvc3RhbENvZGU6ZnVuY3Rpb24oYyl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihiKXt2YXIgYz1hKGIpLnZhbCgpLnJlcGxhY2UoL1xzL2csIiIpLnJlcGxhY2UoL1teQS16MC05XS9nLCIwIikudG9VcHBlckNhc2UoKTtpZigwPT1jLmxlbmd0aClyZXR1cm4hMDtpZig1PmMubGVuZ3RoKXJldHVybiExO2lmKFppcFJlZ2V4PWEudmFsaWRpdHkucGF0dGVybnMuemlwLG51bGwhPWMubWF0Y2goWmlwUmVnZXgpKXJldHVybiEwO3JldHVybiBDYW5hZGFQb3N0UmVnZXg9L1tBQkNFR0hKS0xNTlBSU1RWV1hZWl1bMC05XVtBQkNFR0hKS0xNTlBSU1RWV1hZWl1bMC05XVtBQkNFR0hKS0xNTlBSU1RWV1hZWl1bMC05XS8sbnVsbCE9Yy5tYXRjaChDYW5hZGFQb3N0UmVnZXgpJiYoYShiKS52YWwoYy5zdWJzdHJpbmcoMCwzKSsiICIrYy5zdWJzdHJpbmcoMyw2KSksITApfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJlcXVpcmUpfSx2YWxpZEVtYWlsQWRkcmVzczpmdW5jdGlvbihjKXt2YXIgZD10aGlzLGU9WyIuY29tIiwiLmNhIiwiLm5ldCIsIi5iaXoiLCIucXVlYmVjIiwiLmNvIiwiLmluZm8iLCIubW9iaSIsIi5vcmciLCIuaW5jIl07MT09YSgiI0FETUlOX0dFTkVSQUxfQkxPQ0tfRlJfRE9NQUlOX0NIRUNLIikubGVuZ3RoJiYiMSIhPWEoIiNBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIpLnZhbCgpJiZlLnB1c2goIi5mciIpO3ZhciBmPWIodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gcnVsZT1hLnZhbGlkaXR5LnBhdHRlcm5zLmVtYWlsLHJ1bGUuZ2xvYmFsJiYocnVsZS5sYXN0SW5kZXg9MCksIWIudmFsdWUubGVuZ3RofHxydWxlLnRlc3QoYi52YWx1ZSl9LCIiKTtyZXR1cm4gZj9iKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9YShiKS52YWwoKS50b0xvd2VyQ2FzZSgpLGQ9ITE7aWYoIWMubGVuZ3RoKXJldHVybiEwO1N0cmluZy5wcm90b3R5cGUuZW5kc1dpdGh8fChTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRoPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXMubGVuZ3RoLWEubGVuZ3RoO3JldHVybiAwPD1iJiZ0aGlzLmxhc3RJbmRleE9mKGEpPT09Yn0pO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKWMudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChlW2ZdKSYmKGQ9ITApO2lmKCExPT1kKXJldHVybiExO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyKXt2YXIgZz0hMDtyZXR1cm4gZW1haWxIYW5kbGVyLnZhbGlkYXRlRW1haWwoYykuZG9uZShmdW5jdGlvbihhKXsiaW52YWxpZCI9PT1hLnN0YXR1cyYmKGc9ITEpfSksZ31yZXR1cm4hMH0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5lbWFpbCk6Y3x8YS52YWxpZGl0eS5tZXNzYWdlcy5lbWFpbH0scmFkaW9PcHRpb25DaG9zZW46ZnVuY3Rpb24oYil7dmFyIGM9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksZD17fTtmb3IodmFyIGYgaW4gYy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9YSh0aGlzKS5hdHRyKCJuYW1lIik7InVuZGVmaW5lZCI9PXR5cGVvZiBkW2JdJiYoZFtiXT1bXSksZFtiXS5wdXNoKHRoaXMpfSksZCkwPT1hKGRbZl0pLmZpbHRlcigiOnJhZGlvIikuZmlsdGVyKCI6Y2hlY2tlZCIpLmxlbmd0aCYmZShhKGRbZl0pLGJ8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKX0sb25lT3JNb3JlQ2hlY2tlZDpmdW5jdGlvbihiKXt2YXIgYz0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtjLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1jLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiEhYSh0aGlzKS5pcygiW3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQiKX0pLmxlbmd0aDswPT1kJiYoYy5wYXJlbnRzKCJ1bCIpLmZpcnN0KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGUoYyxifHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhZGlvQ2hlY2tlZCkpfSl9LHZhbGlkYXRlTW9iaWxlOmZ1bmN0aW9uKGMpe2Zvcih2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KSxlPSEwLGY9IiIsZz1hKGQpLmxlbmd0aCxoPVs0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiw1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLDYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMl0saj0wO2o8PWc7aisrKWlmKGo8ZylmKz1hKGEoZClbal0pLnZhbCgpO2Vsc2V7aWYoZj1mLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpLDA9PT1mLmxlbmd0aClyZXR1cm4gYihkLCgpPT4hMCxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKTsiMSI9PWZbMF0mJihmPWYuc3Vic3RyaW5nKDEpKTt2YXIgaz1wYXJzZUludChmLnN1YnN0cmluZygwLDMpKTthLmFqYXgoe3VybDoiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL3NpdGVzL3N2Yy92YWxpZGF0ZVBob25lTnVtYmVyLnBocCIsdHlwZToiR0VUIixhc3luYzohMSx0aW1lb3V0OjJlMyxkYXRhVHlwZToianNvbiIsZGF0YTp7cGhvbmU6Zixtb2JpbGU6MSxhcmVhY29kZToiQ0EifX0pLmRvbmUoZnVuY3Rpb24oZil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBmLmlzT2spITE9PT1mLnBob25lTnVtYmVySXNWYWxpZCYmKGU9ITEpO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLmluZGV4T2YmJi0xPT1oLmluZGV4T2YoaykpcmV0dXJuITE7cmV0dXJuIGIoZCxmdW5jdGlvbigpe3JldHVybiBlfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKX0pLmZhaWwoZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGguaW5kZXhPZiYmLTE9PWguaW5kZXhPZihrKSYmKGU9ITEpLGIoZCxmdW5jdGlvbigpe3JldHVybiBlfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKX0pfX0sdmFsaWRhdGVQaG9uZTpmdW5jdGlvbihjKXtmb3IodmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksZT0hMCxmPSIiLGc9YShkKS5sZW5ndGgsaD1bNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0Myw2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDJdLGo9MDtqPD1nO2orKylpZihqPGcpZis9YShhKGQpW2pdKS52YWwoKTtlbHNle2lmKGY9Zi5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlciYmdGhpcy5oYXNDbGFzcygicmVxdWlyZWQiKSYmKGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeT0hMCksMD09PWYubGVuZ3RoKXJldHVybiBiKGQsKCk9PiEwLGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpOyIxIj09ZlswXSYmKGY9Zi5zdWJzdHJpbmcoMSkpO3ZhciBrPXBhcnNlSW50KGYuc3Vic3RyaW5nKDAsMykpO2EuYWpheCh7dXJsOiJodHRwczovL3Jlc3QuZDJjbWVkaWEuY2Evc2l0ZXMvc3ZjL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwIix0eXBlOiJHRVQiLGFzeW5jOiExLHRpbWVvdXQ6MmUzLGRhdGFUeXBlOiJqc29uIixkYXRhOntwaG9uZTpmLGFyZWFjb2RlOiJDQSJ9fSkuZG9uZShmdW5jdGlvbihmKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGYuaXNPaykhMT09PWYucGhvbmVOdW1iZXJJc1ZhbGlkJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXImJmVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSYmZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKyssZT0hMSk7ZWxzZSBpZigidW5kZWZpbmVkIiE9dHlwZW9mIGguaW5kZXhPZiYmLTE9PWguaW5kZXhPZihrKSlyZXR1cm4hMTtyZXR1cm4gYihkLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpfSkuZmFpbChmdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgaC5pbmRleE9mJiYtMT09aC5pbmRleE9mKGspJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXImJmVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSYmZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKyssZT0hMSksYihkLGZ1bmN0aW9uKCl7cmV0dXJuIGV9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucGhvbmUpfSl9fX0pfSkoalF1ZXJ5KSxmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGEpe3JldHVybiBhLmF0dHIoImlkIikubGVuZ3RoP2EuYXR0cigiaWQiKTphLmF0dHIoIm5hbWUiKX1hLnZhbGlkaXR5Lm91dHB1dHMubGFiZWw9e3N0YXJ0OmZ1bmN0aW9uKCl7YSgibGFiZWwuIithLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKS5yZW1vdmUoKX0sZW5kOmZ1bmN0aW9uKGIpeyFiLnZhbGlkJiZhLnZhbGlkaXR5LnNldHRpbmdzLnNjcm9sbFRvJiYobG9jYXRpb24uaGFzaD1hKCJsYWJlbC4iK2EudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MrIjplcSgwKSIpLmF0dHIoImZvciIpKX0scmFpc2U6ZnVuY3Rpb24oYyxkKXt2YXIgZT0ibGFiZWwuIithLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyJbZm9yPSciK2IoYykrIiddIjthKGUpLmxlbmd0aD9hKGUpLnRleHQoZCk6YSgiPGxhYmVsLz4iKS5hdHRyKCJmb3IiLGIoYykpLmFkZENsYXNzKGEudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MpLnRleHQoZCkub24oImNsaWNrIixmdW5jdGlvbigpe2MubGVuZ3RoJiZjWzBdLnNlbGVjdCgpfSkuaW5zZXJ0QWZ0ZXIoYyl9LHJhaXNlQWdncmVnYXRlOmZ1bmN0aW9uKGIsYyl7Yi5sZW5ndGgmJnRoaXMucmFpc2UoYShiLmdldChiLmxlbmd0aC0xKSksYyl9fX0oalF1ZXJ5KSxmdW5jdGlvbihhKXthLnZhbGlkaXR5Lm91dHB1dHMubW9kYWw9e3N0YXJ0OmZ1bmN0aW9uKCl7YSgiLnZhbGlkaXR5LW1vZGFsLW1zZyIpLnJlbW92ZSgpfSxlbmQ6ZnVuY3Rpb24oYil7IWIudmFsaWQmJmEudmFsaWRpdHkuc2V0dGluZ3Muc2Nyb2xsVG8mJihsb2NhdGlvbi5oYXNoPWEoIi52YWxpZGl0eS1tb2RhbC1tc2c6ZXEoMCkiKS5hdHRyKCJpZCIpKX0scmFpc2U6ZnVuY3Rpb24oYixjKXtpZihiLmxlbmd0aCl7dmFyIGQ9Yi5vZmZzZXQoKSxlPWIuZ2V0KDApLGY9e2xlZnQ6cGFyc2VJbnQoZC5sZWZ0K2Iud2lkdGgoKSs0LDEwKSsicHgiLHRvcDpwYXJzZUludChkLnRvcC0xMCwxMCkrInB4In07YSgiPGRpdi8+IikuYWRkQ2xhc3MoInZhbGlkaXR5LW1vZGFsLW1zZyIpLmNzcyhmKS50ZXh0KGMpLm9uKCJjbGljayIsYS52YWxpZGl0eS5zZXR0aW5ncy5tb2RhbEVycm9yc0NsaWNrYWJsZT9mdW5jdGlvbigpe2EodGhpcykucmVtb3ZlKCl9Om51bGwpLmFwcGVuZFRvKCJib2R5Iil9fSxyYWlzZUFnZ3JlZ2F0ZTpmdW5jdGlvbihiLGMpe2IubGVuZ3RoJiZ0aGlzLnJhaXNlKGEoYi5nZXQoYi5sZW5ndGgtMSkpLGMpfX19KGpRdWVyeSksZnVuY3Rpb24oYSl7dmFyIGI9W107YS52YWxpZGl0eS5vdXRwdXRzLnN1bW1hcnk9e3N0YXJ0OmZ1bmN0aW9uKCl7YSgiLnZhbGlkaXR5LWVycm9uZW91cyIpLnJlbW92ZUNsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSxiPVtdfSxlbmQ6ZnVuY3Rpb24oKXtpZihhKCIudmFsaWRpdHktc3VtbWFyeS1jb250YWluZXIiKS5oaWRlKCkuZmluZCgidWwiKS5odG1sKCIiKSxiLmxlbmd0aCl7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aDsrK2MpYSgiPGxpLz4iKS50ZXh0KGJbY10pLmFwcGVuZFRvKCIudmFsaWRpdHktc3VtbWFyeS1jb250YWluZXIgdWwiKTthKCIudmFsaWRpdHktc3VtbWFyeS1jb250YWluZXIiKS5zaG93KCksYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YSgiLnZhbGlkaXR5LWVycm9uZW91czplcSgwKSIpLmF0dHIoImlkIikpfX0scmFpc2U6ZnVuY3Rpb24oYSxjKXtiLnB1c2goYyk7dmFyIGQ9YS5jbG9zZXN0KCJmb3JtIikuaGFzQ2xhc3MoImpxdHJhbnNmb3JtZG9uZSIpO2EucGFyZW50KCkuaXMoImRpdiIpJiZkPyhhLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSxhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSk6YS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9LHJhaXNlQWdncmVnYXRlOmZ1bmN0aW9uKGEsYil7dGhpcy5yYWlzZShhLGIpfSxjb250YWluZXI6ZnVuY3Rpb24oKXtkb2N1bWVudC53cml0ZSgiPGRpdiBjbGFzcz1cInZhbGlkaXR5LXN1bW1hcnktY29udGFpbmVyXCI+VGhlIGZvcm0gZGlkbid0IHN1Ym1pdCBmb3IgdGhlIGZvbGxvd2luZyByZWFzb24ocyk6PHVsPjwvdWw+PC9kaXY+Iil9fX0oalF1ZXJ5KSxmdW5jdGlvbigpe3ZhciBhPWZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9OyQudmFsaWRpdHkub3V0cHV0cy5xdWlja21haWw9e3N0YXJ0OmZ1bmN0aW9uKCl7fSxlbmQ6ZnVuY3Rpb24oKXt9LHJhaXNlOmZ1bmN0aW9uKGEpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS5XYXRlcm1hcmsmJiJ1bmRlZmluZWQiIT1hLmF0dHIoImFsdCIpKXthLldhdGVybWFyayhhLmF0dHIoImFsdCIpLCIjRkZCQUJBIik7dmFyIGI9ZnVuY3Rpb24oKXthLldhdGVybWFyayhhLmF0dHIoImFsdCIpKX19ZWxzZXthLmNzcygiYmFja2dyb3VuZC1jb2xvciIsIiNmZjdlNzkiKTt2YXIgYj1mdW5jdGlvbigpe3RtcD10bXA\/dG1wOiJ0cmFuc3BhcmVudCIsYS5jc3MoImJhY2tncm91bmQtY29sb3IiLHRtcCl9fSQoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGIpfSxjb250YWluZXI6ZnVuY3Rpb24oKXt9fSwkLnZhbGlkaXR5Lm91dHB1dHMucG9wdXA9e3N0YXJ0OmZ1bmN0aW9uKCl7JChkb2N1bWVudCkub2ZmKCJ0b3VjaHN0YXJ0IG1vdXNlZG93biIsIi52YWxpZGl0eS1lcnJvbmVvdXMiLGEpfSxlbmQ6ZnVuY3Rpb24oYil7cmV0dXJuIGIudmFsaWR8fCQoZG9jdW1lbnQpLm9uKCJ0b3VjaHN0YXJ0IG1vdXNlZG93biIsIi52YWxpZGl0eS1lcnJvbmVvdXMiLGEpLGJ9LHJhaXNlOmZ1bmN0aW9uKGEpe3ZhciBiPWEuY2xvc2VzdCgiZm9ybSIpLmhhc0NsYXNzKCJqcXRyYW5zZm9ybWRvbmUiKTthLnBhcmVudCgpLmlzKCJkaXYiKSYmYj8oYS5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksYS5wYXJlbnQoKS5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIikpOmEuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfSxyYWlzZUFnZ3JlZ2F0ZTpmdW5jdGlvbihhKXtjb25zb2xlLmxvZyhhKSxhLmlzKCI6cmFkaW8iKSYmYS5pcygiLmpxVHJhbnNmb3JtSGlkZGVuIikmJmEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfX19KCksZnVuY3Rpb24oYSl7YS52YWxpZGl0eS5vdXRwdXRzLmNzc09ubHk9e3N0YXJ0OmZ1bmN0aW9uKCl7YShhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKS5yZW1vdmVDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKX0sZW5kOmZ1bmN0aW9uKGIpeyFiLnZhbGlkJiZhLnZhbGlkaXR5LnNldHRpbmdzLnNjcm9sbFRvJiYobG9jYXRpb24uaGFzaD1hKGEudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MrIjplcSgwKSIpLmF0dHIoImlkIikpfSxyYWlzZTpmdW5jdGlvbihiKXthKGIpLmFkZENsYXNzKGEudmFsaWRpdHkuc2V0dGluZ3MuY3NzQ2xhc3MpfSxyYWlzZUFnZ3JlZ2F0ZTpmdW5jdGlvbihiLGMpe2IubGVuZ3RoJiZ0aGlzLnJhaXNlKGEoYi5nZXQoYi5sZW5ndGgtMSkpLGMpfX19KGpRdWVyeSk7Ci8qKiAvbS9qcy9tYWluLmpzICoqLwp2YXIgX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDE2OjMwOjE1IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxNTozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxNDozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxMzozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxMjozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxMTozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxMDozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwOTozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwODozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAwNzozMDoxMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDY6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDU6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDQ6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDM6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDI6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDA6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMjM6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMjI6MzA6MTMiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDIxOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDIwOjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE5OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE4OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE2OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE1OjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE0OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDEzOjMwOjE0IjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxMjozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxMTozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxMDozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwOTozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwODozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwNzozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwNjozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwNTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwNDozMDoxMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDM6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDI6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDE6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDA6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMjM6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMjI6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMjE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMjA6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMTk6MzA6MTMiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE4OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE2OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE1OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE0OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDEzOjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDEyOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDExOjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDEwOjMwOjE3IjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwOTozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwODozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwNzozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwNjozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwNTozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwNDozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwMzozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwMjozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwMTozMDoxMiI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMDA6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMjM6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMjI6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMjE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMjA6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTk6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTg6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTc6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTY6MzA6MTgiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDE1OjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDE0OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDEzOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDEyOjMwOjE2IjsidXNlIHN0cmljdCI7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOwokanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07JGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBjPWFbYl07aWYoYyYmYy5NYXRoPT1NYXRoKXJldHVybiBjfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTsKJGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTskanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgYz0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1jKXJldHVybiBhW2JdO2M9YVtjXTtyZXR1cm4gdm9pZCAwIT09Yz9jOmFbYl19OwokanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OyRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe2M9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGQ9MDtkPGEubGVuZ3RoLTE7ZCsrKXt2YXIgZT1hW2RdO2lmKCEoZSBpbiBjKSlyZXR1cm47Yz1jW2VdfWE9YVthLmxlbmd0aC0xXTtkPWNbYV07Yj1iKGQpO2IhPWQmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYyxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPWEuc3BsaXQoIi4iKTthPTE9PT1lLmxlbmd0aDtkPWVbMF07ZD0hYSYmZCBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIGs9MDtrPGUubGVuZ3RoLTE7aysrKXt2YXIgaD1lW2tdO2lmKCEoaCBpbiBkKSlyZXR1cm47ZD1kW2hdfWU9ZVtlLmxlbmd0aC0xXTtjPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1jP2RbZV06bnVsbDtiPWIoYyk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxlLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1jJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0mJihjPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChlKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtjKyIkIitlKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGQsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goYyl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBjPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGMpO2lmKGMuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWMudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGMudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGMpe2M\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2NdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihjKXtyZXR1cm57dmFsdWU6Yyxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsYyl7dHJ5e3ZhciBkPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGQpO2lmKCFkLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxkO3ZhciBlPWQudmFsdWV9Y2F0Y2goayl7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhrKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtjLmNhbGwodGhpcy5jb250ZXh0XyxlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihkKXtyZXR1cm4gYS5uZXh0KGQpfWZ1bmN0aW9uIGMoZCl7cmV0dXJuIGEudGhyb3coZCl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGQsZSl7ZnVuY3Rpb24gayhoKXtoLmRvbmU\/ZChoLnZhbHVlKTpQcm9taXNlLnJlc29sdmUoaC52YWx1ZSkudGhlbihiLGMpLnRoZW4oayxlKX1rKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKalF1ZXJ5Lm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4galF1ZXJ5fTtqUXVlcnkuZXZlbnQuc3BlY2lhbC50b3VjaHN0YXJ0PXtzZXR1cDpmdW5jdGlvbihhLGIsYyl7Yi5pbmNsdWRlcygibm9QcmV2ZW50RGVmYXVsdCIpP3RoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYyx7cGFzc2l2ZTohMX0pOnRoaXMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsYyx7cGFzc2l2ZTohMH0pfX07alF1ZXJ5LmV4cHIucHNldWRvcy5yZWFsbHlWaXNpYmxlPWZ1bmN0aW9uKGEpe3RyeXtpZihhPT1kb2N1bWVudC5ib2R5KXJldHVybiEwO3ZhciBiPWpRdWVyeShhKTtyZXR1cm4gYi5pcygiOnZpc2libGUiKSYmImhpZGRlbiIhPT1iLmNzcygidmlzaWJpbGl0eSIpJiYwPGIucGFyZW50KCI6cmVhbGx5VmlzaWJsZSIpLmxlbmd0aH1jYXRjaChjKXtyZXR1cm4gY29uc29sZS5sb2coYy5tZXNzYWdlLGMpLCExfX07CkFycmF5LnByb3RvdHlwZS5maW5kfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQXJyYXkucHJvdG90eXBlLCJmaW5kIix7dmFsdWU6ZnVuY3Rpb24oYSxiKXtpZihudWxsPT10aGlzKXRocm93IFR5cGVFcnJvcignInRoaXMiIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTt2YXIgYz1PYmplY3QodGhpcyksZD1jLmxlbmd0aD4+PjA7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IFR5cGVFcnJvcigicHJlZGljYXRlIG11c3QgYmUgYSBmdW5jdGlvbiIpO2Zvcih2YXIgZT0wO2U8ZDspe3ZhciBrPWNbZV07aWYoYS5jYWxsKGIsayxlLGMpKXJldHVybiBrO2UrK319LGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOwp2YXIgaXNGdW5jdGlvbj1hPT4iZnVuY3Rpb24iPT09dHlwZW9mIGEsdHJpbT1hPT5hLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKSxkZWJ1Zz1mdW5jdGlvbigpe2lmKGRlYnVnRW5hYmxlZCgpKXt2YXIgYT1jb25zb2xlLGI9YXJndW1lbnRzOyJmdW5jdGlvbiI9PXR5cGVvZiBhLmxvZyYmYS5sb2cuYXBwbHkoYSxiKX19LGRlYnVnRW5hYmxlZD1mdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmxvY2F0aW9uLmhvc3QsYj1kb2N1bWVudC5jb29raWUubWF0Y2goL3Rlc3Rpbmc9KFteO10rKS9pKTtyZXR1cm4oYj1udWxsPT1iPyExOmJbMV0pfHwvXihkZWFsZXJ8ZGVtbyl8ZDJjbWVkaWFcLmNhJC8udGVzdChhKSYmIm9mZiIhPWJ9LGVuYWJsZURlYnVnPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInRlc3RpbmciLCJvbiIpfSxkaXNhYmxlRGVidWc9ZnVuY3Rpb24oKXtDb29raWVzLnNldCgidGVzdGluZyIsIm9mZiIpfSxBbGVydEJhcj1mdW5jdGlvbihhKXt2YXIgYj1hLnNlY3Rpb25zLnRvTG93ZXJDYXNlKCksCmM9YS5jdXJyZW50LnRvTG93ZXJDYXNlKCksZD0kKCIuaGVhZGVyLXdyYXBwZXIiKS5sZW5ndGg\/JCgiLmhlYWRlci13cmFwcGVyIik6JCgiI21haW5EaXYiKSxlPSQoIiNhbGVydE1zZ0NvbnRhaW5lciIpLGs9JCgiYm9keSIpLGg9JCgiLkFkZGVkVG9wTGlua0RpdiIpLG49bmV3IERhdGU7bi5zZXRUaW1lKG4uZ2V0VGltZSgpKzM2RTUpO3ZhciB4PWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoImFsZXJ0TWVzc2FnZUNsb3NlZCIsMSxuLCIvIik7ZS5oaWRlKCk7ZC5jc3Moe21hcmdpblRvcDowfSk7ay5jc3MoImJhY2tncm91bmQtcG9zaXRpb24teSIsIiIpOzA8aC5sZW5ndGgmJmguY3NzKCJtYXJnaW4tdG9wIiwiIil9Oy0xPGIuaW5kZXhPZihjKSYmIUNvb2tpZXMuZ2V0KCJhbGVydE1lc3NhZ2VDbG9zZWQiKSYmKGUuY3NzKHtiYWNrZ3JvdW5kQ29sb3I6YS5jb2xvcn0pLCQoIi5jbG9zZSIsZSkub24oImNsaWNrIix4KSxkLmNzcygibWFyZ2luLXRvcCIsZS5oZWlnaHQoKSsicHgiKSwKay5jc3MoeyJiYWNrZ3JvdW5kLXBvc2l0aW9uLXkiOmUuaGVpZ2h0KCkrInB4In0pLDA8aC5sZW5ndGgmJmguY3NzKCJtYXJnaW4tdG9wIixlLmhlaWdodCgpKyJweCIpLGUuc2hvdygpKX07ZnVuY3Rpb24gTGVhZEdlbkFERihhLGIsYyxkLGUsayxoLG4pe2lmKHR5cGVvZiBjYXJwcm9vZkhhbmRsZXIpcmV0dXJuIGNhcnByb29mSGFuZGxlci5sZWFkR2VuLmFwcGx5KGNhcnByb29mSGFuZGxlcixhcmd1bWVudHMpfQpmdW5jdGlvbiBydW5JbWFnZVBvcHVwRmlyZXdvcmtzKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBGaXJld29ya1RpbWVyJiYoaW1hZ2VGaXJld29ya3M9ITAsRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIkZGRkZGRiIsMjAwLDIwMCksRmlyZXdvcmtUaW1lcigiYmdJbWFnZSIsIkZGMDAwMCIsMzgwLDI1MCwxRTMpLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCIwMGZmMTEiLDkwLDE3MCwyRTMpLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCI0NGNkZmYiLDMyMCwyNTAsM0UzLDAsLjgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtydW5JbWFnZVBvcHVwRmlyZXdvcmtzKCl9LDFFNCkpfQpmdW5jdGlvbiBoYW5kbGVBY3Rpb25DbGljayhhKXthPWF8fHdpbmRvdy5ldmVudDthPWEuY3VycmVudFRhcmdldHx8YS5zcmNFbGVtZW50O3ZhciBiPXdpbmRvdy5sb2NhdGlvbi5ocmVmLnN1YnN0cmluZyh3aW5kb3cubG9jYXRpb24uaHJlZi5sYXN0SW5kZXhPZigiLyIpKzEpLGM9InVzZWQiLGQ9IiI7aWYoLTE9PXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi1pZCIpKXtkPWIucmVwbGFjZSgiLmh0bWwiLCIiKS5zcGxpdCgiLSIpO2lmKDM+ZC5sZW5ndGh8fC0xPGIuaW5kZXhPZigic2VhcmNoIil8fC0xPGIuaW5kZXhPZigiZmluZC0iKXx8LTE8Yi5pbmRleE9mKCJyZWNoZXJjaGUiKXx8LTE8Yi5pbmRleE9mKCJwcml4LSIpfHwtMTxiLmluZGV4T2YoInByaWNlLSIpfHwtMTxiLmluZGV4T2YoImVzc2Fpcy1yb3V0aWVyLSIpfHwtMTxiLmluZGV4T2YoInRlc3QtZHJpdmUtIil8fC0xPGIuaW5kZXhPZigidmVoaWN1bGUtZWNoYW5nZS0iKXx8LTE8Yi5pbmRleE9mKCJ0cmFkZS1pbi0iKXx8Ci0xPGIuaW5kZXhPZigicG5ldXMtcGllY2VzLSIpfHwtMTxiLmluZGV4T2YoImNhci1wYXJ0cy0iKXx8LTE8Yi5pbmRleE9mKCJyZW5kZXotdm91cy0iKXx8LTE8Yi5pbmRleE9mKCItYXBwb2ludG1lbnQiKXx8LTE8Yi5pbmRleE9mKCJjcmVkaXQiKXx8LTE8Yi5pbmRleE9mKCJmaW5hbmNlbWVudCIpfHwtMTxiLmluZGV4T2YoInByZS1hcHBybyIpfHwtMTxiLmluZGV4T2YoIm5ldy13ZXN0Iil8fC0xPGIuaW5kZXhPZigiY29uZmlkZW50aWFsaXRlIil8fC0xPGIuaW5kZXhPZigicHJpdmFjeS1wb2xpY3kiKXx8LTE8Yi5pbmRleE9mKCJ0ZXJtZXMtZXQtY29uZGl0aW9ucyIpfHwtMTxiLmluZGV4T2YoInRlcm1zLWFuZC1jb25kaXRpb25zIikpZD0iLmh0bWwiO2Vsc2V7dmFyIGU9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOyJ1bmRlZmluZWQiPT10eXBlb2YgZFsyXXx8ZSE9ZFsyXSYmZSsxIT1kWzJdfHwoYz0ibmV3Iik7ZD0iLyIrYn1kPWEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5yZXBsYWNlKCIuaHRtbCIsCmQpfWVsc2V7c3dpdGNoKGEuZ2V0QXR0cmlidXRlKCJhY3Rpb24iKSl7Y2FzZSAiVGVzdERyaXZlQWN0aW9uQm94IjpkPSQoIiN0ZXN0RHJpdmVGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIlByaWNlQWN0aW9uQm94IjpkPSQoIiNwcmljZVJlcXVlc3RGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIkV2YWxBY3Rpb25Cb3giOmQ9JCgiI2V2YWxDYXJGb2xkZXIiKS52YWwoKStiO2JyZWFrO2Nhc2UgIkZpbmFuY2VBY3Rpb25Cb3giOmQ9JCgiI0ZpbmFuY2VGb2xkZXIiKS52YWwoKStiO2JyZWFrO2RlZmF1bHQ6InVuZGVmaW5lZCIhPXR5cGVvZiAkKGEpLmF0dHIoImZvbGRlciIpP2Q9JChhKS5hdHRyKCJmb2xkZXIiKToidW5kZWZpbmVkIiE9dHlwZW9mICQoYSkuYXR0cigidGFyZ2V0dXJpIikmJihkPSQoYSkuYXR0cigidGFyZ2V0dXJpIikpfUNvb2tpZXMuc2V0KCJmcm9tZGV0YWlsc3BhZ2UiLCIxIixudWxsLCIvIil9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZudWxsIT0KZCYmMDxkLmxlbmd0aCl7Yj1kMmNtZWRpYS5odG1sRmlsZSghMSwhMCk7ZT1iLnNwbGl0KCItIik7dmFyIGs9IiIsaD0iIixuPSIiOzA8ZS5sZW5ndGgmJihrPWVbMF0pOzE8ZS5sZW5ndGgmJihoPWVbMV0pOzI8ZS5sZW5ndGgmJihuPWVbMl0pOzA8ay5sZW5ndGgmJjA8aC5sZW5ndGgmJjA8bi5sZW5ndGgmJiFpc05hTihuKSYmND09bi50b1N0cmluZygpLmxlbmd0aCYmLTE8ZC5pbmRleE9mKCIuaHRtIikmJihlPWEuZ2V0QXR0cmlidXRlKCJmb2xkZXIiKSxkPSJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9ZT9lOmQuc3Vic3RyaW5nKDAsZC5sYXN0SW5kZXhPZigiLyIpKzEpLGQ9ZC5yZXBsYWNlKCIuaHRtbCIsIi8iKStiKyIuaHRtbCIpOyQoYSkuaGFzQ2xhc3MoInRyYWRlaW5MaW5rIikmJigwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJ0cmFkZWludmFsdWVzIil8fDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpKT8Kc2hvd1RyYWRlSW5Qb3B1cChhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikpOigibmV3Ij09YyYmKGQ9ZC5yZXBsYWNlKCJvY2Nhc2lvbiIsIm5ldWYiKS5yZXBsYWNlKCJ1c2VkIiwibmV3IikpLHdpbmRvdy5sb2NhdGlvbi5ocmVmPWQpfX0KZnVuY3Rpb24gb3BlbkZpbmFuY2VNdWx0aXN0ZXBGb3JtT25DdXJyZW50UGFnZShhLGIsYyxkLGUsayxoKXthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtiPyQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKGIpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoJCgiLmJyYW5kZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYkKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVtYWtlIikudmFsKCkpO2M\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKGMpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikudmFsKCQoIi5tb2RlbGVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmCiQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVtb2RlbCIpLnZhbCgpKTtkPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKGQpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoJCgiLnllYXJlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIiNwaG9uZW15ZWFyIikudmFsKCkpO2U\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKGUpOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIik\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCIiKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJiQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpKTsKaz8kKCIjdG9wY2FyaWRNdWx0aXN0ZXBGb3JtIikudmFsKGspOiJORVdDQVJERVRBSUxTIj09JCgiYm9keSIpLmF0dHIoImlkIikmJiQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoIiIpO2gmJihoLnNlbmRUbyYmJCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9fRU1BSUwiKS52YWwoaC5zZW5kVG8pLGguc2VuZFRvQWRmJiYkKCIjRklOQU5DRV9GT1JNX1NFTkRUT0FERl9FTUFJTCIpLnZhbChoLnNlbmRUb0FkZiksaC5kZWFsZXJOYW1lJiYkKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiKS52YWwoaC5kZWFsZXJOYW1lKSk7YT0iZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIjskKCIjRmluYW5jZV9Gb3JtVHlwZSIpLmxlbmd0aCYmIm11bHRpc3RlcEluc3RhbnQiPT0kKCIjRmluYW5jZV9Gb3JtVHlwZSIpLnZhbCgpJiYkKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGE9ImZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiKTsKJCgiIyIrYSkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSl9ZnVuY3Rpb24gb3BlblNob3dyb29tQ29udGFjdFBvcHVwKGEsYixjLGQpe2EucHJldmVudERlZmF1bHQoKTthLnN0b3BQcm9wYWdhdGlvbigpO2VtYWlsSGFuZGxlci5tYWtlPWI7JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKGIpO2VtYWlsSGFuZGxlci5tb2RlbD1jOyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoYyk7ZW1haWxIYW5kbGVyLnllYXI9ZDskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoZCk7JCgiI2NvbnRhY3Rwb3B1cCIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9dmFyIGQyY21lZGlhPWQyY21lZGlhfHx7fTsKZDJjbWVkaWEuc2Nyb2xsVG89ZnVuY3Rpb24oYSxiLGMpeyJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9MUUzKTsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPTApOyQoImh0bWwsIGJvZHkiKS5hbmltYXRlKHtzY3JvbGxUb3A6JChhKS5vZmZzZXQoKS50b3AtYn0sYyk7cmV0dXJuITF9OwpkMmNtZWRpYS51cmw9e19zYW5pdGl6ZTohMCxkZXNhbml0aXplOmZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpcmV0dXJuIGEucmVwbGFjZSgvXy9nLCItIik7aWYoIm9iamVjdCI9PT10eXBlb2YgYSl7Zm9yKHZhciBiIGluIGEpYVtiXT10aGlzLmRlc2FuaXRpemUoYVtiXSk7cmV0dXJuIGF9fSxnZW5lcmF0ZTpmdW5jdGlvbigpe3ZhciBhPSIiO3RoaXMuX3Nhbml0aXplJiYoYXJndW1lbnRzPXRoaXMuc2FuaXRpemUoYXJndW1lbnRzKSk7Zm9yKGk9MDtpPGFyZ3VtZW50cy5sZW5ndGgtMTtpKyspYSs9YXJndW1lbnRzW2ldKyItIjtyZXR1cm4gYSthcmd1bWVudHNbaV0rIi5odG1sIn0scGFyc2U6ZnVuY3Rpb24oKXt1cmw9ZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LlVSTCk7c3RyUGFyYW09dXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoIi8iKSk7b2JqUGFyYW09e21ha2U6bnVsbCxtb2RlbDpudWxsLHllYXI6bnVsbCxpZDpudWxsfTtmb3VuZD0hMTsKdmFyIGE7bnVsbCE9KGE9c3RyUGFyYW0ubWF0Y2goL15cLygyMFswLTldezJ9fDE5WzAtOV17Mn0pLShbXi1dKy1bXi1cLl0rKSguKlwuaHRtbCkvKSkmJihzdHJQYXJhbT0iLyIrYVsyXSsiLSIrYVsxXSthWzNdKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKC4qKS0oXGR7NH0pKC1pZChcZCopKT8uaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLG9ialBhcmFtLnllYXI9YVszXSxvYmpQYXJhbS5pZD1hWzVdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKC4qKS0oXGR7NH0pKC1jXGQqKT8uaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLG9ialBhcmFtLnllYXI9YVszXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLShcZHs0fSkuaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9CmFbMV0sb2JqUGFyYW0ueWVhcj1hWzJdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKiktKFteLl0qKS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLG9ialBhcmFtLm1vZGVsPWFbMl0sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS5odG1sLyk7Zm91bmR8fG51bGw9PT1hfHwob2JqUGFyYW0ubWFrZT1hWzFdLGZvdW5kPSEwKTt0aGlzLl9zYW5pdGl6ZSYmKG9ialBhcmFtPXRoaXMuZGVzYW5pdGl6ZShvYmpQYXJhbSkpO3JldHVybiBvYmpQYXJhbX0sc2FuaXRpemU6ZnVuY3Rpb24oYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYSlyZXR1cm4gYS5yZXBsYWNlKC8tL2csIl8iKS5yZXBsYWNlKC9bJyJdL2csIiIpO2lmKCJvYmplY3QiPT09dHlwZW9mIGEpe2Zvcih2YXIgYiBpbiBhKWFbYl09dGhpcy5zYW5pdGl6ZShhW2JdKTtyZXR1cm4gYX19LHNhbml0aXplUmVmZXJlcjpmdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKC9bJyJgKCk8PlxbXF17fXwhXS9nLAoiIil9fTtkMmNtZWRpYS5nZXRIdHRwVGV4dD1mdW5jdGlvbigpe3JldHVybiJodHRwczoiPT1kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCYmJCgiI3RvcGRlcGxveW1lbnR0eXBlIikubGVuZ3RoJiYibGl2ZSI9PSQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLnZhbCgpPyJodHRwcyI6Imh0dHAifTtkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXI9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhPyIiOmEuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrYS5zbGljZSgxKX07ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQ9ZnVuY3Rpb24oYSl7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhPyIiOmEuc3BsaXQoIiAiKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXtjPWQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlcihjKTtyZXR1cm4gYj9iKyIgIitjOmN9LCIiKX07CmQyY21lZGlhLnNhZmVTdHJpbmc9ZnVuY3Rpb24oYSl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yi50ZXh0Q29udGVudD1hO3JldHVybiBiLmlubmVyVGV4dH07CmQyY21lZGlhLmh0bWxGaWxlPWZ1bmN0aW9uKGEsYil7dmFyIGM9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5sZW5ndGgmJi0xPHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guaW5kZXhPZigicGF0aD0iKT93aW5kb3cubG9jYXRpb24uc2VhcmNoOndpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtjPWMuc3Vic3RyaW5nKGMubGFzdEluZGV4T2YoIi8iKSsxKTtjPWQyY21lZGlhLnNhZmVTdHJpbmcoYyk7dHJ5e3ZhciBkPWRlY29kZVVSSUNvbXBvbmVudChjKX1jYXRjaChrKXt2YXIgZT17IiVDMCI6IiZBZ3JhdmU7IiwiJUMxIjoiJkFhY3V0ZTsiLCIlQzIiOiImQWNpcmM7IiwiJUMzIjoiJkF0aWxkZTsiLCIlQzQiOiImQXVtbDsiLCIlQzUiOiImQXJpbmc7IiwiJUM2IjoiJkFFbGlnOyIsIiVDNyI6IiZDY2VkaWw7IiwiJUM4IjoiJkVncmF2ZTsiLCIlQzkiOiImRWFjdXRlOyIsIiVDQSI6IiZFY2lyYzsiLCIlQ0IiOiImRXVtbDsiLCIlQ0MiOiImSWdyYXZlOyIsIiVDRCI6IiZJYWN1dGU7IiwiJUNFIjoiJkljaXJjOyIsCiIlQ0YiOiImSXVtbDsiLCIlRDAiOiImRVRIOyIsIiVEMSI6IiZOdGlsZGU7IiwiJUQyIjoiJk9ncmF2ZTsiLCIlRDMiOiImT2FjdXRlOyIsIiVENCI6IiZPY2lyYzsiLCIlRDUiOiImT3RpbGRlOyIsIiVENiI6IiZPdW1sOyIsIiVEOCI6IiZPc2xhc2g7IiwiJUQ5IjoiJlVncmF2ZTsiLCIlREEiOiImVWFjdXRlOyIsIiVEQiI6IiZVY2lyYzsiLCIlREMiOiImVXVtbDsiLCIlREQiOiImWWFjdXRlOyIsIiVERSI6IiZUSE9STjsiLCIlREYiOiImc3psaWc7IiwiJUUwIjoiJmFncmF2ZTsiLCIlRTEiOiImYWFjdXRlOyIsIiVFMiI6IiZhY2lyYzsiLCIlRTMiOiImYXRpbGRlOyIsIiVFNCI6IiZhdW1sOyIsIiVFNSI6IiZhcmluZzsiLCIlRTYiOiImYWVsaWc7IiwiJUU3IjoiJmNjZWRpbDsiLCIlRTgiOiImZWdyYXZlOyIsIiVFOSI6IiZlYWN1dGU7IiwiJUVBIjoiJmVjaXJjOyIsIiVFQiI6IiZldW1sOyIsIiVFQyI6IiZpZ3JhdmU7IiwiJUVEIjoiJmlhY3V0ZTsiLCIlRUUiOiImaWNpcmM7IiwKIiVFRiI6IiZpdW1sOyIsIiVGMCI6IiZldGg7IiwiJUYxIjoiJm50aWxkZTsiLCIlRjIiOiImb2dyYXZlOyIsIiVGMyI6IiZvYWN1dGU7IiwiJUY0IjoiJm9jaXJjOyIsIiVGNSI6IiZvdGlsZGU7IiwiJUY2IjoiJm91bWw7IiwiJUY3IjoiJmRpdmlkZTsiLCIlRjgiOiImb3NsYXNoOyIsIiVGOSI6IiZ1Z3JhdmU7IiwiJUZBIjoiJnVhY3V0ZTsiLCIlRkIiOiImdWNpcmM7IiwiJUZDIjoiJnV1bWw7IiwiJUZEIjoiJnlhY3V0ZTsiLCIlRkUiOiImdGhvcm47IiwiJUZGIjoiJnl1bWw7In07ZD1jLnJlcGxhY2UoLyVbMC05QS1GXXsyfS9pZyxmdW5jdGlvbihoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGVbaF0pcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChoKTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bi50ZXh0Q29udGVudD1lW2hdO3JldHVybiBuLmlubmVyVGV4dH0pfWQ9ZC5zdWJzdHJpbmcoMCxkLmluZGV4T2YoIi5odG0iKSk7YSYmKGQ9ZC5yZXBsYWNlKC8gL2csCiJfIikucmVwbGFjZSgvJy9nLCIiKS5yZXBsYWNlKCIuaHRtbCIsIiIpKTtudWxsIT0oYT1kLm1hdGNoKC9eKDE5WzAtOV17Mn18MjBbMC05XXsyfSktKFteLV0rLVteLV0rKSguKikkLykpJiYoZD1hWzJdKyItIithWzFdK2FbM10sIkVOR0xJU0giPT0oIkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkVOR0xJU0giOiJGUkVOQ0giKSYmYiYmKGQ9YVsxXSsiLSIrYVsyXSthWzNdKSk7cmV0dXJuIGR9O2QyY21lZGlhLmlzSG9tZXBhZ2U9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7cmV0dXJuIi8iPT1hfHwiL2VuZy8iPT1hfHwiL2ZyLyI9PWF9O2QyY21lZGlhLnBhZ2VEZXBhcnRtZW50PWZ1bmN0aW9uKCl7dmFyIGE9JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk7cmV0dXJuIk9USEVSIj09YSYmZDJjbWVkaWEuaXNIb21lcGFnZSgpPyJIT01FUEFHRSI6YX07CnZhciBqc19kMmNfZ2V0X3ZhbD1qc19kMmNfZ2V0X3ZhbHx8ZnVuY3Rpb24oYSl7dHJ5e3JldHVybihlbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSk\/ZWwudmFsdWU6IiJ9Y2F0Y2goYil7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiU3lzdGVtIGZhaWxlZCB3aGlsZSByZXRyaWV2aW5nIHJlcGxhY2VtZW50IHZhbHVlOiAiK2IubWVzc2FnZSxiKSxhfX07U3RyaW5nLnByb3RvdHlwZS5ub0QyQ1JlcGxhY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU9mKCl9OwpkMmNCR0NsaWNrPWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7JC5leHRlbmQoYixhKTt0aGlzLnNldD1mdW5jdGlvbihjKXsidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSExKTt2YXIgZD1iLmJnSW1nVXJsLGU9Yi5iZ0ltZ1BhdGgsaz1iLmJnSW1nRml4ZWQsaD1iLmJnSW1nUmVzcG9uc2l2ZSxuPWIubWFrZSx4PWRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lLnJlcGxhY2UoLy0vZywiIiksdj0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk6ImZyZW5jaCIsZj0iIixnPSExOzAhPWMmJihuPWMudG9Mb3dlckNhc2UoKSk7dmFyIG09Yz0iIjtuP2UuaGFzT3duUHJvcGVydHkobik\/KGM9ZVtuXSxtPWtbbl0raFtuXSxnPSEwKTplLmhhc093blByb3BlcnR5KCJhbGwiKT8oYz1lLmFsbCxtPWsuYWxsK2guYWxsLGc9ITApOmUuaGFzT3duUHJvcGVydHkodikmJihjPWVbdl0sbT1rW3ZdK2hbdl0pOmUuaGFzT3duUHJvcGVydHkodikmJgowPT1nJiYoYz1lW3ZdLG09a1t2XStoW3ZdKTtjJiYoYi5iZ0ltZz1jLnNwbGl0KCIvIikucG9wKCksJCgiYm9keSIpLmF0dHIoInN0eWxlIiwiYmFja2dyb3VuZC1pbWFnZTogdXJsKCciK2MrIicpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyIrbSkpO2Zvcih2YXIgbCBpbiBkKXtpZigtMSE9eC5pbmRleE9mKGwseCkpe2Y9ZFtsXTticmVha31pZihsPT12KXtmPWRbbF07YnJlYWt9fTA9PWYubGVuZ3RoJiYoZC5oYXNPd25Qcm9wZXJ0eShuKT9mPWRbbl06ZC5oYXNPd25Qcm9wZXJ0eSgiYWxsIikmJihmPWQuYWxsKSk7MDxmLmxlbmd0aCYmKGQ9JCh3aW5kb3cpLndpZHRoKCkvMi0kKCIud3JhcHBlciIpLndpZHRoKCkvMixlPSQod2luZG93KS53aWR0aCgpLzIrJCgiLndyYXBwZXIiKS53aWR0aCgpLzIsJCgiI2JnQ2xpY2sxIikucmVtb3ZlKCksJCgiI2JnQ2xpY2syIikucmVtb3ZlKCksJCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD0nYmdDbGljazEnIHN0eWxlPSd6LWluZGV4OjEwMDtjdXJzb3I6cG9pbnRlcjt3aWR0aDoiKwpkKyJweDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDtsZWZ0OjBweDt0b3A6MHB4Oyc+PC9kaXY+IiksJCgiYm9keSIpLmFwcGVuZCgiPGRpdiBpZD0nYmdDbGljazInIHN0eWxlPSd6LWluZGV4OjEwMDtjdXJzb3I6cG9pbnRlcjt3aWR0aDoiK2QrInB4O2hlaWdodDoxMDAlO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6IitlKyJweDt0b3A6MHB4Oyc+PC9kaXY+IiksJCgiI2JnQ2xpY2sxIikub24oImNsaWNrIixmdW5jdGlvbigpe2IucmVkaXJlY3QoZil9KSwkKCIjYmdDbGljazIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5yZWRpcmVjdChmKX0pKX07dGhpcy5yZXNldD1mdW5jdGlvbihjKXtiLnNldCgpfTt0aGlzLnJlZGlyZWN0PWZ1bmN0aW9uKGMpeyJsaXZlIj09Yi5kZXBsb3ltZW50VHlwZSYmKGdhVHJhY2soIl90cmFja0V2ZW50IiwiQ2xpcXVlcyIsIkltYWdlLWRlLWZvbmQiLGIuYmdJbWcsMSksImZ1bmN0aW9uIj09dHlwZW9mIGIuZDJjRXZlbnQmJmIuZDJjRXZlbnQuY2FsbChiLApiLmJnSW1nKSk7d2luZG93Lm9wZW4oYyl9OyQod2luZG93KS5vbigicmVzaXplIixiLnJlc2V0KTtyZXR1cm4gdGhpc307dmFyIGluamVjdEdvb2dsZU1hcHNLZXk9ZnVuY3Rpb24oYSl7bGV0IGI9bnVsbDtyZXR1cm4gZnVuY3Rpb24oYyl7aWYoYilyZXR1cm4gYyhiKTthLmFqYXgoIi9hamF4L2dldEdvb2dsZU1hcHNLZXkiKS5kb25lKGZ1bmN0aW9uKGQpe2I9KGQua2V5P2Qua2V5OiIiKS5yZXBsYWNlKC9bXkEtejAtOV8tXS9nLCIiKTtjKGIpfSl9fShqUXVlcnkpOwpmdW5jdGlvbiByaHNQcm9tb0ltYWdlKGEpe3ZhciBiPXRoaXM7Yi5kYXRhPWE7dmFyIGM9W10sZD0tMTthPXdpbmRvdy5sb2NhdGlvbjthPWRlY29kZVVSSUNvbXBvbmVudChhLnBhdGhuYW1lK2Euc2VhcmNoKS50b0xvd2VyQ2FzZSgpO2ZvcihzZWFyY2ggaW4gYi5kYXRhKWlmKCJkZWZhdWx0Ij09c2VhcmNofHwtMSE9YS5pbmRleE9mKGRlY29kZVVSSUNvbXBvbmVudCgoc2VhcmNoKyIiKS50b0xvd2VyQ2FzZSgpKSkpZm9yKGk9MDtpPGIuZGF0YVtzZWFyY2hdLmxlbmd0aDtpKyspYy5wdXNoKGIuZGF0YVtzZWFyY2hdW2ldKTtiLnJvdGF0ZT1mdW5jdGlvbigpeysrZD5jLmxlbmd0aC0xJiYoZD0wKTt2YXIgZT1jW2RdLGs9JCgiPGltZyAvPiIpLmF0dHIoe3NyYzplLmksc3R5bGU6IndpZHRoOjEwMCU7IG1heC13aWR0aDoyODBweDsgYm9yZGVyLXJhZGl1czogNXB4OyBjdXJzb3I6cG9pbnRlcjsiLGFsdDoiIn0pOyQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5odG1sKGspO251bGwhPQplLnUmJjA8ZS51Lmxlbmd0aCYmJCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLmF0dHIoIm9uY2xpY2siLCJ3aW5kb3cubG9jYXRpb24gPSAnIitlLnUrIiciKTskKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuc2hvdygpOzEhPWMubGVuZ3RoJiZzZXRUaW1lb3V0KGIucm90YXRlLGUuZGVsYXkpfTswPGMubGVuZ3RoJiZiLnJvdGF0ZSgpfWZ1bmN0aW9uIGNsZWFuVGV4dChhKXthPWEucmVwbGFjZSgvW1x4NjBdL2csIiciKTthPWEucmVwbGFjZSgv4oCZL2csIiciKTthPWEucmVwbGFjZSgvYC9nLCInIik7cmV0dXJuIGEucmVwbGFjZSgvW1x1MjAxOV3igJkvZywiJyIpfQpmdW5jdGlvbiBlbmNvZGVUZXh0KGEpe3ZhciBiPWE7dHJ5e2I9JC5iYXNlNjQuZW5jb2RlKGEpfWNhdGNoKGspe2NvbnNvbGUubG9nKGsubWVzc2FnZSxrKTthPSIiO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7YysrKXt2YXIgZD1iLmNoYXJBdChjKSxlPWQuY2hhckNvZGVBdCgwKTtpZig0NzxlJiY1OD5lfHw2NDxlJiY5MT5lfHw5NjxlJiYxMjM+ZSlhKz1kO2Vsc2UgdHJ5eyQuYmFzZTY0LmVuY29kZShkKSxhKz1kfWNhdGNoKGgpe319Yj0kLmJhc2U2NC5lbmNvZGUoYSl9cmV0dXJuIGJ9ZnVuY3Rpb24gY2xlYW5BbmRFbmNvZGVUZXh0KGEpe3RyeXt2YXIgYj0iIjtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEpcmV0dXJuIiI7Yj0ic3RyaW5nIiE9dHlwZW9mIGE\/YS50b1N0cmluZygpOmE7Yj1jbGVhblRleHQoYik7cmV0dXJuIGVuY29kZVRleHQoYil9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKGMubWVzc2FnZSxjKSxhfX0KZnVuY3Rpb24gRXhQaG9uZShhKXtzd2l0Y2goYS50eXBlKXtjYXNlICJtb3VzZWVudGVyIjokKCIuZXh0ZW5kZWRQaG9uZSIpLnNob3coKTticmVhaztjYXNlICJtb3VzZWxlYXZlIjokKCIuZXh0ZW5kZWRQaG9uZSIpLmhpZGUoKX19ZnVuY3Rpb24gZ2V0UmVzaXplZEltYWdlcygpe2RlYnVnRW5hYmxlZCgpO3JldHVybiExfWZ1bmN0aW9uIGNoYW5nZUhvbWVBY3Rpb25CYWNrSW1hZ2UoYSxiKXskKGEpLmNzcyh7YmFja2dyb3VuZDoidXJsKCIrYisiKSIsYmFja2dyb3VuZFJlcGVhdDoibm8tcmVwZWF0IixiYWNrZ3JvdW5kU2l6ZToiMjQwcHggMTIxcHgifSl9dmFyIF9fY3VycmVudFRocmVhc2hvbGQ7CmZ1bmN0aW9uIHRocmVhZGhvbGRTY3JvbGxQZXJjZW50KCl7X19jdXJyZW50VGhyZWFzaG9sZHx8KF9fY3VycmVudFRocmVhc2hvbGQ9KCQod2luZG93KS5oZWlnaHQoKSskKGRvY3VtZW50KS5zY3JvbGxUb3AoKSkvJChkb2N1bWVudCkuaGVpZ2h0KCksc2V0VGltZW91dCgiX19jdXJyZW50VGhyZWFzaG9sZCA9IG51bGwiLDMzMykpO3JldHVybiBfX2N1cnJlbnRUaHJlYXNob2xkfQpmdW5jdGlvbiB0aHJlc2hvbGRFeGVjKGEsYixjKXt2YXIgZD1udWxsO2M9Yz9jOltdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBhKXt2YXIgZT1NYXRoLnJvdW5kKDFFNCphKS8xRTQ7MTxlJiYoZS89MTAwKTthPWZ1bmN0aW9uKCl7cmV0dXJuIGV9fXZhciBrPWZ1bmN0aW9uKCl7aWYodGhyZWFkaG9sZFNjcm9sbFBlcmNlbnQoKT5hKCkpe3RyeXtiLmFwcGx5KG51bGwsYyl9Y2F0Y2goaCl7Y29uc29sZS5sb2coaCl9ZD1jbGVhckludGVydmFsKGQpfX07JChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtkPXNldEludGVydmFsKGssMzMzKX0sMkUzKX0pfQpmdW5jdGlvbiBzY3JvbGx1cEV4ZWMoYSl7dmFyIGI9bnVsbCxjPTAsZD1mdW5jdGlvbigpeyQod2luZG93KS5vbigic2Nyb2xsIixmdW5jdGlvbihlKXtlPSQodGhpcykuc2Nyb2xsVG9wKCk7ZTxjJiYoYS5jYWxsKG51bGwpLGI9Y2xlYXJJbnRlcnZhbChiKSk7Yz1lfSl9OyQoZnVuY3Rpb24oKXtiPXNldEludGVydmFsKGQsMzMzKX0pfWZ1bmN0aW9uIGluVmlld0V4ZWMoYSxiKXt0aHJlc2hvbGRFeGVjKGZ1bmN0aW9uKCl7dmFyIGM9JChhKTt0cnl7cmV0dXJuIWMubGVuZ3RofHxjLmlzKCI6aGlkZGVuIil8fDA9PWMub2Zmc2V0KCkudG9wPy45NTpjLm9mZnNldCgpLnRvcC8kKGRvY3VtZW50KS5oZWlnaHQoKX1jYXRjaChkKXtyZXR1cm4uOTV9fSxiLFthXSl9dmFyIGx0X0lFOT0iZnVuY3Rpb24iIT10eXBlb2YgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj8hMDohMSxsdF9JRTExPTA9PSFkb2N1bWVudC5hbGw7CmZ1bmN0aW9uIGlzSUUoKXt2YXIgYT1kb2N1bWVudC5kb2N1bWVudE1vZGU7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT0iIn1jYXRjaChjKXt9dmFyIGI9Im51bWJlciI9PXR5cGVvZiBkb2N1bWVudC5kb2N1bWVudE1vZGV8fChuZXcgRnVuY3Rpb24oInJldHVybi8qQGNjX29uIUAqLyExIikpKCk7dHJ5e2RvY3VtZW50LmRvY3VtZW50TW9kZT1hfWNhdGNoKGMpe31yZXR1cm4gYn12YXIgdD0wO19fc3RhcnQ9ZnVuY3Rpb24oKXt0PShuZXcgRGF0ZSkuZ2V0VGltZSgpfTtfX3N0b3A9ZnVuY3Rpb24oKXt2YXIgYT0obmV3IERhdGUpLmdldFRpbWUoKTtjb25zb2xlLmxvZygidG9vayIsKGEtdCkvMUUzKX07dmFyIGFsZXJ0RmFsbGJhY2s9ITA7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZS5sb2cpY29uc29sZT17fSxjb25zb2xlLmxvZz1hbGVydEZhbGxiYWNrP2Z1bmN0aW9uKGEpe306ZnVuY3Rpb24oKXt9OwpBcnJheS5wcm90b3R5cGUubWFwfHwoQXJyYXkucHJvdG90eXBlLm1hcD1mdW5jdGlvbihhLGIpe3ZhciBjLGQ7aWYobnVsbD09dGhpcyl0aHJvdyBuZXcgVHlwZUVycm9yKCIgdGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGU9T2JqZWN0KHRoaXMpLGs9ZS5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGM9Yik7dmFyIGg9QXJyYXkoayk7Zm9yKGQ9MDtkPGs7KXtpZihkIGluIGUpe3ZhciBuPWVbZF07bj1hLmNhbGwoYyxuLGQsZSk7aFtkXT1ufWQrK31yZXR1cm4gaH0pO0FycmF5LnByb3RvdHlwZS5pbmRleE9mfHwoQXJyYXkucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24oYSxiKXtiPWJ8fDA7Zm9yKHZhciBjPXRoaXMubGVuZ3RoO2I8YztiKyspaWYodGhpc1tiXT09PWEpcmV0dXJuIGI7cmV0dXJuLTF9KTsKQXJyYXkucHJvdG90eXBlLnJlZHVjZXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwicmVkdWNlIix7dmFsdWU6ZnVuY3Rpb24oYSl7aWYobnVsbD09PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJyYXkucHJvdG90eXBlLnJlZHVjZSBjYWxsZWQgb24gbnVsbCBvciB1bmRlZmluZWQiKTtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTt2YXIgYj1PYmplY3QodGhpcyksYz1iLmxlbmd0aD4+PjAsZD0wO2lmKDI8PWFyZ3VtZW50cy5sZW5ndGgpdmFyIGU9YXJndW1lbnRzWzFdO2Vsc2V7Zm9yKDtkPGMmJiEoZCBpbiBiKTspZCsrO2lmKGQ+PWMpdGhyb3cgbmV3IFR5cGVFcnJvcigiUmVkdWNlIG9mIGVtcHR5IGFycmF5IHdpdGggbm8gaW5pdGlhbCB2YWx1ZSIpO2U9YltkKytdfWZvcig7ZDxjOylkIGluIGImJihlPWEoZSxiW2RdLGQsYikpLGQrKztyZXR1cm4gZX19KTsKQXJyYXkucHJvdG90eXBlLmZvckVhY2h8fChBcnJheS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihhKXt2YXIgYixjO2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigidGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkIik7dmFyIGQ9T2JqZWN0KHRoaXMpLGU9ZC5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgYSBmdW5jdGlvbiIpOzE8YXJndW1lbnRzLmxlbmd0aCYmKGI9YXJndW1lbnRzWzFdKTtmb3IoYz0wO2M8ZTspYyBpbiBkJiZhLmNhbGwoYixkW2NdLGMsZCksYysrfSk7ZnVuY3Rpb24gZ2V0RGF0YUF0dHJpYnV0ZXMoYSl7cmV0dXJuIGEuZGF0YXNldHx8W10uc2xpY2UuY2FsbChhLmF0dHJpYnV0ZXMpLnJlZHVjZShmdW5jdGlvbihiLGMpe3JldHVybi9eZGF0YS0vLnRlc3QoYy5uYW1lKSYmKGJbYy5uYW1lLnN1YnN0cig1KV09Yy52YWx1ZSksYn0se30pfQpmdW5jdGlvbiBnZXRQYXJhbWV0ZXJCeU5hbWUoYSl7YT1hLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7YT0obmV3IFJlZ0V4cCgiW1xcPyZdIithKyI9KFteJiNdKikiKSkuZXhlYyhsb2NhdGlvbi5zZWFyY2gpO3JldHVybiBudWxsPT1hPyIiOmRlY29kZVVSSUNvbXBvbmVudChhWzFdLnJlcGxhY2UoL1wrL2csIiAiKSl9CmZ1bmN0aW9uIHNob3dUcmFkZUluUG9wdXAoYSl7aWYoMD09JCgiI3RyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiKS5sZW5ndGgpe3ZhciBiPSI3NTBweCIsYz0iNTcwcHgiOzE9PS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpJiYoYj0iMzAwcHgiLGM9IjYwMHB4Iik7JCgiYm9keSIpLmFwcGVuZCgnPGRpdiBpZD0idHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIgc3R5bGU9IndpZHRoOiAnK2IrIjsgaGVpZ2h0OiAiK2MrJyI+PGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2Rpdj48aWZyYW1lIHNyYz0iJythKyciIGFsbG93dHJhbnNwYXJlbmN5PSJ0cnVlIiAgY2xhc3M9Ii10MCAtbDAgLXcxMDBwIC1oMTAwcCIgaWQ9InRyYWRlaW5MaW5rUG9wdXBJZnJhbWUiPjwvaWZyYW1lPjwvZGl2PicpfSQoIiN0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gY3VycmVudFByb21vUmVkaXJlY3QoKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3N3aXRjaCghMCl7Y2FzZSAiZnVuY3Rpb24iPT10eXBlb2Ygc2hvd1BvcHVwV2lkZ2V0OnNob3dQb3B1cFdpZGdldCgpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjVmlld1Byb21vQWN0aW9uQm94TGluayIpLmF0dHIoImhyZWYiKTokKCIjVmlld1Byb21vQWN0aW9uQm94TGluayIpWzBdLmNsaWNrKCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNwcm9tb3Rpb25TaWRlVkJ1dHRvbiBhIikuYXR0cigiaHJlZiIpOiQoIiNwcm9tb3Rpb25TaWRlVkJ1dHRvbiBhIilbMF0uY2xpY2soKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI1ZpZXdDdXN0b21Qcm9tb0FjdGlvbkJveExpbmsiKS5hdHRyKCJocmVmIik6JCgiI1ZpZXdDdXN0b21Qcm9tb0FjdGlvbkJveExpbmsiKVswXS5jbGljaygpfX0KZnVuY3Rpb24gc2hvd05ld1JlYmF0ZUNvZGVQb3B1cCgpezAhPSQoIiNkaXNhYmxlUG9wdXBzIikubGVuZ3RoJiYwIT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpfHwkKCIjSW1hZ2VQb3B1cENvbnRhaW5lcl9uZXdyZWJhdGUiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfWZ1bmN0aW9uIHNob3dOZXdCZXN0UHJpY2VWZHBQb3B1cCgpezAhPSQoIiNkaXNhYmxlUG9wdXBzIikubGVuZ3RoJiYwIT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpfHwkKCIjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfQpmdW5jdGlvbiBwcmludF9wcm9tb19wcmV2KGEpe3ZhciBiPSExLGM9JChhKS5wYXJlbnRzKCIucHJvbW9zIik7YT1jLmZpbmQoIi5wcm9tby10aXRsZSIpLmh0bWwoKTt2YXIgZD1jLmZpbmQoIi5wcm9tby1kZXNjIikuaHRtbCgpO2M9Yy5maW5kKCIucHJvbW8taW1hZ2UgaW1nIikuYXR0cigiZGF0YS1wcmludC1zcmMiKTskKCIjcHJvbW9Ub1ByaW50IikucmVtb3ZlKCk7JCgiI3Byb21vVG9QcmludFdyYXAiKS5yZW1vdmUoKTskKCJib2R5IikuYXBwZW5kKCc8ZGl2IGNsYXNzPSJ0b3ByaW50IiBpZD0icHJvbW9Ub1ByaW50Ij48aW1nIGJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjEwMCU7IiBzcmM9IicrYysnIiBhbHQ9IiIgaWQ9InByb21vSW1nIj48YnI+PGJyPjxiPicrYSsiPC9iPjxicj4iK2QrIjwvZGl2PiIpOyQoIiNwcm9tb0ltZyIpLm9uKCJsb2FkIixmdW5jdGlvbigpe2J8fCQoIiNwcm9tb1RvUHJpbnQiKS5wcmludEVsZW1lbnQoKTtiPSEwfSk7c2V0VGltZW91dChmdW5jdGlvbigpe2J8fAokKCIjcHJvbW9Ub1ByaW50IikucHJpbnRFbGVtZW50KCk7Yj0hMH0sMUUzKTtyZXR1cm4hMX1mdW5jdGlvbiBnZXRNdWx0aXBsZUFkZHJlc3NQaG9uZShhKXskKCIubXVsdGlBZGRyZXNzUGhvbmUiKS5zbGlkZVVwKCk7YT0kKCIubXVsdGlBZGRyZXNzUGhvbmUiLCQoJChhKS5wYXJlbnQoKSkpOyQoYSkuaXMoIjpoaWRkZW4iKT8kKGEpLnNsaWRlRG93bigpOiQoYSkuc2xpZGVVcCgpfQpmdW5jdGlvbiBhZGRHZW5lcmFsU3R5bGUoKXt2YXIgYT0kKCIjQURNSU5fR0VORVJBTF9CR19DT0xPUiIpLnZhbCgpLGI9JCgiI2RlZmF1bHRfYmxhY2tfdGV4dCIpLnZhbCgpO2lmKCIjMDAwMDAwIiE9Ynx8IiMwMDAiIT1iKSQoIi5Vc2VkVmRwMk1vYmlsZSAjYnJlYWRjcnVtYnMiKS5hZGRDbGFzcygidGV4dENvbG9yIiksJCgiaS5mYS1mYWNlYm9vay1zcXVhcmUiKS5hZGRDbGFzcygidGV4dENvbG9yIiksJCgiLnVzZWQtZGV0YWlscyAuZGVmYXVsdCBkaXY6Zmlyc3QiKS5hZGRDbGFzcygidGV4dENvbG9yIik7IiNmZmZmZmYiIT1iJiYiI2ZmZiIhPWJ8fCQoIi5Vc2VkU3JwMk1vYmlsZSAuZGVmYXVsdCAubWFrZU1vZGVsWWVhciIpLmFkZENsYXNzKCJ0ZXh0Q29sb3JVc2VkU1JQTW9iaWxlIik7IiNmZmZmZmYiIT1hJiYoJCgiLm9sZC1kZXRhaWxzLXRyIikuYWRkQ2xhc3MoImJnTm9uZSIpLCQoIiNzcGVjVGl0bGUiKS5hZGRDbGFzcygiYmdOb25lIiksJCgiLlVzZWRWZHAyTW9iaWxlIikuYWRkQ2xhc3MoIm90aGVyQkciKSl9CmZ1bmN0aW9uIGFwcGVuZFRyYWRlQm9vc3RCYW5uZXIoKXt9ZG9jUmVhZHlBcnIucHVzaCgoKT0+e2FwcGVuZFRyYWRlQm9vc3RCYW5uZXIoKTthZGRHZW5lcmFsU3R5bGUoKX0pOwpqUXVlcnkoZnVuY3Rpb24oYSl7YSgiI25hdiIpLmFkZENsYXNzKCJuYXYiKTsoZnVuY3Rpb24oKXtMQ19BUEk9d2luZG93LkxDX0FQSXx8e307TENfQVBJLm9uX3RpY2tldF9jcmVhdGVkPWZ1bmN0aW9uKG0pe3RyeXsoZnVuY3Rpb24obCl7bnVsbCE9bCYmKGw9JzxpbWcgc3JjPSJodHRwczovL3N0YXRzLmQyY21lZGlhLmNhL3NlcnZpY2UvY29udGFjdC5naWY\/dGM9JysobS50aWNrZXRfaWQrIiZ1PSIrbCkrJyIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3JpZ2h0OjEwcHg7dG9wOjEwcHg7cG9zaXRpb246YWJzb2x1dGU7IiAvPicsYSgiYm9keSIpLmFwcGVuZChsKSl9KShmdW5jdGlvbigpe3ZhciBsPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQ\/d2luZG93LmFjdGl2ZVByb2ZpbGVJRDpudWxsO3JldHVybiBudWxsPT1sP0Nvb2tpZXMuZ2V0KCJ1dWlkIik6bH0oKSl9Y2F0Y2gobCl7fX19KSgpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBvbkNvbmZpcm1TdWJtaXQpYSgiLmNvbmZpcm1faHRtbCIpLm9uKCJzdWJtaXQiLApvbkNvbmZpcm1TdWJtaXQpO3RyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGEoIiNzbGlkZXIubml2b1NsaWRlciIpLmF0dHIoImlkIikpe3ZhciBiPSExLGM9ITEsZD0hMSxlPSExLGs9ITEsaD0hMSxuPTEwMCx4PTE8YSgiI3NsaWRlci5uaXZvU2xpZGVyIGEiKS5sZW5ndGg\/ITA6ITE7YSgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCYmKGg9az1lPWQ9Yz1iPSEwLG49YSgiI0JBTk5FUl9TRUFSQ0hfQkFSX1ZJREVPX09QQUNJVFkiKS5sZW5ndGg\/YSgiI0JBTk5FUl9TRUFSQ0hfQkFSX1ZJREVPX09QQUNJVFkiKS52YWwoKToxMDApO2RvY1JlYWR5QXJyLnB1c2goKCk9PntzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YSgiI3NsaWRlci5uaXZvU2xpZGVyIikubml2b1NsaWRlcih7ZWZmZWN0OiJmYWRlIixiZWZvcmVDaGFuZ2U6ZnVuY3Rpb24oKXthKCIjcGFyYWxsYXhXcmFwcGVyIikuZW5sbGF4KCl9LGFmdGVyQ2hhbmdlOmZ1bmN0aW9uKCl7YSgiI3NsaWRlci5uaXZvU2xpZGVyIikudHJpZ2dlcigibml2b1NsaWRlckNoYW5nZWQiKX0sCmFmdGVyTG9hZDpmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLnRyaWdnZXIoIm5pdm9TbGlkZXJMb2FkZWQiKTthKCIjcGFyYWxsYXhXcmFwcGVyIikuZW5sbGF4KCk7YSgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCYmKGEoIiNzbGlkZXIubml2b1NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLnN0b3AsYSgiLm5pdm8tY29udHJvbE5hdiIpLmhpZGUoKSxhKCIubml2by1kaXJlY3Rpb25OYXYiKS5oaWRlKCksdGhpcy5zdGFydFlvdXR1YmUoKSl9LG1hbnVhbEFkdmFuY2U6Yix2aWRlb09uTG9vcDpjLGhpZGVDb250cm9sOmQsaGlkZUluZm86ZSxmdWxsV2lkdGg6ayxtdXRlVmlkZW86aCx2aWRlb0JyaWdodG5lc3M6bixjb250cm9sTmF2OngsZGlyZWN0aW9uTmF2Ongsc2hvd0Rpc2NsYWltZXI6ITB9KX0sNUUzKX0pfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgYSgiLmV4dGVuZGVkUGhvbmVUcmlnZ2VyIikuYXR0cigiaWQiKSlhKCIuZXh0ZW5kZWRQaG9uZVRyaWdnZXIiKS5vbigibW91c2VlbnRlciIsCkV4UGhvbmUpLm9uKCJtb3VzZWxlYXZlIixFeFBob25lKTt2YXIgdj1mdW5jdGlvbigpe307YSgiLnRyYWRlaW5MaW5rIikub24oImNsaWNrIixmdW5jdGlvbigpe2lmKGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikmJjY8YSh0aGlzKS5hdHRyKCJ0YXJnZXRVUkkiKS5sZW5ndGgpcmV0dXJuIHNob3dUcmFkZUluUG9wdXAoYSh0aGlzKS5hdHRyKCJ0YXJnZXRVUkkiKSksITF9KTthKCIudXBfbWVudSIpLm9uZSgibW91c2VvdmVyIix2KTtzZXRUaW1lb3V0KHYsMUU0KTsoZnVuY3Rpb24oKXtpZigwIT1hKCIjTWFpbk1lbnVfTkVXIikubGVuZ3RoKXt2YXIgcT1hKCIuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgPiBsaSNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaS5maXJzdEl0ZW0iKSxyPSExOzAhPXEubGVuZ3RoJiYoYSgiI01haW5NZW51X05FVyIpLmZpbmQoIi5wcmljZSIpLmNzcygiY3Vyc29yIiwicG9pbnRlciIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgcD1hKHRoaXMpLnNpYmxpbmdzKCkuZmlyc3QoKTsKd2luZG93LmxvY2F0aW9uPXAuYXR0cigiaHJlZiIpfSksYSgiI01haW5NZW51X05FVyIpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKTtxLmFkZENsYXNzKCJob3ZlciIpfSkscS5zaWJsaW5ncygpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChyKTtxLnJlbW92ZUNsYXNzKCJob3ZlciIpfSkub24oIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cS5hZGRDbGFzcygiaG92ZXIiKX0sMzAwKX0pKX19KSgpO2EoImltZ1tlcnJvcmltZ10iKS5vbigiZXJyb3IiLGZ1bmN0aW9uKCl7dmFyIHE9YSh0aGlzKTtxLmF0dHIoInNyYyIscS5hdHRyKCJlcnJvcmltZyIpKX0pO2NvbnN0IG09YSh3aW5kb3cpLGw9YSgiLnVwX21lbnUiKTtpZihsLmxlbmd0aCYmIWwuaGFzQ2xhc3MoIm5vbG9jayIpKXtsZXQgcT1sLm9mZnNldCgpLnRvcCxyPSExO2EoZG9jdW1lbnQpLm9uKCJzY3JvbGwiLCgpPT57cnx8Cih3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dmFyIHA9bS5zY3JvbGxUb3AoKSx3PWwuaGFzQ2xhc3MoImZpeGVkIik7dyYmcDxxP2wucmVtb3ZlQ2xhc3MoImZpeGVkIik6IXcmJnA+cSYmbC5hZGRDbGFzcygiZml4ZWQiKTsocD1sLmhhc0NsYXNzKCJmaXhlZCIpKSYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIik\/bC5jc3Moe3RvcDphKCIjYWxlcnRNc2dDb250YWluZXIiKS5vdXRlckhlaWdodCgpKyJweCJ9KTpsLmF0dHIoInN0eWxlIiwiIik7dz1hKCIucHVsbG91dHMuc2lkZV90b3A6dmlzaWJsZSIpO3AmJjA8dy5sZW5ndGg\/KHcuZmlsdGVyKCIucHVsbG91dC1vcGVuZWQiKS5jc3Moe3RvcDpsLmhlaWdodCgpKyJweCJ9KSx3LmZpbHRlcigiLnB1bGxvdXQtY2xvc2VkIikuZWFjaChmdW5jdGlvbigpe3ZhciB6PWEodGhpcyksRD1nZXRfcG93KHouYXR0cigiaWQiKSk7IXouZGF0YSgicG9zWSIpJiZ6LmRhdGEoInBvc1kiLC1ELnBvc2l0aW9uKTsKRD16LmRhdGEoInBvc1kiKStsLmhlaWdodCgpO3ouY3NzKHt0b3A6RCsicHgifSl9KSk6KHcuZmlsdGVyKCIucHVsbG91dC1vcGVuZWQiKS5jc3Moe3RvcDowfSksdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmRhdGEoInBvc1kiKSYmdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmVhY2goZnVuY3Rpb24oKXthKHRoaXMpLmNzcyh7dG9wOmEodGhpcykuZGF0YSgicG9zWSIpKyJweCJ9KX0pKTtyPSExfSkscj0hMCl9KX12PWZ1bmN0aW9uKCl7aWYoMD09YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmxlbmd0aCl7YSgiYm9keSIpLmFwcGVuZCgnPGRpdiBpZD0idHJhZGVpbkJhckZsb2F0IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cG9zaXRpb246IGZpeGVkO3dpZHRoOiAxMDAlO3otaW5kZXg6IDEwMDtkaXNwbGF5Om5vbmU7Ij48L2Rpdj4nKTthKCIjdHJhZGVJbkJhciIpLmNsb25lKCEwLCEwKS5hcHBlbmRUbygiI3RyYWRlaW5CYXJGbG9hdCIpLnRyaWdnZXIoInRyYWRlSW5CYXIuY2xvbmVkIik7CmlmKGEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikubGVuZ3RoJiYiMSI9PWEoIiN0cmFkZUluQmFyU3RpY2t5Qm90dG9tIikudmFsKCkpe2EoIiN0cmFkZWluQmFyRmxvYXQiKS5jc3MoImJvdHRvbSIsIi0ycHgiKTt2YXIgcT1hKCIuY2VydGlmaWVkLWZvb3RlciIpLmhlaWdodCgpLHI9YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhlaWdodCgpO2EoIi5jZXJ0aWZpZWQtZm9vdGVyIikuaGVpZ2h0KHErcil9ZWxzZXtxPWEoIiN0cmFkZWluQmFyRmxvYXQiKTtyPXEuY3NzO3ZhciBwPSIxIj09YSgiI21lbnVMb2NrIikudmFsKCk\/NDg6MDswPGEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmxlbmd0aCYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIikmJihwKz1hKCIjYWxlcnRNc2dDb250YWluZXIiKS5vdXRlckhlaWdodCgpKTtyLmNhbGwocSwidG9wIixwKX1hKCIjdHJhZGVpbkJhckZsb2F0IC4tcGIxMCIpLmNzcyh7ZGlzcGxheToiaW5saW5lLXRhYmxlIix3aWR0aDphKCIjbWFpbkRpdiIpLndpZHRoKCl9KX1xPQoibmV3Y2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKTtyPSJuZXdjYXJkZXRhaWwuaHRtbCI9PWEoIiNQQUdFSUQiKS52YWwoKT8hMDohMTtwPTA8YSgiLm1haW5EaXZBZGp1c3RIZWFkZXIiKS5sZW5ndGg\/ITA6ITE7YSgiI3RyYWRlSW5CYXIiKS5pc0luVmlld3BvcnQoKXx8cT9xPyhyP2EoIi5uZXdWZHBBY3Rpb25zIikuaXNBYm92ZVZpZXdwb3J0KDIwMCk6YSgiLnVzZWRWZHBBY3Rpb25zIikuaXNBYm92ZVZpZXdwb3J0KDIwMCkpP2EoIiN0cmFkZWluQmFyRmxvYXQiKS5oaWRlKCk6YSgiI3RyYWRlaW5CYXJGbG9hdCIpLnNob3coKTphKCIjdHJhZGVpbkJhckZsb2F0IikuaGlkZSgpOihwJiYhYSgiI3RyYWRlSW5CYXIiKS5pc0Fib3ZlVmlld3BvcnQoMjAwKXx8IXApJiZhKCIjdHJhZGVpbkJhckZsb2F0Iikuc2hvdygpOzA8YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikubGVuZ3RoJiZhKCIjYWxlcnRNc2dDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYKNDghPWEoIiN0cmFkZWluQmFyRmxvYXQiKS5jc3MoInRvcCIpJiZhKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLmxlbmd0aCYmIjEiIT1hKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLnZhbCgpJiZhKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJ0b3AiLDQ4KX07ZnVuY3Rpb24gdShxLHIpe3ZhciBwPTA7cmV0dXJuIGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHApO3A9c2V0VGltZW91dChxLHIpfX1pZihhKCIjdHJhZGVJbkJhciIpLmxlbmd0aClhKGRvY3VtZW50KS5vbigic2Nyb2xsIix1KHYsMTAwKSk7dmFyIGY9YSgidWwubmF2ID4gbGkgPiB1bCA+IGxpID4gdWwiKTtmLmVhY2goZnVuY3Rpb24oKXthKHRoaXMpLnBhcmVudCgpLm9uKCJtb3VzZWVudGVyIixmdW5jdGlvbihxKXthKCJ1bCIsdGhpcykuc2Nyb2xsVG9wKDApfSl9KTtmLm9uKCJET01Nb3VzZVNjcm9sbCBtb3VzZXdoZWVsIixmdW5jdGlvbihxKXt2YXIgcj1hKHRoaXMpLHA9dGhpcy5zY3JvbGxUb3Asdz10aGlzLnNjcm9sbEhlaWdodCwKej13PnRoaXMuY2xpZW50SGVpZ2h0LEQ9ci5oZWlnaHQoKSxDPXEub3JpZ2luYWxFdmVudDtDPSJET01Nb3VzZVNjcm9sbCI9PXEudHlwZT8tNDAqQy5kZXRhaWw6Qy53aGVlbERlbHRhO3ZhciBFPTA8QztpZigheilyZXR1cm4hMDt6PWZ1bmN0aW9uKEcpe3Iuc2Nyb2xsVG9wKEcpO3Euc3RvcFByb3BhZ2F0aW9uKCk7cS5wcmV2ZW50RGVmYXVsdCgpO3EucmV0dXJuVmFsdWU9ITE7cmV0dXJuITB9O3JldHVybiEoIUUmJi1DPnctRC1wJiZ6KHcpfHxFJiZDPnAmJnooMCkpfSl9Y2F0Y2gobSl7Y29uc29sZS5sb2coIkVycm9yIixtKX1pZihhKCIudXBfbWVudS5pbWdfbWVudSIpLmxlbmd0aCl7Zj1hKCIuaW1nX3N0eWxlXzEgI01haW5NZW51X05FVyIpLmNoaWxkcmVuKCIuc3ViIik7dmFyIGc9Zi5maW5kKCIuZmlyc3RJdGVtIikuZmluZCgiLnN1YiIpO2YuY2hpbGRyZW4oImxpIikub24oe21vdXNlZW50ZXI6ZnVuY3Rpb24oKXshYSh0aGlzKS5pcygiLmhhc1N1YiIpJiZnLmhpZGUoKX0sCm1vdXNlbGVhdmU6ZnVuY3Rpb24oKXshYSh0aGlzKS5pcygiLmhhc1N1YiIpJiZnLnNob3coKX19KX1hKCIubnVtZXJpYyIpLm9uKCJrZXlwcmVzcyIsZnVuY3Rpb24obSl7aWYoNDg+bS5rZXlDb2RlfHw1NzxtLmtleUNvZGUpbS5yZXR1cm5WYWx1ZT0hMX0pO2lmKCJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHx3aW5kb3cuRG9jdW1lbnRUb3VjaCYmZG9jdW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudFRvdWNoKWEoIi5sZWZ0X2JveCBhIikub24oInRhcCIsZnVuY3Rpb24obSl7bT1hKHRoaXMpO2lmKCJyYWRpbyIhPW0uYXR0cigidHlwZSIpJiZtLmF0dHIoIm9uY2xpY2siKSlyZXR1cm4gbS50cmlnZ2VyKCJjbGljayIpLCExfSksYSgiLmhhc0l0ZW1zID4gYSwgLmhhc1N1YiA+IGEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKG0pe2lmKCJjbGljayIhPW0udHlwZSlyZXR1cm4hMDt2YXIgbD1hKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGx8fCIwIj09CmwpYSgiLm5hdiBsaS5oYXNJdGVtcyBhLCAubmF2IGxpLmhhc1N1YiBhIikuZGF0YSgiY2xpY2tDb3VudCIsIjAiKSxhKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiLCIxIiksbS5wcmV2ZW50RGVmYXVsdCgpO2Vsc2UgcmV0dXJuIGRvY3VtZW50LmxvY2F0aW9uPWEodGhpcykuYXR0cigiaHJlZiIpLGEodGhpcykuZGF0YSgiY2xpY2tDb3VudCIsIjAiKSwhMH0pO2EoImRpdi5nbWFwLXBsYWNlaG9sZGVyIikuZWFjaChmdW5jdGlvbigpe3ZhciBtPWEodGhpcyksbD1tLmRhdGEoKTtpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKHUpe3U9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZC92MS9wbGFjZT8iK1sicT0iK2VuY29kZVVSSUNvbXBvbmVudChsLnBsYWNlSWQpLCJ6b29tPSIrbC56b29tLCJsYW5ndWFnZT0iK2wubGFuZ3VhZ2UsInJlZ2lvbj1DQSIsImtleT0iK3VdLmpvaW4oIiYiKTttLmh0bWwoJzxpZnJhbWUgc3JjPSInK3UrJyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iNDAwIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjowIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+Jyl9KX0pOwp0cnl7YSgiLmFkZHR0IikuZWFjaChmdW5jdGlvbigpe3ZhciBtPVsib25DbG9zZSIsIm9uWWVzIiwib25ObyJdLGw9YSh0aGlzKSx1PWwuZGF0YSgpLHE9e30scjtmb3IociBpbiB1KXFbcl09ZnVuY3Rpb24ocCx3KXtyZXR1cm4tMSE9bS5pbmRleE9mKHApP2Z1bmN0aW9uKCl7ZXZhbCh3KX06d30ocix1W3JdKTtsLmRhcmtUb29sdGlwKHEpfSl9Y2F0Y2gobSl7Y29uc29sZS5sb2cobS5tZXNzYWdlLG0pfX0pO2Z1bmN0aW9uIGNoaWxkT2YoYSxiKXtmb3IoOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEmJm51bGwhPT1hJiYoYT1hLnBhcmVudE5vZGUpJiZhIT09YjspO3JldHVybiEhYX12YXIgTWVudUhhbmRsZXI7CihmdW5jdGlvbigpe3ZhciBhO01lbnVIYW5kbGVyPWZ1bmN0aW9uIGMoKXtmdW5jdGlvbiBkKGYsZyl7bGV0IG09KGcubW9kZWx8fCIiKS50cmltKCksbD0oZy50cmltfHwiIikudHJpbSgpO2Y9Zi5yZXBsYWNlKCIjI01FTlVZRUFSIyMiLGcueWVhcik7bSYmbCYmKG0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhsLnRvTG93ZXJDYXNlKCkpP2w9IiI6bC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG0udG9Mb3dlckNhc2UoKSkmJihtPSIiKSk7cmV0dXJuIGYucmVwbGFjZSgiIyNNRU5VTU9ERUwjIyIsbSkucmVwbGFjZSgiIyNNRU5VVFJJTSMjIixsKS5yZXBsYWNlKC8gKy9nLCIgIil9aWYoYSlyZXR1cm4gYTthPXRoaXM7dGhpcy5nZXRTcGVjVXJsPWZ1bmN0aW9uKCl7dmFyIGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCIwIj09PSQoIiNuZXdfdHJhbnNsYXRlZF90aXRsZXMiKS52YWwoKT8iZW4iOiJmciI7IjAiPT0kKCIjbXVsdGktbGFuZ3VhZ2UiKS52YWwoKSYmCihmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIik7cmV0dXJuIi9qc29uL25ld2NhcnNkZXRhaWxzXyIrZisiLmpzb24ifTt0aGlzLm1lbnU9JCgiLm1lbnU1LCAubWVudTYsIC5tZW51NywgLm1lbnU4LCAubWVudTksIC5tZW51MTAiKTt0aGlzLnNwZWNzQWpheD0kLmdldCh0aGlzLmdldFNwZWNVcmwoKSk7dGhpcy5jYXJzPXtkZXRhaWxzOnt9LGZpbmRCeUlkOmZ1bmN0aW9uKGYpe3ZhciBnPXt9OyQuZWFjaCh0aGlzLmRldGFpbHMubWFrZXMsZnVuY3Rpb24obSxsKXskLmVhY2gobC5tb2RlbHMsZnVuY3Rpb24odSxxKXsxPT1xLmlzc2VyaWVzfHwxPT1xLmlzQ2xhc3M\/JC5lYWNoKHEuc3R5bGVzLGZ1bmN0aW9uKHIscCl7cC5pZD09ZiYmKGc9cCl9KTpxLmlkPT1mJiYoZz1xKX0pOyQuaXNFbXB0eU9iamVjdChnKX0pO3JldHVybiBnfX07dGhpcy5zcGVjc0FqYXguZG9uZShmdW5jdGlvbihmKXtjKCkuY2Fycy5kZXRhaWxzPWZ9KTt0aGlzLnBvc2l0aW9ucz0KZnVuY3Rpb24oZixnLG0pe3JldHVybnt0YXJnZXQ6JChnLmN1cnJlbnRUYXJnZXQpLHNlY29uZExldmVsTWVudTpudWxsLHdpbmRvd0hlaWdodDpudWxsLHNlY29uZExldmVsTWVudVRvcDpudWxsLHNlY29uZExldmVsTWVudUJvdHRvbTpudWxsLHN1Yk1lbnVJdGVtVG9wOm51bGwsc3ViTWVudUl0ZW1IZWlnaHQ6bnVsbCxzdWJNZW51SXRlbUJvdHRvbTpudWxsLGJvdHRvbUFsaWduOm51bGwsc3BlY3M6bnVsbCxzcGVjc1RvcDpudWxsLHNwZWNzSGVpZ2h0Om51bGwsc3BlY3NCb3R0b206bnVsbCxjdXN0b21TZWNvbmRMZXZlbE1lbnU6bnVsbCxyb3VuZDpmdW5jdGlvbihsKXtyZXR1cm4rKE1hdGgucm91bmQobCsiZSsyIikrImUtMiIpfSx1cGRhdGU6ZnVuY3Rpb24oKXt0aGlzLnNlY29uZExldmVsTWVudT0iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnU\/dGhpcy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKTp0aGlzLnRhcmdldC5maW5kKCJ1bC5zdWI6Zmlyc3QiKTsKdHJ5e3RoaXMud2luZG93SGVpZ2h0PSQod2luZG93KS5oZWlnaHQoKSx0aGlzLnNlY29uZExldmVsTWVudVRvcD10aGlzLnNlY29uZExldmVsTWVudS5wb3NpdGlvbigpLnRvcCx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodD10aGlzLnNlY29uZExldmVsTWVudS5vdXRlckhlaWdodCgpLHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPXRoaXMucm91bmQodGhpcy5zZWNvbmRMZXZlbE1lbnVUb3ArdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQpfWNhdGNoKGwpe310cnl7dGhpcy5zdWJNZW51SXRlbVRvcD0kKGYpLnBvc2l0aW9uKCkudG9wLHRoaXMuc3ViTWVudUl0ZW1IZWlnaHQ9JChmKS5vdXRlckhlaWdodCgpLHRoaXMuc3ViTWVudUl0ZW1Cb3R0b209dGhpcy5yb3VuZCh0aGlzLnN1Yk1lbnVJdGVtSGVpZ2h0K3RoaXMuc3ViTWVudUl0ZW1Ub3ApLHRoaXMuYm90dG9tQWxpZ249dGhpcy5yb3VuZCgkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpKyQoZikucGFyZW50KCJ1bCIpLm9mZnNldCgpLnRvcC0KdGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20pfWNhdGNoKGwpe310cnl7dGhpcy5zcGVjcz1tLHRoaXMuc3BlY3NUb3A9dGhpcy5zcGVjcy5wb3NpdGlvbigpLnRvcCx0aGlzLnNwZWNzSGVpZ2h0PXRoaXMuc3BlY3Mub3V0ZXJIZWlnaHQoKSx0aGlzLnNwZWNzQm90dG9tPXRoaXMucm91bmQodGhpcy5zcGVjc1RvcCt0aGlzLnNwZWNzSGVpZ2h0KX1jYXRjaChsKXt9fSxhZGp1c3RTZWNvbmRMZXZlbDpmdW5jdGlvbigpe2lmKC42NSp0aGlzLndpbmRvd0hlaWdodDx0aGlzLnNlY29uZExldmVsTWVudUhlaWdodCl7aWYodGhpcy5zZWNvbmRMZXZlbE1lbnUuaGFzQ2xhc3MoImxvY2F0aW9uLWRldGFpbHMiKSlyZXR1cm47dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQXR0cigic3R5bGUiKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImhlaWdodCIsLjY1KnRoaXMud2luZG93SGVpZ2h0KTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MoeyJvdmVyZmxvdy15IjoiYXV0byIsd2lkdGg6IjQwMHB4IiwKcG9zaXRpb246InN0YXRpYyIsZGlyZWN0aW9uOiJydGwifSk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuZmluZCgiPiBsaSIpLmNzcyh7ZGlyZWN0aW9uOiJsdHIifSk7aWYoMD09JChmKS5jaGlsZHJlbigiLm1haW5tZW51LXN1Ym1lbnUiKS5sZW5ndGgpe3ZhciBsPSQoIjxkaXYvPiIpO2wuYWRkQ2xhc3MoIm1haW5tZW51LXN1Ym1lbnUiKTtsLmRldGFjaCgpLmFwcGVuZCh0aGlzLnNlY29uZExldmVsTWVudSk7dGhpcy50YXJnZXQuYXBwZW5kKGwpfXRoaXMudXBkYXRlKCl9aWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b208dGhpcy5zdWJNZW51SXRlbVRvcCkkKGYpLmFkZENsYXNzKCJhbGlnbi1sZXZlbCIpLHRoaXMudXBkYXRlKCksbD10aGlzLnNlY29uZExldmVsTWVudUJvdHRvbTwkKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpPyQoZikub3V0ZXJIZWlnaHQoKSskKGYpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0OiQoZikucGFyZW50KCJ1bCIpLm91dGVySGVpZ2h0KCkrCiQoZikucGFyZW50KCJ1bCIpLnBvc2l0aW9uKCkudG9wLXRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygidHJhbnNmb3JtIiwidHJhbnNsYXRlWSgiK2wrInB4KSIpO2Vsc2UgaWYodGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20+dGhpcy5zdWJNZW51SXRlbVRvcCYmdGhpcy5zdWJNZW51SXRlbUJvdHRvbT50aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSl7bD0wPnBhcnNlSW50KHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygibGVmdCIpLnJlcGxhY2UoInB4IiwiIikpPyJyaWdodCI6ImxlZnQiO3ZhciB1PXt0cmFuc2Zvcm06InRyYW5zbGF0ZVkoIitNYXRoLmFicyh0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbS10aGlzLnN1Yk1lbnVJdGVtQm90dG9tKSt0aGlzLnNlY29uZExldmVsTWVudVRvcCsicHgpIn07InJpZ2h0IiE9bCYmKHVbbF09dGhpcy50YXJnZXQucG9zaXRpb24oKS5sZWZ0K3RoaXMudGFyZ2V0LndpZHRoKCkpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcyh1KX1lbHNlIHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wPgp0aGlzLnN1Yk1lbnVJdGVtVG9wJiZ0aGlzLnNlY29uZExldmVsTWVudS5jc3MoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoIit0aGlzLnN1Yk1lbnVJdGVtVG9wKyJweCkiKX0sYWRqdXN0SG9yaXpvbnRhbDpmdW5jdGlvbigpe3RoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJpbnZpc2libGUiKXx8dGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoImludmlzaWJsZSIpO3ZhciBsPXRoaXMuaXNJblZpZXdwb3J0KHRoaXMuc2Vjb25kTGV2ZWxNZW51WzBdKSx1PTA+cGFyc2VJbnQodGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJsZWZ0IikucmVwbGFjZSgicHgiLCIiKSk\/InJpZ2h0IjoibGVmdCI7bHx8ImxlZnQiIT09dXx8KHRoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJMMTAwIikmJnRoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJMMTAwIiksdGhpcy5zZWNvbmRMZXZlbE1lbnUuYWRkQ2xhc3MoIlIxMDAiKSk7bD17fTtsW3VdPXRoaXMudGFyZ2V0LnBvc2l0aW9uKCkubGVmdCsKdGhpcy50YXJnZXQud2lkdGgoKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3MobCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoImludmlzaWJsZSIpfSxpc0luVmlld3BvcnQ6ZnVuY3Rpb24obCl7bD1sLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiAwPD1sLnRvcCYmMDw9bC5sZWZ0JiZsLmJvdHRvbTw9KHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCkmJmwucmlnaHQ8PSh3aW5kb3cuaW5uZXJXaWR0aHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKX19fTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsInVsLm5hdiA+IGxpIixmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpO2cudXBkYXRlKCk7Zy5zZWNvbmRMZXZlbE1lbnVCb3R0b20tJCh3aW5kb3cpLnNjcm9sbFRvcCgpPmcud2luZG93SGVpZ2h0P2cuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJzbGltLXN1Ym1lbnUiKToKZy5zZWNvbmRMZXZlbE1lbnUucmVtb3ZlQ2xhc3MoInNsaW0tc3VibWVudSIpOyJtb3VzZWxlYXZlIiE9PWYudHlwZSYmKGY9JCh0aGlzKS5maW5kKCI+IHVsIiksZi5sZW5ndGgmJiFmLmRhdGEoImNhbGN1bGF0ZWQiKSYmKGc9JCh0aGlzKS5vdXRlcldpZHRoKCksZi5vdXRlcldpZHRoKCk8ZyYmZi5jc3MoIndpZHRoIixnKzEpLGYuZGF0YSgiY2FsY3VsYXRlZCIsITApKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSIsZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKTswIT0kKGYuY3VycmVudFRhcmdldCkuZmluZCgidWwuc3ViID4gbGkiKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9Zi50eXBlJiYoZy51cGRhdGUoKSxnLmFkanVzdFNlY29uZExldmVsKCkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgbGkubG9jYXRpb24tbmFtZXMiLApmdW5jdGlvbihmKXt2YXIgZz1hLnBvc2l0aW9ucyh0aGlzLGYpLG09JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIik7Zy5jdXN0b21TZWNvbmRMZXZlbE1lbnU9ZnVuY3Rpb24oKXtyZXR1cm4gbX07MCE9JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoIi5sb2NhdGlvbi1kZXRhaWxzIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPWYudHlwZSYmKCQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpLm9uKCJsYXp5bG9hZGVkIixmdW5jdGlvbihsKXtnLmN1c3RvbVNlY29uZExldmVsTWVudSgpLmF0dHIoInN0eWxlIixudWxsKTtnLnVwZGF0ZSgpO2cuYWRqdXN0SG9yaXpvbnRhbCgpO2cuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pLGcuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCkuYXR0cigic3R5bGUiLG51bGwpLGcudXBkYXRlKCksZy5hZGp1c3RIb3Jpem9udGFsKCksZy5hZGp1c3RTZWNvbmRMZXZlbCgpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwKJyNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IFtkYXRhLWlkPSJTVUJfVEFCX0NPTU1FUkNJQUxfQ09NTUVSIl0nLGZ1bmN0aW9uKGYpe2Y9YS5wb3NpdGlvbnModGhpcyxmKTtmLnVwZGF0ZSgpO2YuYWRqdXN0U2Vjb25kTGV2ZWwoKX0pO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjREVBTEVSUEFSVFJFRElSRUNUVFlQRSIpLnZhbCgpJiYwPCQoIiNERUFMRVJCUkFORCIpLmxlbmd0aCYmJCgiI0RFQUxFUkJSQU5EIikudmFsKCkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiZm9yZCIpJiYiIiE9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpKXt2YXIgZT0kKCJodG1sIikuYXR0cigibGFuZyIpLGs9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGg9ImVuIj09ZT8iL3JlcXVlc3RzL2Nhci1wYXJ0cy1hbmQtYWNjZXNzb3JpZXMuaHRtbCI6Ii9kZW1hbmRlcy9jb21tYW5kZS1waWVjZXMtYWNjZXNzb2lyZXMtYXV0b21vYmlsZXMuaHRtbCIsbj0iaHR0cHM6Ly9mb3JkYWNjZXNzLmNvbS9Gb3JkLmFzcHg\/bG9jYXRpb249IisKazt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9TRVJWSUNFIHVsLnN1YiBsaVtkYXRhLWlkPSdQSUVDRVMnXSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpO2Y9JCgiPiBhIixmKTtmLmF0dHIoImhyZWYiKT09aCYmKGYuYXR0cigiaHJlZiIsbiksZi5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSl9KX10aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9GSU5BTkNFID4gYSIsZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpLGc9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxtPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxsPSQoIiNERUFMRVJCUkFORF9QUklNQVJZIikudmFsKCkudG9Mb3dlckNhc2UoKTsiZm9yZF9saW5jb2xuX2V4dGVybmFsIiE9JCgiI0ZJTkFOQ0VGT1JNVFlQRSIpLnZhbCgpfHwiZm9yZCIhPWwmJiJsaW5jb2xuIiE9bHx8IiI9PW18fChmLmF0dHIoImhyZWYiLCJmb3JkIj09bD8oImVuIj09Zz8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6CiJodHRwczovL2ZyLmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iKSttOigiZW4iPT1nPyJodHRwczovL3d3dy5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iKSttKSxmLmF0dHIoInRhcmdldCIsIl9ibGFuayIpKX0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXtpZihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY3RhLXRwbCIpLmxlbmd0aCYmInVuZGVmaW5lZCIhPT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmCiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwpe2lmKCExPT09KCJjb21tZXJjaWFsIj09bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5zZWN0aW9uPyEwOiExKSlyZXR1cm47ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmN0YS10cGwgYSIpLmZvckVhY2goKGYsZyk9PntnPWYuZ2V0QXR0cmlidXRlKCJocmVmIik7aWYoZy5pbmNsdWRlcygic2hvcC5mb3JkLmNhIikpe2xldCBtPSExO2cuaW5jbHVkZXMoInN1cGVyZHV0eSIpJiYobT1nLnJlcGxhY2UoIi9zdXBlcmR1dHkvIiwiL3N1cGVyZHV0eS1jb21tZXJjaWFsLyIpKTshMSE9PW0mJmYuc2V0QXR0cmlidXRlKCJocmVmIixtKX19KX1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjY2xhc3Njb21tZXJjaWFsX2NvbnRhaW5lciIpLmxlbmd0aCYmZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRpdkNhclNpbmdsZU91dGVyQm94IGEiKS5mb3JFYWNoKChmLGcpPT57Zz1mLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwppZihnLmluY2x1ZGVzKCJzaG9wLmZvcmQuY2EiKSl7bGV0IG09ITE7Zy5pbmNsdWRlcygic3VwZXJkdXR5IikmJihtPWcucmVwbGFjZSgiL3N1cGVyZHV0eS8iLCIvc3VwZXJkdXR5LWNvbW1lcmNpYWwvIikpOyExIT09bSYmZi5zZXRBdHRyaWJ1dGUoImhyZWYiLG0pfX0pfX0sMkUzKTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsIiNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICNNYWluTWVudV9ORVcgPiB1bC5zdWIgPiBsaSA+IC5tYWlubWVudS1zdWJtZW51ID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSwgI01haW5NZW51X1RBQl9DT01NRVJDSUFMID4gdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGkiLGZ1bmN0aW9uKGYpe2lmKCJtb3VzZWxlYXZlIiE9CmYudHlwZSl7dmFyIGc9JCh0aGlzKS5maW5kKCIubWVudS10ZWNoLXNwZWNzIik7MD09Zy5sZW5ndGgmJihnPSQoIiNtZW51LXNwZWNzLXRlbXBsYXRlIikuY2xvbmUoKSk7dmFyIG09dGhpcztpZigwPT0kKG0pLmNoaWxkcmVuKCIubWVudS10ZWNoLXNwZWNzIikubGVuZ3RoKXt2YXIgbD0kKG0pLmZpbmQoImE6bnRoLW9mLXR5cGUoMikiKS50ZXh0KCksdT0kKG0pLmZpbmQoImE6Zmlyc3QtY2hpbGQiKS5hdHRyKCJocmVmIikscT11Lmxhc3RJbmRleE9mKCIvIikrMTtjYXJMaW5rVHJpbW1lZD11LnN1YnN0cmluZyhxLHUubGVuZ3RoKTt2YXIgcj0kKCIjdHh0QnVpbGRBbmRQcmljZUZvbGRlclBhdGgiKS52YWwoKStjYXJMaW5rVHJpbW1lZDsoZnVuY3Rpb24oKXtpZigwPCQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLmxlbmd0aCYmIiIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpJiYiIyNMSU5LUlVMRVMjIyIhPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpKXt2YXIgeT0KMDwkKG0pLmNsb3Nlc3QoImxpW2RhdGEtaWRePSdORVdfQ09NTUVSQ0lBTCddIikubGVuZ3RoPyEwOiExLEE9JCgiI2QyYy1ibnAtbGlua3J1bGVzLXRleHRhcmVhIikudmFsKCk7QT1KU09OLnBhcnNlKEEpO3ZhciBJPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksQj1yLm1hdGNoKCJlbiI9PUk\/L1wvYnVpbGQtYW5kLXByaWNlXC8oXGR7NH0tKFx3KyktKFx3KykuKlwuaHRtbCkuKi86L1wvY29uZmlndXJhdGlvbi1ldC1wcml4XC8oKFx3KyktKFx3KyktXGR7NH0pLipcLmh0bWwvKSxKPUJbMF0sRj1CWzJdLnRvTG93ZXJDYXNlKCk7Qj1CWzNdLnRvTG93ZXJDYXNlKCkucmVwbGFjZUFsbCgiXyIsIiAiKTt5JiZCLmluY2x1ZGVzKCJzdXBlciBkdXR5IikmJihCPSJzdXBlciBkdXR5IGNvbW1lcmNpYWwiKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdJiYidW5kZWZpbmVkIj09PXR5cGVvZiBBW0ZdW0JdKWZvcih2YXIgSyBpbiBBW0ZdKWlmKHk9SyxCLmluY2x1ZGVzKHkpKXtCPXk7CmJyZWFrfSJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIEFbRl1bQl0mJigkKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikscj1yLnJlcGxhY2UoSixBW0ZdW0JdW0ldKSl9fSkoKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuYXR0cigiaHJlZiIscik7JChnKS5maW5kKCIubWVudS1zcGVjLWxpbmsiKS5hdHRyKCJocmVmIix1KTskKGcpLnJlbW92ZUF0dHIoImlkIik7JChnKS5jaGlsZHJlbigiLm1lbnUtc3BlY3MtdGl0bGUiKS5hcHBlbmQobCk7dmFyIHA9e307JC5pc0VtcHR5T2JqZWN0KGMoKS5jYXJzLmRldGFpbHMpPyQud2hlbihjKCkuc3BlY3NBamF4KS5kb25lKGZ1bmN0aW9uKHkpe3A9YygpLmNhcnMuZmluZEJ5SWQoJChtKS5kYXRhKCJtb2RlbGlkIikpfSk6cD1jKCkuY2Fycy5maW5kQnlJZCgkKG0pLmRhdGEoIm1vZGVsaWQiKSk7aWYoISQuaXNFbXB0eU9iamVjdChwKSl7dmFyIHc9YS5zaG91bGRVc2VGcmVuY2hOYW1lcygpPwpwLm5hbWU6cC5tb2RlbDtwLmhhc093blByb3BlcnR5KCJiYXNlX3N0eWxlIikmJihwPXAuYmFzZV9zdHlsZSx3PXAubW9kZWwpO3E9IkZSRU5DSCI9PSQoIiN0ZXh0TGFuZ3VhZ2UiKS52YWwoKT8iTi9EIjoiTi9BIjtsPSIiPT1wLmRpc3BsYWNlbWVudD9xOnAuZGlzcGxhY2VtZW50O3U9IiI9PXAuY2l0eUZ1ZWw\/cTpwLmNpdHlGdWVsO3E9IiI9PXAuaHd5RnVlbD9xOnAuaHd5RnVlbDt2YXIgej1wLm1zcnBBbGxJbixEPSQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS50ZXh0KCkudHJpbSgpO0Q9RC5yZXBsYWNlKCIkTU9ERUwiLHcpO3c9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7ei50b0xvY2FsZVN0cmluZygpfTwvc3Bhbj5gO3o9JCgiI0FETUlOX05FV19ET05UX1NIT1dfUFJJQ0VfTU9ERUxTIikudmFsKCkuaW5jbHVkZXMocC5tb2RlbGlkKTtpZigwPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmxlbmd0aCl7JChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikudGV4dCgiIik7CnZhciBDPSQoJzxkaXYgY2xhc3M9InByaWNlIi8+JyksRT0kKCc8c3BhbiBjbGFzcz0icHJpY2VfYW10Ii8+JyksRz0kKCc8c3BhbiBjbGFzcz0icHJpY2Vfc2NyYXRjaGVkIi8+JyksSD0kKCc8c3BhbiBjbGFzcz0icHJpY2VfcHJvbW8iLz4nKTswPCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2Utc2NyYXRjaCIpLmxlbmd0aD8oRy5odG1sKHcpLEUuYXBwZW5kKEcpLEUuY3NzKHsidGV4dC1kZWNvcmF0aW9uIjoibGluZS10aHJvdWdoIixjb2xvcjoicmVkIn0pKTpFLmh0bWwodyk7Qy5hcHBlbmQoRSk7MDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlX3Byb21vIikubGVuZ3RoJiYoSC50ZXh0KCQobSkuY2hpbGRyZW4oIi5wcmljZSIpLmNoaWxkcmVuKCIucHJpY2VfcHJvbW8iKS50ZXh0KCkpLEguY3NzKHtjb2xvcjoicmVkIn0pLEMuYXBwZW5kKEgpKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5hcHBlbmQoQyl9ZWxzZSAkKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS5odG1sKHcpOwokKGcpLmZpbmQoIi5tZW51LXNwZWMtaHAiKS50ZXh0KHAuaHBBdFJQTSk7JChnKS5maW5kKCIubWVudS1zcGVjLXBvd2VyIikudGV4dChsKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1jaXR5IikudGV4dCh1KTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZnVlbC1oaWdod2F5IikudGV4dChxKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtZHJpdmV0cmFpbiIpLnRleHQocC5kcml2ZVRyYWluKTskKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikuY29udGVudHMoKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMz09dGhpcy5ub2RlVHlwZX0pLmxhc3QoKS5yZXBsYWNlV2l0aChEKTt6JiYoJChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLnJlbW92ZSgpLCQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLnRleHQoJCgiI05FV19QUklDRV9URVhUIikudmFsKCkpKTtsPSQoZykuZmluZCgiLm1lbnUtcHJpY2UtdGV4dCIpO3U9bC5hdHRyKCJkYXRhLXByaWNlLXRlbXBsYXRlIil8fGwudGV4dCgpOwpsLnRleHQoZCh1LHApKTs1RTg+cC5pZCYmJChtKS5hcHBlbmQoZy5mYWRlSW4oMjAwKSk7bD1uZXcgQ3VzdG9tRXZlbnQoInRvcG5hdi10ZWNoLXNwZWMtbG9hZGVkIix7ZGV0YWlsOnt0ZW1wbGF0ZTpnfX0pO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQobCl9fXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgeT1hLnBvc2l0aW9ucyhtLGYsJChnKSk7eS51cGRhdGUoKTt2YXIgQT0kKG0pLnBhcmVudCgidWwuc3ViIikucGFyZW50KCkucGFyZW50KCk7QS5vZmZzZXQoKTtBLm91dGVySGVpZ2h0KCk7eS5zcGVjc0JvdHRvbTx5LnN1Yk1lbnVJdGVtVG9wJiYkKGcpLmNzcygidG9wIix5LnN1Yk1lbnVJdGVtQm90dG9tLXkuc3BlY3NCb3R0b20pO3kuc3ViTWVudUl0ZW1Ub3A8eS5zcGVjc0JvdHRvbSYmeS5zdWJNZW51SXRlbUJvdHRvbT55LnNwZWNzQm90dG9tJiYkKGcpLmNzcygidG9wIiwkKGcpLnBvc2l0aW9uKCkudG9wKyh5LnN1Yk1lbnVJdGVtQm90dG9tLXkuc3BlY3NCb3R0b20pKX0sCjApO2RlbGV0ZSBwfX0pOyQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcDpub3QoLmlzT3BlbiknKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oZil7JChmLmN1cnJlbnRUYXJnZXQpLmhhc0NsYXNzKCJpc09wZW4iKXx8JCgnLnVwX21lbnUgW2lkXj0iTWFpbk1lbnVfIl0udG9wJykucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfSk7JChkb2N1bWVudCkub24oImNsaWNrIixmdW5jdGlvbihmKXtjaGlsZE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsJCgiLnVwX21lbnUiKVswXSl8fCQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcCcpLnJlbW92ZUNsYXNzKCJpc09wZW4iKX0pOyQoIiNNYWluTWVudV9DT05UQUNUIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oZil7dmFyIGc9JCgiI21lbnUtbWFwLWxpbmsiKTswPT1nLmxlbmd0aHx8MDxnLmZpbmQoImlmcmFtZSIpLmxlbmd0aHx8aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbihtKXttPSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/IisKWyJxPSIrZW5jb2RlVVJJQ29tcG9uZW50KGcuZGF0YSgicGxhY2VJZCIpKSwiem9vbT0iK2cuZGF0YSgiem9vbSIpLCJsYW5ndWFnZT0iK2cuZGF0YSgibGFuZ3VhZ2UiKSwicmVnaW9uPUNBIiwia2V5PSIrbV0uam9pbigiJiIpO2cuYXBwZW5kKCc8aWZyYW1lIHNyYz0iJyttKyciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjQwMCIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpfSl9KTskKCIjTWFpbk1lbnVfRklOQU5DRSwgI01haW5NZW51X0NPTlRBQ1QiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbihmKXt2YXIgZz1mLmN1cnJlbnRUYXJnZXQuaWQsbT0kKCIjIitnKTswPT09JCgiIyIrZysiLmlzT3BlbiIpLmxlbmd0aCYmIm1vdXNlbGVhdmUiIT09Zi50eXBlJiZtLmFkZENsYXNzKCJpc09wZW4iKTtpZigibW91c2VsZWF2ZSI9PT1mLnR5cGUpe3ZhciBsPSQoIi5jcmVkaXRTY29yZVBvcHVwRm9ybSIpWzBdOwpnPSQoIiMiK2crIiA+IGEudG9wX2xpbmsiKVswXTsobCYmZi5mcm9tRWxlbWVudD09PWx8fGcmJmYuZnJvbUVsZW1lbnQ9PT1nKSYmbS5yZW1vdmVDbGFzcygiaXNPcGVuIik7bD0kKGYudG9FbGVtZW50KS5oYXNDbGFzcygiY2FsLXdyYXBwZXIiKXx8JChmLnRvRWxlbWVudCkuY2hpbGRyZW4oKS5oYXNDbGFzcygiY2FsLXdyYXBwZXIiKXx8JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoIm5lYkNhbCIpfHwkKGYudG9FbGVtZW50KS5jbG9zZXN0KCIubmViQ2FsIikubGVuZ3RoO2c9JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoInBhYy1jb250YWluZXIiKTtpZighKG51bGw9PT1mLnRvRWxlbWVudHx8Y2hpbGRPZihmLnRvRWxlbWVudCxtWzBdKXx8Y2hpbGRPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50LG1bMF0pfHxsfHxnKXx8Y2hpbGRPZihmLnRvRWxlbWVudCwkKCIudXBfbWVudSIpWzBdKSYmIWNoaWxkT2YoZi50b0VsZW1lbnQsbVswXSkpJCgiLm5lYkNhbCIpLmlzKCI6dmlzaWJsZSIpJiYKKGY9JCgiLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0IC5jcmVkaXRTY29yZUJpcnRoZGF0ZSIpLmRhdGEoIm5lYkNhbCIpKSYmZi5oaWRlKCksbS5yZW1vdmVDbGFzcygiaXNPcGVuIil9fSk7aWYoJCghMCkpe2U9JCgiLm1lbnU1IC5uYXYgPiBsaSIpO2s9ZS5sZW5ndGg7dmFyIHg9JCgiI01haW5NZW51X0NPTlRBQ1QiKSx2PS0xO2UuZWFjaChmdW5jdGlvbihmLGcpeyQoZykuaXMoeCkmJih2PWYpfSk7LTE8diYmLjU8PXYvayYmeC5maW5kKCIuY29udGFjdHVzLWZvcm0uY29udGFjdC1zaG9ydCIpLmNzcyh7cmlnaHQ6ImluaGVyaXQifSl9dGhpcy5zaG91bGRVc2VGcmVuY2hOYW1lcz1mdW5jdGlvbigpe3JldHVybiJGUkVOQ0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJiIxIj09PSQoIiNuZXdfdHJhbnNsYXRlZF90aXRsZXMiKS52YWwoKX07dGhpcy5zZXRNZW51RXhwcmVzc0Zvcm1TZWxlY3RlZE9wdGlvbj1mdW5jdGlvbigpe3ZhciBmPXdpbmRvdy5sb2NhdGlvbi5ocmVmLApnPS91c2VkfG9jY2FzaW9uLy50ZXN0KGYpLG09L25ld3xuZXVmcy8udGVzdChmKSxsPS9maW5hbmNlbWVudHxjcmVkaXQvLnRlc3QoZiksdT0vc2VydmljZXxhY2Nlc3Nvcmllc3x0aXJlfHBuZXVzfGJvZHlzaG9wfGJvZHktc2hvcHxjYXJvc3NlcmllLy50ZXN0KGYpO2Y9IiI7bT9mPSJuZXciOmc\/Zj0idXNlZCI6bD9mPSJmaW5hbmNlIjp1JiYoZj0ic2VydmljZSIpOyIiIT1mJiYoZz0kKCIubWVudSAjcXVpY2tFbWFpbERlcGFydG1lbnQiKSwkKCcgb3B0aW9uW3ZhbHVlPSInK2YrJyJdJyxnKS5wcm9wKCJzZWxlY3RlZCIsInNlbGVjdGVkIiksbT0kKCJvcHRpb246c2VsZWN0ZWQiLGcpLmluZGV4KCksZy5wcmV2KCJ1bCIpLmZpbmQoImxpIikuZXEobSkuZmluZCgiYSIpLnRyaWdnZXIoImNsaWNrIikpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5zZXRNZW51RXhwcmVzc0Zvcm1TZWxlY3RlZE9wdGlvbigpfSwxMCk7Y29uc29sZS5sb2coIk1lbnVIYW5kbGVyIGluaXQgLS0gdGVzdCByZW1vdmUgbGF0ZXIiKTsKdGhpcy50cmFuc2xhdGVUaXRsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e3ZhciBmPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLW1lbnUtdHJhbnNsYXRlXSIpO2lmKGYpe3ZhciBnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKS5jbGFzc05hbWUubWF0Y2goIkZSRU5DSCIpPyJmciI6ImVuIixtPShuZXcgVVJMKGAvanMvanNvbi9tZW51VGl0bGVzXyR7Z30uanNvbmAsd2luZG93LmxvY2F0aW9uLm9yaWdpbikpLmhyZWY7cmVzcG9uc2U9eWllbGQgZmV0Y2gobSk7aWYodGV4dD15aWVsZCByZXNwb25zZS50ZXh0KCkpaWYoZGF0YT1KU09OLnBhcnNlKHRleHQpLGYmJjAhPT1kYXRhLmxlbmd0aClmb3IoZz0wO2c8Zi5sZW5ndGg7ZysrKXt2YXIgbD1mW2ddLmdldEF0dHJpYnV0ZSgiZGF0YS1tZW51LXRyYW5zbGF0ZSIpO2RhdGFbbF0mJkJhc2U2NC5pc0Jhc2U2NChkYXRhW2xdLnRleHQpJiYKKGZbZ10udGV4dENvbnRlbnQ9QmFzZTY0LmRlY29kZShkYXRhW2xdLnRleHQpKX19fWNhdGNoKHUpe2NvbnNvbGUubG9nKHUpfX0pfTt0aGlzLnRyYW5zbGF0ZVRpdGxlcygpfX0pKCk7JChmdW5jdGlvbigpe3dpbmRvdy5tZW51SGFuZGxlcj1uZXcgTWVudUhhbmRsZXJ9KTsKdmFyIGdldEFjdGl2ZVBhZ2U9ZnVuY3Rpb24oKXt2YXIgYT0iIjsidW5kZWZpbmVkIj09PXR5cGVvZiBhY3RpdmVQYWdlJiYoYWN0aXZlUGFnZT0iIik7c3dpdGNoKGFjdGl2ZVBhZ2Upe2Nhc2UgIkhPTUVQQUdFIjphPSJBY2N1ZWlsIjticmVhaztjYXNlICJDQVJERVRBSUxTIjphPSJPY2Nhc2lvbi1WRFAiO2JyZWFrO2Nhc2UgIlVTRURDQVJTIjphPSJPY2Nhc2lvbi1TUlAiO2JyZWFrO2Nhc2UgIk5FV0NBUlMiOmE9Ik5ldWYtU1JQIjticmVhaztjYXNlICJORVdDQVJERVRBSUxTIjphPSJOZXVmLVZEUCJ9cmV0dXJuIGF9LHNlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudD1mdW5jdGlvbihhLGIpe2dhVHJhY2soIl90cmFja0V2ZW50IiwiQ2xpcXVlcyBCYW5uaWVyZSIsYSxiLDEpfTsKJChkb2N1bWVudCkub24oImNsaWNrIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyID4gYSIsZnVuY3Rpb24oYSl7aWYoYT1nZXRBY3RpdmVQYWdlKCkpe3ZhciBiPSIiIT0kKHRoaXMpLmF0dHIoImhyZWYiKT8kKHRoaXMpLmF0dHIoImhyZWYiKToiUG9wdXAiO3NlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLGIpfX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIgPiBhIixmdW5jdGlvbihhKXtpZihhPWdldEFjdGl2ZVBhZ2UoKSl7dmFyIGI9IiIhPSQodGhpcykuYXR0cigiaHJlZiIpPyQodGhpcykuYXR0cigiaHJlZiIpOiJQb3B1cCI7c2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50KGEsYil9fSk7CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiN0b3BCYW5uZXJJbWFnZSIsZnVuY3Rpb24oYSl7KGE9Z2V0QWN0aXZlUGFnZSgpKSYmc2VuZEdvb2dsZUFuYWx5dGljQmFubmVyQ2xpY2tlZEV2ZW50KGEsIlBvcHVwIil9KTt2YXIgaG9tZVBhZ2VCYW5uZXJWaWV3PVtdOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciA+IGEiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJiJBY2N1ZWlsIj09YSYmKGE9JCgiI3NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiRGVza3RvcC1jbGljayIsYSwxKSl9KTsKJChkb2N1bWVudCkub24oIm5pdm9TbGlkZXJDaGFuZ2VkIG5pdm9TbGlkZXJMb2FkZWQiLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIiLGZ1bmN0aW9uKGEpeyEoYT1nZXRBY3RpdmVQYWdlKCkpfHwiQWNjdWVpbCIhPWF8fDUwMDwkKGRvY3VtZW50KS5zY3JvbGxUb3AoKXx8KGE9JCgiI3NsaWRlciIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLDA+JC5pbkFycmF5KGEsaG9tZVBhZ2VCYW5uZXJWaWV3KSYmKGhvbWVQYWdlQmFubmVyVmlldy5wdXNoKGEpLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiRGVza3RvcC12aWV3IixhLDEpKSl9KTsKJChkb2N1bWVudCkub24oImNsaWNrIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiA+IGEiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJiJBY2N1ZWlsIj09YSYmKGE9JCgiI21vYmlsZVNsaWRlcjIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIk1vYmlsZS1jbGljayIsYSwxKSl9KTsKJChkb2N1bWVudCkub24oIm5pdm9TbGlkZXJDaGFuZ2VkIG5pdm9TbGlkZXJMb2FkZWQiLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyIixmdW5jdGlvbihhKXshKGE9Z2V0QWN0aXZlUGFnZSgpKXx8IkFjY3VlaWwiIT1hfHwzNTA8JChkb2N1bWVudCkuc2Nyb2xsVG9wKCl8fChhPSQoIiNtb2JpbGVTbGlkZXIyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsMD4kLmluQXJyYXkoYSxob21lUGFnZUJhbm5lclZpZXcpJiYoaG9tZVBhZ2VCYW5uZXJWaWV3LnB1c2goYSksZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJNb2JpbGUtdmlldyIsYSwxKSkpfSk7CmZ1bmN0aW9uIHRocmVzaG9sZFBvcHVwKCl7dmFyIGE9Z2V0VXJsVmFycygpO2lmKG51bGw9PUNvb2tpZXMuZ2V0KCJwb3B1cFNob3duIil8fCJ1bmRlZmluZWQiIT10eXBlb2YgYS5kZWJ1ZylzaG93UG9wdXBXaWRnZXQoe2RvTm90UmVkaXJlY3Q6ITB9KSxDb29raWVzLnNldCgicG9wdXBTaG93biIsIjEiLDkwLCIvIil9ZnVuY3Rpb24gX2xvY2FsU3RvcmFnZVNldChhLGIsYyl7Yz04NjRFNSooY3x8MSk7Yj17dmFsdWU6YixleHBpcnk6KG5ldyBEYXRlKS5nZXRUaW1lKCkrY307bG9jYWxTdG9yYWdlLnNldEl0ZW0oYSxKU09OLnN0cmluZ2lmeShiKSl9ZnVuY3Rpb24gX2xvY2FsU3RvcmFnZUdldChhKXt2YXIgYj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShhKTtpZighYilyZXR1cm4gbnVsbDtiPUpTT04ucGFyc2UoYik7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCk+Yi5leHBpcnk\/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGEpLG51bGwpOmIudmFsdWV9CmZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VSZW1vdmUoYSl7aWYoIWxvY2FsU3RvcmFnZS5nZXRJdGVtKGEpKXJldHVybiBudWxsO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGEpO3JldHVybiBudWxsfWZ1bmN0aW9uIGdlbmVyYXRlVW5pcXVlSWQoKXtyZXR1cm4iaWQtIitEYXRlLm5vdygpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyKX1jb25zdCBpbml0VG9vbHRpcHM9KCk9Pnt0cnl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtcG9wcGVyXSIpLmZvckVhY2goYT0+e1Rvb2x0aXAoYSkuY3JlYXRlKCl9KX1jYXRjaChhKXtjb25zb2xlLmxvZygiVG9vbHRpcCBvYmplY3Qgbm90IGZvdW5kIil9fTsKZnVuY3Rpb24gaGFuZGxlQ29va2llQ29udGVudCgpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNvb2tpZWhpZGVdIikuZm9yRWFjaChhPT57bGV0IGI9YS5kYXRhc2V0LmNvb2tpZWhpZGU7Yi5sZW5ndGgmJkNvb2tpZXMuZ2V0KGIpJiYoYS5oaWRkZW49ITApfSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiW2RhdGEtY29va2llc2hvd10iKS5mb3JFYWNoKGE9PntsZXQgYj1hLmRhdGFzZXQuY29va2llc2hvdztiLmxlbmd0aCYmQ29va2llcy5nZXQoYikmJihhLmhpZGRlbj0hMSl9KX12YXIgc2l0ZVBhZ2U9e307CmNvbnN0IGRvY1JlYWR5PWZ1bmN0aW9uKCl7X2xvY2FsU3RvcmFnZUdldCgiZDJjLXVpZCIpfHxfbG9jYWxTdG9yYWdlU2V0KCJkMmMtdWlkIixnZW5lcmF0ZVVuaXF1ZUlkKCksMik7aWYoImNvbXBsZXRlIj09PWRvY3VtZW50LnJlYWR5U3RhdGUpe2xldCBhO2NvbnNvbGUubG9nKCJHU1BFRUQtRE9DUkVBRFkgQ09NUExFVEU6IisoRGF0ZS5ub3coKS0obnVsbCE9KGE9d2luZG93LmdUZXN0U3BlZWRDb25uKT9hOjApKS8xRTMpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi10eHQiKS5mb3JFYWNoKGI9PntiLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXR4dCIsITEpfSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNrZWxldG9uLXNsaWRlciIpLmZvckVhY2goYj0+e2IuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tc2xpZGVyIiwhMSl9KTt3aW5kb3cuZ1NrZWxldG9uSXNSZW1vdmVkPSEwO3NpdGVQYWdlPXtuYW1lOiJ1bmRlZmluZWQiIT10eXBlb2YgcGFnZT8KcGFnZToiIixpc01vYmlsZToiMSI9PShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaXNtb2JpbGUiKXx8IiIpLnZhbHVlLGxhbmc6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmVzaXRlbGFuZ3VhZ2UiKXx8IiIpLnZhbHVlfHwiRlJFTkNIIn07aGFuZGxlQ29va2llQ29udGVudCgpO2luaXRUb29sdGlwcygpO2RvY1JlYWR5QXJyLmZvckVhY2goYj0+YigpKTtkb2NSZWFkeUFycj1bXX1lbHNle2xldCBhO2lmKCJpbnRlcmFjdGl2ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlJiZ3aW5kb3cuZ1Jlc291cmNlTG9hZGVyQW5kSnF1ZXJ5SXNSZWFkeSYmITE9PT0obnVsbCE9KGE9d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZCk\/YTohMSkpe2xldCBiO2NvbnNvbGUubG9nKCJHU1BFRUQtRE9DUkVBRFkgSU5URVJBQ1RJVkU6IisoRGF0ZS5ub3coKS0obnVsbCE9KGI9d2luZG93LmdUZXN0U3BlZWRDb25uKT9iOjApKS8xRTMpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi10eHQiKS5mb3JFYWNoKGM9Pgp7Yy5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi10eHQiLCExKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi1zbGlkZXIiKS5mb3JFYWNoKGM9PntjLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXNsaWRlciIsITEpfSk7d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD0hMH1zZXRUaW1lb3V0KGRvY1JlYWR5LDUwKX19O2RvY1JlYWR5KCk7CiQoZnVuY3Rpb24oKXt2YXIgYT0hMDskKHdpbmRvdykub24oInNjcm9sbCIsZnVuY3Rpb24oKXt2YXIgZD0kKGRvY3VtZW50KS5oZWlnaHQoKSxlPSQod2luZG93KS5oZWlnaHQoKSskKHdpbmRvdykuc2Nyb2xsVG9wKCk7LjA1PihkLWUpL2QmJmEmJihhPSExLCJ1bmRlZmluZWQiIT09dHlwZW9mIGdhVHJhY2smJmdhVHJhY2soIl90cmFja0V2ZW50IiwiQm90dG9tIG9mIHBhZ2UgcmVhY2hlZCIsJCgnaW5wdXRbbmFtZT0idGFyZ2V0UGFnZSJdJykudmFsKCksd2luZG93LmxvY2F0aW9uLmhyZWYsMSkpfSk7JCgiLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlIikucGFyZW50KCIud3JhcHBlciIpLnJlbW92ZUNsYXNzKCJ3cmFwcGVyIik7aWYoJCgiI2lzQnJhbmRQYWdlIikubGVuZ3RoKXt2YXIgYj1nZXRVcmxWYXJzKCk7aWYoYi5rdyYmLTEhPWIua3cudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJjYW5hZGEiKSl7dmFyIGM9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpJiYiRU5HTElTSCI9PQokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/ImVuIjoiZnIiO2I9ImVuIj09Yz8iSGVyZSB3ZSBvZmZlciB0aGUgYmVzdCBwcmljZXMiOiJJY2kgb24gb2ZmcmUgbGVzIG1laWxsZXVycyBwcml4IjtjPSJlbiI9PWM\/Im9uICIrJCgiI2lzQnJhbmRQYWdlIikudmFsKCkrIidzIGluIENhbmFkYSI6JCgiI2lzQnJhbmRQYWdlIikudmFsKCkrIiBhdSBDYW5hZGEiOyQoIiNkZWZhdWx0VG9wQmFubmVyVGl0bGUiKS50ZXh0KGIpOyQoIiNkZWZhdWx0VG9wQmFubmVyVGV4dCIpLnRleHQoYyl9fSQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihiPWdldFVybFZhcnMoKSxiLmZpbmFuY2Vwb3AmJiJ5ZXMiPT1iLmZpbmFuY2Vwb3AmJnNldFRpbWVvdXQoKCk9PnskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5vcGVuKCl9LDFFMykpOzA8JCgiLnRyYWRlc2lpLXJvb3QiKS50ZXh0KCkubGVuZ3RoPyQoIi50cmFkZXNpaS1yb290IikuY3NzKCJ6LWluZGV4IiwKMUUzKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnRyYWRlc2lpLXJvb3QiKS5jc3MoInotaW5kZXgiLDFFMyl9LDFFMyl9KTtmdW5jdGlvbiBhZGRNYXhMZW5ndGgoKXskKCI6aW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5hdHRyKCJ0eXBlIiksYj0kKHRoaXMpLmF0dHIoIm1heGxlbmd0aCIpO2lmKHZvaWQgMD09Ynx8bnVsbD09Ynx8IiI9PWIpInRleHQiPT1hfHwidGVsIj09YXx8ImVtYWlsIj09YXx8InVybCI9PWE\/JCh0aGlzKS5wcm9wKCJtYXhsZW5ndGgiLDI1Nik6Im51bWJlciI9PWEmJigkKHRoaXMpLnByb3AoIm9uaW5wdXQiLCJ0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMCx0aGlzLm1heGxlbmd0aCkiKSwkKHRoaXMpLnByb3AoIm1heGxlbmd0aCIsMjU2KSl9KX1kb2NSZWFkeUFyci5wdXNoKCgpPT57JCgiLnJldmVhbC1tb2RhbCIpLm9uKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbigpe2FkZE1heExlbmd0aCgpfSk7YWRkTWF4TGVuZ3RoKCl9KTsKKGZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCxlKXt0aGlzLmVsPWQ7dGhpcy4kZWw9YShkKTtpZih2b2lkIDA9PT1lfHwib2JqZWN0Ij09PXR5cGVvZiBlKXRoaXMuc2V0dGluZ3M9YS5leHRlbmQoYyxlKTt0aGlzLmluaXQoKX12YXIgYz17bGF0OiIiLGxvbmc6IiIscG9zdGFsOiIiLHJhdGlvOi42ODg1LHdpZHRoOiJhdXRvIn07Yi5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLiRlbC5pcygiLmxhenlsb2FkIik\/ImRhdGEtaW1nc3JjIjoic3JjIjt0aGlzLiRlbC5hdHRyKGQsdGhpcy5nZXRVcmwoKSl9LGlzVmlzaWJsZTpmdW5jdGlvbigpe3ZhciBkPXRoaXMuJGVsLmF0dHIoIndpZHRoIik7cmV0dXJuISgiMHB4Ij09PXRoaXMuJGVsLmF0dHIoImhlaWdodCIpfHwiMHB4Ij09PWQpfSxnZXRXaWR0aDpmdW5jdGlvbigpe3RoaXMuJGVsLmF0dHIoIndpZHRoIik7dmFyIGQ9MDsiYXV0byI9PT10aGlzLnNldHRpbmdzLndpZHRofHwiYXV0byI9PT10aGlzLiRlbC5kYXRhKCJ3aWR0aCIpPwpkPXRoaXMuJGVsLnBhcmVudCgpLmNzcygid2lkdGgiKTppc05hTihwYXJzZUludCh0aGlzLnNldHRpbmdzLndpZHRoKSk\/dm9pZCAwIT09dGhpcy4kZWwuYXR0cigid2lkdGgiKSYmKGQ9dGhpcy4kZWwuYXR0cigid2lkdGgiKSk6ZD10aGlzLnNldHRpbmdzLndpZHRoO3RoaXMuJGVsLmF0dHIoIndpZHRoIixkKTtyZXR1cm4gcGFyc2VJbnQoZC5yZXBsYWNlKCJweCIsIiIpKX0sZ2V0SGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGQ9ImF1dG8iPT09dGhpcy5zZXR0aW5ncy53aWR0aHx8ImF1dG8iPT09dGhpcy4kZWwuZGF0YSgid2lkdGgiKT9NYXRoLnJvdW5kKHRoaXMuZ2V0V2lkdGgoKSp0aGlzLnNldHRpbmdzLnJhdGlvKSsicHgiOnRoaXMuJGVsLnBhcmVudCgpLmNzcygiaGVpZ2h0Iik7dGhpcy4kZWwuYXR0cigiaGVpZ2h0IixkKTtyZXR1cm4gcGFyc2VJbnQoZC5yZXBsYWNlKCJweCIsIiIpKX0sZ2V0VXJsOmZ1bmN0aW9uKCl7dmFyIGQ9Z2V0RGF0YUF0dHJpYnV0ZXModGhpcy5lbCksCmU9dGhpcy5nZXRXaWR0aCgpLGs9dGhpcy5nZXRIZWlnaHQoKSxoPWQubGF0KyIsIitkLmxvbmcsbj1kLmhhc093blByb3BlcnR5KCJtYXJrZXJJY29uIik\/Imljb246IitkLm1hcmtlckljb24rInwiOiIiO2Q9YS5leHRlbmQoe3NpemU6ZSsieCIrayxjZW50ZXI6aCx6b29tOiIxMiIsbWFya2VyczpuK2h9LGQpO3JldHVybiJodHRwczovL21hcHMuZ29vZ2xlYXBpcy5jb20vbWFwcy9hcGkvc3RhdGljbWFwPyIrYS5wYXJhbShkKX0sZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuJGVsLnJlbW92ZURhdGEoKX19O2EuZm4uZ29vZ2xlU3RhdGljTWFwPWZ1bmN0aW9uKGQpe3ZhciBlPWFyZ3VtZW50cztpZigxPnRoaXMubGVuZ3RoKXJldHVybiB0aGlzO3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKCFhLmRhdGEodGhpcywicGx1Z2luX3N0YXRpY01hcCIpKXJldHVybiBhLmRhdGEodGhpcywicGx1Z2luX3N0YXRpY01hcCIsbmV3IGIodGhpcyxkKSksdGhpc30pO2lmKCJzdHJpbmciPT09dHlwZW9mIGQmJgoiXyIhPT1kWzBdJiYiaW5pdCIhPT1kKXsxPHRoaXMubGVuZ3RoJiZjb25zb2xlLmxvZygiZ29vZ2xlU3RhdGljTWFwIHdhcm5pbmcgY29kZSAxIik7dmFyIGs9YS5kYXRhKHRoaXMuZmlyc3QoKVswXSwicGx1Z2luX3N0YXRpY01hcCIpO3JldHVybiBrW2RdLmFwcGx5KGssQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZSwxKSl9cmV0dXJuIHRoaXN9fSkoalF1ZXJ5KTtmdW5jdGlvbiBwYXJzZVF1ZXJ5KGEpe2lmKDE+YS5sZW5ndGgpcmV0dXJue307Zm9yKHZhciBiPXt9LGM9YS5zcGxpdCgiJiIpLGQ9MDtkPGMubGVuZ3RoO2QrKylhPWV4cGxvZGUoY1tkXSwiPSIsMSksYlthWzBdXT1hWzFdO3JldHVybiBifWZ1bmN0aW9uIGRlY29kZVN0cmluZyhhLGIpe2lmKCIiPT1ifHwidW5kZWZpbmVkIj09YiliPTE7Zm9yKGk9MDtpPGI7aSsrKWE9ZGVjb2RlVVJJQ29tcG9uZW50KGEpO3JldHVybiBhfQpmdW5jdGlvbiBleHBsb2RlKGEsYixjKXthPWEuc3BsaXQoYik7aWYoYS5sZW5ndGg8PWMpcmV0dXJuIGE7Yz1hLnNwbGljZSgwLGMpO2MucHVzaChhLmpvaW4oYikpO3JldHVybiBjfWZ1bmN0aW9uIGdldFVybFZhcnMoKXt2YXIgYT13aW5kb3cubG9jYXRpb24uc2VhcmNoLnN1YnN0cmluZygxKTtyZXR1cm4gcGFyc2VRdWVyeShhKX1mdW5jdGlvbiBnZXRDb29raWUoYSl7cmV0dXJuIENvb2tpZXMuZ2V0KGEpfWZ1bmN0aW9uIHNldENvb2tpZShhLGIsYyl7Q29va2llcy5zZXQoYSxiLGMsIi8iKX1mdW5jdGlvbiBnZXRDb29raWVEMmMoYSl7cmV0dXJuIENvb2tpZXMuZ2V0KGEpfWZ1bmN0aW9uIHNldENvb2tpZUQyYyhhLGIsYyl7Q29va2llcy5zZXQoYSxiLGMsIi8iKX1mdW5jdGlvbiBpc1NTTCgpe3JldHVybiJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sfWZ1bmN0aW9uIHNldFNlc3Npb25Db29raWUoYSxiKXtDb29raWVzLnNldChhLGIsMCwiLyIpfQpmdW5jdGlvbiBpbml0TENJKGEsYil7aWYoMjA8YilyZXR1cm4gYjtiPWI\/YjowO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgTENfQVBJfHwidW5kZWZpbmVkIj09dHlwZW9mIExDX0ludml0ZSlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aW5pdExDSShhLCsrYil9LDUwMCk7ZWxzZSBpZigidW5kZWZpbmVkIiE9dHlwZW9mIExDX0FQSSYmInVuZGVmaW5lZCIhPXR5cGVvZiBMQ19JbnZpdGUmJmEpcmV0dXJuIExDX0FQSS5zZXRfY3VzdG9tX3ZhcmlhYmxlcyhhKX1mdW5jdGlvbiBnZXRSZWZlcnJlclZhckZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigpeyIiPT1hJiYoYT1kb2N1bWVudC5yZWZlcnJlcik7dmFyIGI9YS5pbmRleE9mKCI\/IikrMTtyZXR1cm4gMDxiPyhiPWEuc2xpY2UoYikscGFyc2VRdWVyeShiKSk6e319fQooZnVuY3Rpb24oYSl7dmFyIGI9e2NhbGxiYWNrczpbXSxoYXNTY3JpcHQ6ZnVuY3Rpb24oKXt2YXIgZT1hKCdoZWFkIHNjcmlwdFtzcmMqPSJtYXBzLmpzLnBocCJdJyk7cmV0dXJuIDA9PWUubGVuZ3RoPyExOi9tYXBzXC5qcy8udGVzdChlLmF0dHIoInNyYyIpKX0sbG9hZDpmdW5jdGlvbihlKXtpZihiLmhhc1NjcmlwdCgpKSJ1bmRlZmluZWQiPT09dHlwZW9mIGdvb2dsZT9iLmNhbGxiYWNrcy5wdXNoKGUpOmUoKTtlbHNle2IuY2FsbGJhY2tzLnB1c2goZSk7dHJ5e3ZhciBrPSJFTkdMSVNIIj09YSgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIjsoZnVuY3Rpb24oaCxuLHgsdixmKXtoW2ZdJiZoW2ZdLm1hcHN8fChoPW4uY3JlYXRlRWxlbWVudCh4KSxuPW4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoeClbMF0saC5zcmM9dixoLmFzeW5jPSExLGRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcigiZ29vZ2xlTWFwc0xvYWRlZCIsZz0+e2ZvcihnPTA7ZzxiLmNhbGxiYWNrcy5sZW5ndGg7ZysrKWIuY2FsbGJhY2tzW2ddLmNhbGwoKX0pLApuLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGgsbikpfSkod2luZG93LGRvY3VtZW50LCJzY3JpcHQiLCIvanMvbWFwcy5qcy5waHA\/bGFuZz0iK2ssImdvb2dsZSIpfWNhdGNoKGgpe2NvbnNvbGUubG9nKGgpfX19fSxjPXthdXRvQ29tcGxldGU6e2NvbXBvbmVudFJlc3RyaWN0aW9uczp7Y291bnRyeToiY2EifX0scmFkaXVzOjFFNX0sZD1mdW5jdGlvbihlLGspe3ZhciBoPXRoaXM7aC5lbD1lO2guJGVsPWEoZSk7aC5zZXR0aW5ncz1hLmV4dGVuZChjLGspO2guYWRkcmVzcz17Y2l0eToiIixzdHJlZXRfbnVtYmVyOiIiLHN0cmVldDoiIixzdWJsb2NhbGl0eToiIixwcm92aW5jZToiIixjb3VudHJ5OiIiLHBvc3RhbDoiIn07aC4kZWwub25lKCJmb2N1cyIsZnVuY3Rpb24oKXtoLmluaXQoKX0pfTtkLnByb3RvdHlwZT17X2NoZWNrRm9yR29vZ2xlTWFwczpmdW5jdGlvbihlKXsidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGV8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGdvb2dsZS5tYXBzPwpiLmxvYWQoZSk6ImZ1bmN0aW9uIj09PXR5cGVvZiBlJiZlLmNhbGwoKX0sZ2V0QWRkcmVzczpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkZHJlc3N9LF9zZXRBZGRyZXNzOmZ1bmN0aW9uKGUpe3ZhciBrPXRoaXM7YS5lYWNoKGUsZnVuY3Rpb24oaCxuKXtzd2l0Y2goITApe2Nhc2UgLTE8YS5pbkFycmF5KCJzdHJlZXRfbnVtYmVyIixuLnR5cGVzKTprLmFkZHJlc3Muc3RyZWV0X251bWJlcj1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJyb3V0ZSIsbi50eXBlcyk6ay5hZGRyZXNzLnN0cmVldD1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJzdWJsb2NhbGl0eSIsbi50eXBlcyk6ay5hZGRyZXNzLnN1YmxvY2FsaXR5PW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoImxvY2FsaXR5IixuLnR5cGVzKTpjYXNlIC0xPGEuaW5BcnJheSgiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8zIixuLnR5cGVzKToiIj09ay5hZGRyZXNzLmNpdHkmJihrLmFkZHJlc3MuY2l0eT1uKTticmVhazsKY2FzZSAtMTxhLmluQXJyYXkoImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMSIsbi50eXBlcyk6ay5hZGRyZXNzLnByb3ZpbmNlPW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoImNvdW50cnkiLG4udHlwZXMpOmsuYWRkcmVzcy5jb3VudHJ5PW47YnJlYWs7Y2FzZSAtMTxhLmluQXJyYXkoInBvc3RhbF9jb2RlIixuLnR5cGVzKTprLmFkZHJlc3MucG9zdGFsPW59fSl9LF9zZXRTZWFyY2hCb3VuZHM6ZnVuY3Rpb24oZSxrLGgpe2s9bmV3IGdvb2dsZS5tYXBzLkxhdExuZyhrLGgpO2s9bmV3IGdvb2dsZS5tYXBzLkNpcmNsZSh7Y2VudGVyOmsscmFkaXVzOnRoaXMuc2V0dGluZ3MucmFkaXVzfSk7ZS5zZXRCb3VuZHMoay5nZXRCb3VuZHMoKSl9LGluaXQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuX2NoZWNrRm9yR29vZ2xlTWFwcyhmdW5jdGlvbigpe3ZhciBrPW5ldyBnb29nbGUubWFwcy5HZW9jb2RlcixoPW5ldyBnb29nbGUubWFwcy5wbGFjZXMuQXV0b2NvbXBsZXRlKGUuZWwsCmUuc2V0dGluZ3MuYXV0b0NvbXBsZXRlKTtlLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJsYXQiKSYmZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgibG9uZyIpPyIiIT09ZS5zZXR0aW5ncy5sYXQmJiIiIT09ZS5zZXR0aW5ncy5sb25nJiZlLl9zZXRTZWFyY2hCb3VuZHMoaCxlLnNldHRpbmdzLmxhdCxlLnNldHRpbmdzLmxvbmcpOmUuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImFkZHJlc3MiKT9lLnNldHRpbmdzLmFkZHJlc3MmJmsuZ2VvY29kZSh7YWRkcmVzczplLnNldHRpbmdzLmFkZHJlc3N9LGZ1bmN0aW9uKG4seCl7ZS5fc2V0U2VhcmNoQm91bmRzKGgsblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sYXQoKSxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpKX0pOiJ1bmRlZmluZWQiIT09dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3MmJjA8Zm9vdGVyTWFwQWRkcmVzcy5sZW5ndGgmJmsuZ2VvY29kZSh7YWRkcmVzczpmb290ZXJNYXBBZGRyZXNzWzBdLmFkZHJlc3N9LGZ1bmN0aW9uKG4sCngpe2UuX3NldFNlYXJjaEJvdW5kcyhoLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSl9KTtnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihoLCJwbGFjZV9jaGFuZ2VkIixmdW5jdGlvbigpe3ZhciBuPWguZ2V0UGxhY2UoKTtlLl9zZXRBZGRyZXNzKG4uYWRkcmVzc19jb21wb25lbnRzKTtlLiRlbC52YWwobi5mb3JtYXR0ZWRfYWRkcmVzcyk7bj1uZXcgRXZlbnQoImlucHV0Iik7ZS5lbC5kaXNwYXRjaEV2ZW50KG4pO2UuJGVsLnRyaWdnZXIoImZvY3VzIil9KX0pfX07YS5mbi5nb29nbGVQbGFjZXM9ZnVuY3Rpb24oZSl7dmFyIGs9YXJndW1lbnRzO2lmKHZvaWQgMD09PWV8fCJvYmplY3QiPT09dHlwZW9mIGUpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2EuZGF0YSh0aGlzLCJwbHVnaW5fcGxhY2VzIil8fGEuZGF0YSh0aGlzLCJwbHVnaW5fcGxhY2VzIixuZXcgZCh0aGlzLGUpKX0pO2lmKCJzdHJpbmciPT09dHlwZW9mIGUmJgoiXyIhPT1lWzBdJiYiaW5pdCIhPT1lKXt2YXIgaD1hLmRhdGEodGhpc1swXSwicGx1Z2luX3BsYWNlcyIpO3JldHVybiBoW2VdLmFwcGx5KGgsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaywxKSl9fX0pKGpRdWVyeSk7CmZ1bmN0aW9uIHNob3dCYW5uZXJQb3B1cChhKXt0cnl7JChhKS5oYXNDbGFzcygidHJhZGVpbkxpbmsiKSYmKDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoInRyYWRlaW52YWx1ZXMiKXx8MDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigiaW5zdGFudG9mZmVyLmFjY3UtdHJhZGUuY29tIikpP3Nob3dUcmFkZUluUG9wdXAoYS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpKTowPCQoIiNiYW5uZXJQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmJCgiI2Jhbm5lclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBkaXNwbGF5IHRyYWRlaW52YWx1ZXMgaWZyYW1lLiBFcnJvcjogIitiLm1lc3NhZ2UpfX0KJChmdW5jdGlvbigpezA8JCgnaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzPSJ0cnVlIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJykuZ29vZ2xlUGxhY2VzKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgJC5mbi5kYXJrVG9vbHRpcCYmKCQoIiNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGEsIC5nUmF0aW5nLWljb24iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToibm9ydGgiLG9wYWNpdHk6MX0pLCQoIi5zb2NpYWwtbWVkaWEtaWNvbnMgW2RhdGEtdG9vbHRpcF0iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToic291dGgiLG9wYWNpdHk6MX0pLCQoIiNtaXRzdWJpc2hpQ2VydGlmaWVkRm9vdGVyIGEuc29jaWFsLW1lZGlhX19pY29uLCAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciBhLnNvY2lhbC1tZWRpYV9faWNvbiIpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJzb3V0aCIsb3BhY2l0eToxfSkpO3ZhciBhPSQoIi5ncmF5Ym94LnVzZWREZXRhaWxzUGhvbmUsIC5ncmF5Ym94Lm5ld0RldGFpbHNQaG9uZSIpOwowPT09YS5jaGlsZHJlbigpLmxlbmd0aCYmMD09PWEudGV4dCgpLnRyaW0oKS5sZW5ndGgmJmEuaGlkZSgpfSk7JCgiI2ZpbmFuY2VBbHREaXNwbGF5IC5zdGVwMSBiaWcudGV4dCBiaWciKS5hdHRyKCJkYXRhLWRlcGFydG1lbnQiLCJGaW5hbmNlIik7JCgiLmNyZWRpdF9tX2NhbGx1c193cmFwcGVyIGEiKS5hdHRyKCJkYXRhLWRlcGFydG1lbnQiLCJGaW5hbmNlIik7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgiI2RpdkNlcnRpZmljYXRpb24tY2FyZ3VydXMtd3JhcHBlciIpLmxlbmd0aCYmKGVsZW1lbnRUb09ic2VydmU9d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKS5jaGlsZHJlblswXSxvYnNlcnZlcj1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihhLGIpe2I9JCgiI2RpdkNlcnRpZmljYXRpb24tY2FyZ3VydXMtd3JhcHBlciIpO2xldCBjPSQoInNwYW5bZGF0YS1jZy1lcnJvcl0iLGIpO2NvbnNvbGUubG9nKCJEMkNHIixiLGMsYSk7Yy5sZW5ndGgmJmIucmVtb3ZlKCl9KSxvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnRUb09ic2VydmUse2NoYXJhY3RlckRhdGE6ITEsY2hpbGRMaXN0OiEwLGF0dHJpYnV0ZXM6ITF9KSl9KTskKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpey0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9uZXcvIil8fCQoIiNuZXctdmRwLXNwZWMtYnJvY2h1cmUiKS5oaWRlKCl9KTsKJChmdW5jdGlvbigpeyQoIiNGb290ZXJfRklOQU5DRSA+IGEsIGEjRmluYW5jZUFjdGlvbkJveCwgYSNGaW5hbmNlQWN0aW9uQm94TGluayIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKSxiPSQoImh0bWwiKS5hdHRyKCJsYW5nIik7aWYoMDwkKCIjREVBTEVSUEFDT0RFIikubGVuZ3RoKXt2YXIgYz0kKCIjREVBTEVSUEFDT0RFIikudmFsKCksZD0kKCIjREVBTEVSQlJBTkRfUFJJTUFSWSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk7aWYoImZvcmRfbGluY29sbl9leHRlcm5hbCI9PSQoIiNGSU5BTkNFRk9STVRZUEUiKS52YWwoKSYmKCJmb3JkIj09ZHx8ImxpbmNvbG4iPT1kKSYmIiIhPWMpe3ZhciBlPSgiZW4iPT1iPyJodHRwczovL3d3dy5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IjoiaHR0cHM6Ly9mci5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IikrCmM7Yj0oImVuIj09Yj8iaHR0cHM6Ly93d3cubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iOiJodHRwczovL2ZyLmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IikrYzthLm9mZigiY2xpY2siKTthLmF0dHIoImhyZWYiLCJmb3JkIj09ZD9lOmIpO2EuYXR0cigidGFyZ2V0IiwiX2JsYW5rIil9fX0pfSk7CiQod2luZG93KS5vbigibG9hZCIsZnVuY3Rpb24oKXt0cnl7aWYoZ2V0UGFyYW1ldGVyQnlOYW1lKCJwcm9tbyIpKXt2YXIgYT0wPGFjdGl2YXRlZFBvcHVwRGl2SUQubGVuZ3RoP2FjdGl2YXRlZFBvcHVwRGl2SUQ6ITE7aWYoYSYmMDxhLmxlbmd0aCl7dmFyIGI9JCgiIyIrYSkucG9wdXBpemUoe3ByaW9yaXR5OjEwMCxlbmRQb3B1cFF1ZXVlOiEwfSk7cG9wdXBTdXBlcnZpc29yLnJlZ2lzdGVyKGIpfX0ib2JqZWN0Ij09dHlwZW9mIHBvcHVwU3VwZXJ2aXNvciYmc2V0VGltZW91dChwb3B1cFN1cGVydmlzb3Iuc2hvdyw1MDApfWNhdGNoKGMpe2NvbnNvbGUubG9nKGMpfX0pOwokKGZ1bmN0aW9uKCl7JCgiLm5hdiBhIikub24oImNsaWNrIixmdW5jdGlvbihhKXsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJigoYT0kKHRoaXMpLmF0dHIoImhyZWYiKSkmJiFSZWdFeHAoImphdmFzY3JpcHQ6IiwiZ2kiKS50ZXN0KGEpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGEsIk1FTlVfY2xpY2tlZF9VUkwiKSwoYT0iLyI9PWE\/IkhvbWUiOiQodGhpcykudGV4dCgpKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhLCJNRU5VX2NsaWNrZWRfSU5GTyIpKX0pfSk7CnZhciBEMkNVdGlscz17TGFuZzp7aXNFTjpmdW5jdGlvbigpe3JldHVybiEoImZ1bmN0aW9uIj09PXR5cGVvZiAkJiYkKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpKX0sZ2V0U2hvcnRMYW5nOmZ1bmN0aW9uKGEpe3JldHVybiBEMkNVdGlscy5MYW5nLmlzRU4oKT9hPyJFTiI6ImVuIjphPyJGUiI6ImZyIn19LEZvcm1hdDp7dG9OdW1iZXI6ZnVuY3Rpb24oYSl7YT1hLnRvU3RyaW5nKCkuc3BsaXQoIi4iKTtmb3IodmFyIGI9LyhcZCspKFxkezN9KS87Yi50ZXN0KGFbMF0pOylhWzBdPWFbMF0ucmVwbGFjZShiLCIkMSwkMiIpO3JldHVybiBhWzBdfSx0b1ByaWNlOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGI\/KGI9RDJDVXRpbHMuTGFuZy5pc0VOKCk\/IiI6IiAkIixgJHtEMkNVdGlscy5MYW5nLmlzRU4oKT8iJCI6IiJ9JHtEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYSl9JHtifWApOmA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke0QyQ1V0aWxzLkZvcm1hdC50b051bWJlcihhKX08L3NwYW4+YH19LApOdW1iZXI6e3JvdW5kRG93bjpmdW5jdGlvbihhKXt2YXIgYj0yPT09YXJndW1lbnRzLmxlbmd0aD9wYXJzZUludChhcmd1bWVudHNbMV0pOjE7cmV0dXJuIE1hdGguZmxvb3IoYS9iKSpifSxyb3VuZFVwOmZ1bmN0aW9uKGEpe3ZhciBiPTI9PT1hcmd1bWVudHMubGVuZ3RoP3BhcnNlSW50KGFyZ3VtZW50c1sxXSk6MTtyZXR1cm4gTWF0aC5jZWlsKGEvYikqYn19LEFycmF5czp7ZmluZDpmdW5jdGlvbihhLGIsYyl7dmFyIGQ9YS5sZW5ndGg7aWYoMDxkKWZvcih2YXIgZT0wO2U8ZDtlKyspaWYoYVtlXVtiXT09YylyZXR1cm4gYVtlXTtyZXR1cm4tMX19LFN0cmluZzp7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyOmZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrU3RyaW5nKGEpLnNsaWNlKDEpfX0sTW9iaWxlOntpc01vYmlsZTpmdW5jdGlvbigpe3JldHVybiAwPCQoIiNpc01vYmlsZSIpLmxlbmd0aH19fTsKZnVuY3Rpb24gc2V0dXBGaW5hbmNpbmdMaW5rKGEsYil7NDg1PT0oJCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCkpJiZiLmNsZWFyYW5jZSYmMDxhLmxlbmd0aCYmKGI9JCgiI01haW5NZW51X2Y0ODJiYWFiLWFhYzQtZWRhNi02YjUyLTMgPiBhIiksMD09Yi5sZW5ndGgmJihiPSQoIi5DTEVBUkFOQ0UiKS5wYXJlbnQoKS5maW5kKCIuc3VibWVudUl0ZW06Zmlyc3QtY2hpbGQiKSksMDxiLmxlbmd0aCYmKGI9Yi5hdHRyKCJocmVmIiksIiIhPT1iJiZhLmF0dHIoImhyZWYiLGIpKSl9dmFyIG9wZW5XaW5kb3dzPVtdLHdpbmRvd09wZW5PRz13aW5kb3cub3BlbjsKd2luZG93Lm9wZW49ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3dPcGVuT0cuYXBwbHkodGhpcyxhcmd1bWVudHMpLGI9e3dpbmRvdzphLGFyZ3M6YXJndW1lbnRzfTtvcGVuV2luZG93cy5wdXNoKGIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGpRdWVyeSYmalF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCJ3aW5kb3cub3BlbiIsYik7cmV0dXJuIGF9OwokKGZ1bmN0aW9uKCl7JChkb2N1bWVudCkub24oIndpbmRvdy5vcGVuIixmdW5jdGlvbihhLGIpe2E9Yi5hcmdzO2Zvcih2YXIgYz0hMSxkPTA7ZDxhLmxlbmd0aDtkKyspaWYoLTE8YVtkXS5pbmRleE9mKCJjYXJmYXgiKXx8YVtkXS5pbmRleE9mKCJjYXJwcm9vZiIpKXtjPSEwO2JyZWFrfWlmKGMpe2E9d2luZG93LnNjcmVlbi5hdmFpbEhlaWdodHx8d2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0fHxkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDt0cnl7Yi53aW5kb3cucmVzaXplVG8oYi53aW5kb3cub3V0ZXJXaWR0aCxNYXRoLnJvdW5kKC45NSphKSl9Y2F0Y2goZSl7fX19KX0pOwokKGZ1bmN0aW9uKCl7dmFyIGE9JCgiLnVwX21lbnUiKSxiPSQoIi5wcm9tb3Rpb25TaWRlVkJ1dHRvbiIpLGM9JCgnI3NsaWRlaXQgPiBsYWJlbFtmb3I9Im9wZW4taXRlbSJdOm5vdCgudGV4dC11cy1idG4pJyk7aWYoYS5sZW5ndGgmJmIubGVuZ3RoKXt2YXIgZD0hMSxlPWZ1bmN0aW9uKCl7dmFyIGs9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGg9JCh3aW5kb3cpLmhlaWdodCgpO2s9YS5vZmZzZXQoKS50b3ArYS5vdXRlckhlaWdodCgpKzEwMC1rO2g9TWF0aC5tYXgoaC8yLGspO2IucGFyZW50KCkuaGFzQ2xhc3MoInNwZWNpYWxTY2hlZHVsZUNvbnRlbnQiKXx8InNwZWNpYWxTY2hlZHVsZUNvbnRlbnQiPT1iLnBhcmVudCgpLmF0dHIoImlkIil8fGIuY3NzKHtwb3NpdGlvbjoiZml4ZWQiLHRvcDpoKyJweCIsdHJhbnNmb3JtOiJ0cmFuc2xhdGVZKC01MCUpIix0cmFuc2l0aW9uOiJub25lIn0pO2MubGVuZ3RoJiYoaD1iWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmJvdHRvbSwKYy5jc3Moe3Bvc2l0aW9uOiJmaXhlZCIsdG9wOmgrNSsicHgifSkpO2Q9ITF9OyQod2luZG93KS5vbigic2Nyb2xsIHJlc2l6ZSIsZnVuY3Rpb24oKXtkfHwod2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZShlKSxkPSEwKX0pO3NldFRpbWVvdXQoZSwxMDApfX0pO2Z1bmN0aW9uIHJlcGxhY2VVc2VkVmVoaWNsZU1vZGVsRGlzcGxheShhKXtpZigic3RyaW5nIj09PXR5cGVvZiBhfHxhIGluc3RhbmNlb2YgU3RyaW5nKSJmdW5jdGlvbiI9PT10eXBlb2YgJCYmJCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKXx8LTEhPT1hLmluZGV4T2YoIkh5YnJpZGUiKSYmKGE9YS5yZXBsYWNlKCJIeWJyaWRlIiwiSHlicmlkIikpO3JldHVybiBhfQokKGZ1bmN0aW9uKCl7aWYoJCgiLnBheXBhbF9idXR0b25faHRtbCIpLmxlbmd0aCl7dmFyIGE9JCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iZnIiOiJlbiIsYj0kKCJCT0RZIikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJSw6lzZXJ2ZXotbGUgYXZlYyBQYXlQYWwgISI6IlJlc2VydmUgaXQgIHdpdGggUGF5UGFsICEiOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCdpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdJykuYXR0cigic3JjIiwiL2ltYWdlcy9jb250aW51ZV93aXRoX3BheXBhbF8iK2ErIi5wbmciKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgiZm9ybSIpLmF0dHIoInRhcmdldCIsInBheXBhbElmcmFtZSIpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCJ0YWJsZSB0cjpmaXJzdCB0ZCIpLmNvbnRlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDM9PXRoaXMubm9kZVR5cGV9KS5maXJzdCgpLnJlcGxhY2VXaXRoKGIpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwgZm9ybSIpLmZpbmQoJ1tuYW1lPSJpdGVtX25hbWUiXScpLnJlbW92ZSgpOwokKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5maW5kKCdbbmFtZT0iaXRlbV9udW1iZXIiXScpLnJlbW92ZSgpO2E9JzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Iml0ZW1fbmFtZSIgdmFsdWU9IicrJCgiI3Bob25lbWFrZSIpLnZhbCgpKyIgIiskKCIjcGhvbmVtb2RlbCIpLnZhbCgpKyIgIiskKCIjcGhvbmVteWVhciIpLnZhbCgpKyIgU3RvY2soIyIrJCgiI3Bob25lc3RvY2tudW1iZXIiKS52YWwoKSsnKSI+JzskKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5hcHBlbmQoYSk7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoJ2lucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il0nKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkNsaXF1ZXMgUGF5UGFsIiwiT2NjYXNpb24iLCQoIiNoaWRkZW5EZWFsZXJOYW1lIikudmFsKCkrIi0iKyQoIiNwaG9uZW1ha2UiKS52YWwoKSsiLSIrJCgiI3Bob25lbW9kZWwiKS52YWwoKSsKIi0iKyQoIiNwaG9uZW15ZWFyIikudmFsKCkrIi0iKyQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCksMSl9KTskKCIjcGF5cGFsUG9wdXAiKS5kZXRhY2goKS5hcHBlbmRUbygiYm9keSIpOyQoJy5wYXlwYWxfYnV0dG9uX2h0bWwgaW5wdXRbbmFtZT0ic3VibWl0Il0nKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiI3BheXBhbFBvcHVwIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0pOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5zaG93KCl9JCgiI3Rlc3REcml2ZVR5cGUiKS5sZW5ndGgmJigiVmlydHVhbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCl8fCJWaXJ0dWVsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKSkmJiQoIi5wcmVmZXJlZFZpcnR1YWxUb29sIikuc2hvdygpfSk7CmZ1bmN0aW9uIHByaWNlUmVxdWVzdENvbW1lbnRUZXh0KCl7dmFyIGE9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLGI9JCgiI2lzbW9iaWxlIiksYz0kKCIjcXVlc3Rpb25zQ29tbWVudHMiKTthPSJFTkdMSVNIIj09YS52YWwoKT8iSGksIEknZCBsaWtlIHRvIGdldCB5b3VyIGJlc3QgcHJpY2Ugb24gYSAwICAiOiJCb25qb3VyLCBqJ2FpbWVyYWlzIGF2b2lyIHZvdHJlIG1laWxsZXVycyBwcml4IHBvdXIgdW4gICAwIjswPGIubGVuZ3RoJiYiMSI9PWIudmFsKCkmJjA8Yy5sZW5ndGgmJmMudmFsKCk9PWEmJmMudmFsKCIiKX0kKGZ1bmN0aW9uKCl7cHJpY2VSZXF1ZXN0Q29tbWVudFRleHQoKX0pOwokKGZ1bmN0aW9uKCl7dmFyIGE9JCgiI2Zvb3RlciAuaWNvbi10ZXh0IHNwYW5baXRlbXByb3A9J3RlbGVwaG9uZSddIGEucGhvbmUtbGluayIpLGI9JCgiI2Zvb3RlciAuaWNvbi10ZXh0IC5mYS1waG9uZSIpOzA8YS5sZW5ndGgmJjA8Yi5sZW5ndGgmJiIiPT1hLmh0bWwoKS50cmltKCkmJmIuaGlkZSgpfSk7CmZ1bmN0aW9uIHBhZ2VWaWV3Q291bnRHb29nbGVFdmVudCgpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSxiPTAsYz1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkMmNfVkRQTVYiKTtudWxsIT1jPyhjPUpTT04ucGFyc2UoYyksYj1udWxsIT1jW2FdP2NbYV06MCxjW2FdPXBhcnNlSW50KGIpKzEpOihjPXt9LGNbYV09MSk7YT0iMSI9PSQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKT8iTkVXIjokKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKTswPT1iP2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJWRFAgbXVsdGlwbGUgdmlld3MiLGEsIjF4IiwxKToxPT1iP2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJWRFAgbXVsdGlwbGUgdmlld3MiLGEsIjJ4IiwxKTpnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIzeCsiLDEpO3Nlc3Npb25TdG9yYWdlLnNldEl0ZW0oImQyY19WRFBNViIsSlNPTi5zdHJpbmdpZnkoYykpfQokLmZuLmlzSW5WaWV3cG9ydD1mdW5jdGlvbigpe3ZhciBhPSQodGhpcykub2Zmc2V0KCkudG9wLGI9YSskKHRoaXMpLm91dGVySGVpZ2h0KCksYz0kKHdpbmRvdykuc2Nyb2xsVG9wKCksZD1jKyQod2luZG93KS5oZWlnaHQoKTtyZXR1cm4gYj5jJiZhPGR9OyQuZm4uaXNBYm92ZVZpZXdwb3J0PWZ1bmN0aW9uKGEpe2E9YXx8MDt2YXIgYj0kKHRoaXMpLm9mZnNldCgpLnRvcCskKHRoaXMpLm91dGVySGVpZ2h0KCksYz0kKHdpbmRvdykuc2Nyb2xsVG9wKCk7cmV0dXJuIGI+YythfTtmdW5jdGlvbiBzZXRQb3B1cE9wZW5PbkNsaWNrKCl7JCgiW2RhdGEtcG9wdXBpZF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5hdHRyKCJkYXRhLXBvcHVwaWQiKTskKHRoaXMpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKTskKCIjIithKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfSl9KX0KZnVuY3Rpb24gYWRkRGVhbGVySW5zaWRlU2NyaXB0KCl7aWYoJCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5sZW5ndGgpe3ZhciBhPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1pZERlYWxlciIpLGI9JCgiLmRlYWxlci1pbnNpZGUtY3RhLWFjdGlvbi1ib3giKS5hdHRyKCJkYXRhLWxhbmciKSxjPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1idXR0b24tdHlwZSIpLGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7ZC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2phdmFzY3JpcHQiKTtkLnNldEF0dHJpYnV0ZSgic3JjIiwiaHR0cHM6Ly9kZWFsZXJpbnNpZGVhcHAuY29tL3dpZGdldHMvZGVhbGVyX2luc2lkZV9jYWxsLmpzP2RlYWxlcklkPSIrYSsiJmxhbmc9IitiKyImYnV0dG9uVHlwZT0iK2MpO2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZCl9fQokKGZ1bmN0aW9uKCl7c2V0UG9wdXBPcGVuT25DbGljaygpO2FkZERlYWxlckluc2lkZVNjcmlwdCgpfSk7ZnVuY3Rpb24gbW90b2luc2lnaHRTaG9wR29vZ2xlT3B0aW1pemUoKXskKCIjanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXItaW5wdXQiKS5sZW5ndGgmJiQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikuYXR0cigiZGF0YS1tb3RvaW5zaWdodHNob3BpZnJhbWV1cmwiLCQoIiNqcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lci1pbnB1dCIpLnZhbCgpKX1mdW5jdGlvbiBodG1sVG9Ob2RlKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2IuaW5uZXJIVE1MPWEudHJpbSgpO3JldHVybiBiLmZpcnN0RWxlbWVudENoaWxkfQpmdW5jdGlvbiBodG1sVG9Eb2N1bWVudEZyYWcoYSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGEpfWZ1bmN0aW9uIGh0bWxUb0VsZW1lbnRzKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7Yi5pbm5lckhUTUw9YTtyZXR1cm4gYi5jb250ZW50LmNoaWxkTm9kZXN9CmNvbnN0IHZpZXdQb3J0T2JzZXJ2ZXI9ZnVuY3Rpb24oYSl7bGV0IGI9ITEsYz0hMSxkPTUwO2NvbnN0IGU9az0+e2s9a1swXTtsZXQgaD0uMDE+PWsuaW50ZXJzZWN0aW9uUmF0aW8mJmsuYm91bmRpbmdDbGllbnRSZWN0LnRvcDxkO2MuY2xhc3NMaXN0LnRvZ2dsZSgidG9wLWZpeGVkIixoKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc21zQ3RhQnRuIikuZm9yRWFjaChuPT5uLmhpZGRlbj0haCk7bnVsbCE9PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2FzdC1jb250YWluZXIiKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2FzdC1jb250YWluZXIiKS5oaWRkZW49IWgpfTtyZXR1cm57b2JzZXJ2ZTooKT0+e2lmKGEpe2QrPWEub2Zmc2V0SGVpZ2h0KzE2O3ZhciBrPWEuY2xvc2VzdCgiLm9ic2VydmVkLXdyYXBwZXIiKXx8ITE7aWYoIWspe2xldCBoPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9ImZpeGVkLXdyYXBwZXIiPjwvZGl2PicpO2s9aHRtbFRvTm9kZSgnPGRpdiBjbGFzcz0ib2JzZXJ2ZWQtd3JhcHBlciI+PC9kaXY+Jyk7CmEuYWZ0ZXIoayk7ay5hcHBlbmRDaGlsZChoKTtoLmFwcGVuZENoaWxkKGEpO2suc3R5bGUuaGVpZ2h0PWAke2gub2Zmc2V0SGVpZ2h0fXB4YH1iPWs7Yz1iLnF1ZXJ5U2VsZWN0b3IoIi5maXhlZC13cmFwcGVyIik7KG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihlLHtyb290TWFyZ2luOmAtJHtkfXB4IDBweCAwcHggMHB4YCx0aHJlc2hvbGQ6WzAsLjAxXX0pKS5vYnNlcnZlKGIpfX19fTsKZnVuY3Rpb24gZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llcyhhKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZDJmYXZEYXRhIik7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZvcm1GaWxsRGF0YSIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpO3ZhciBiPXdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSxjPWI7Yj1iLnJlcGxhY2UoInd3dy4iLCIiKTt2YXIgZD1iPWIucmVwbGFjZSgibS4iLCIiKTtiLmluY2x1ZGVzKCJkMmNtZWRpYS5jYSIpJiYoYj0iZDJjbWVkaWEuY2EiKTtmb3IodmFyIGU9ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7Iiksaz0wO2s8ZS5sZW5ndGg7aysrKXt2YXIgaD1lW2tdLG49aC5pbmRleE9mKCI9Iik7aD0tMTxuP2guc3Vic3RyKDAsbik6aDsiZDJjX2Nvb2tpZV9jb25zZW50IiE9aC50cmltKCkmJiJPcHRhbm9uQWxlcnRCb3hDbG9zZWQiIT0KaC50cmltKCkmJiJPcHRhbm9uQ29uc2VudCIhPWgudHJpbSgpJiYoaD1oLnRyaW0oKSxkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPS4iK2IrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPSIrYisiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49IitjKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uIitkKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0iK2QrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPS5kMmNtZWRpYS5jYTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIiwKZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj1kMmNtZWRpYS5jYTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsY29uc29sZS5sb2coIkQyREMiLGgsYiksaz09cGFyc2VGbG9hdChlLmxlbmd0aCktMSYmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGEmJiQoIiNkMmNGb290ZXJDb29raWVEZWxldGUiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpLHNldFRpbWVvdXQoZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llc1JlZnJlc2gsMkUzKSkpfXJldHVybiEwfQpmdW5jdGlvbiBkMmNGb290ZXJEZWxldGVBbGxDb29raWVzUmVmcmVzaCgpe3dpbmRvdy50b3A9PT13aW5kb3cuc2VsZiYmbG9jYXRpb24ucmVsb2FkKCl9CndpbmRvdy5nb29nbGVSZWNhcHRjaGE9ZnVuY3Rpb24oKXt2YXIgYT17cG9saWN5U2l0ZUtleToiNkxjeDI4UXNBQUFBQUhwYlRid1NOY1FmbWgzajlwWTB6dEYxb0JVUiIsY2hlY2tib3hTaXRlS2V5OmpzX2QyY19nZXRfdmFsKCJJU1ZNIik\/IjZMZEFaTVlzQUFBQUFETjByTzN5WjM0b3NMQnVNNUdKR1dZQl9PZzkiOiI2TGVLZWNZc0FBQUFBQTBZYTdIVU1lRDE3N2Q2X1BzYmNtajA5Vm5GIixkZWZhdWx0QWN0aW9uOiJsZWFkX3N1Ym1pdCIsbG9hZGVkOiExLGNoZWNrYm94ZXM6e30sYWN0aXZlRm9ybUlkOm51bGwsaXNSZWFkeTpmdW5jdGlvbigpe3JldHVybiBhLmxvYWRlZCYmd2luZG93LmdyZWNhcHRjaGEmJndpbmRvdy5ncmVjYXB0Y2hhLmVudGVycHJpc2V9LGluaXQ6ZnVuY3Rpb24oKXtpZighYS5sb2FkZWQpdHJ5e3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Iuc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL3JlY2FwdGNoYS9lbnRlcnByaXNlLmpzP3JlbmRlcj0iKwphLnBvbGljeVNpdGVLZXk7Yi5hc3luYz0hMDtiLmRlZmVyPSEwO2Iub25sb2FkPWZ1bmN0aW9uKCl7YS5sb2FkZWQ9ITA7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImdyZWNhcHRjaGEuZDJjbG9hZGVkIikpfTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShiLGMpfWNhdGNoKGQpe2NvbnNvbGUubG9nKGQpfX0sdXNlQ2hlY2tib3g6ZnVuY3Rpb24oYixjKXt2YXIgZD17d2lkZ2V0SWQ6LTEsdG9rZW46IiIsYWN0aW9uOmN8fGEuZGVmYXVsdEFjdGlvbn07YS5jaGVja2JveGVzW2JdPWQ7YS5sb2FkZWR8fGEuaW5pdCgpO2M9ZnVuY3Rpb24oKXtpZighKC0xPGQud2lkZ2V0SWQpKWlmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIpKXRyeXtncmVjYXB0Y2hhLmVudGVycHJpc2UucmVhZHkoZnVuY3Rpb24oKXtkLndpZGdldElkPWdyZWNhcHRjaGEuZW50ZXJwcmlzZS5yZW5kZXIoYiwKe3NpdGVrZXk6YS5jaGVja2JveFNpdGVLZXksYWN0aW9uOmQuYWN0aW9uLGNhbGxiYWNrOmZ1bmN0aW9uKGUpe2QudG9rZW49ZX0sImV4cGlyZWQtY2FsbGJhY2siOmZ1bmN0aW9uKCl7ZC50b2tlbj0iIn0sImVycm9yLWNhbGxiYWNrIjpmdW5jdGlvbigpe2QudG9rZW49IiJ9fSl9KX1jYXRjaChlKXtjb25zb2xlLmxvZyhlKX1lbHNlIGNvbnNvbGUubG9nKCJHUkMgY2hlY2tib3ggY29udGFpbmVyIG5vdCBmb3VuZDoiLGIpfTthLmlzUmVhZHkoKT9jKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ3JlY2FwdGNoYS5kMmNsb2FkZWQiLGMse29uY2U6ITB9KX0scmVzZXRDaGVja2JveDpmdW5jdGlvbihiKXsoYj9bYl06T2JqZWN0LmtleXMoYS5jaGVja2JveGVzKSkuZm9yRWFjaChmdW5jdGlvbihjKXtpZihjPWEuY2hlY2tib3hlc1tjXSl7aWYoLTE8Yy53aWRnZXRJZCYmYS5pc1JlYWR5KCkpdHJ5e2dyZWNhcHRjaGEuZW50ZXJwcmlzZS5yZXNldChjLndpZGdldElkKX1jYXRjaChkKXtjb25zb2xlLmxvZyhkKX1jLnRva2VuPQoiIn19KX0saXNDaGVja2JveFNvbHZlZDpmdW5jdGlvbihiKXtiPWEuY2hlY2tib3hlc1tiXTtyZXR1cm4hKCFifHwhYi50b2tlbil9LGN1cnJlbnRDb250ZXh0OmZ1bmN0aW9uKCl7dmFyIGI9YS5hY3RpdmVGb3JtSWQ7cmV0dXJuKGI9Yj9hLmNoZWNrYm94ZXNbYl06bnVsbCk\/e21vZGU6ImNoZWNrYm94IixhY3Rpb246Yi5hY3Rpb24sdG9rZW46Yi50b2tlbn06e21vZGU6InBvbGljeSIsYWN0aW9uOmEuZGVmYXVsdEFjdGlvbix0b2tlbjoiIn19LGdldFJlc3BvbnNlOmZ1bmN0aW9uKGIpe3ZhciBjPSQuRGVmZXJyZWQoKSxkPWEuY3VycmVudENvbnRleHQoKTtpZigiY2hlY2tib3giPT09ZC5tb2RlKXJldHVybiBjLnJlc29sdmUoZC50b2tlbnx8IiIpLnByb21pc2UoKTtpZighYS5pc1JlYWR5KCkpcmV0dXJuIGMucmVzb2x2ZSgiIikucHJvbWlzZSgpO3ZhciBlPWJ8fGQuYWN0aW9uO3RyeXtncmVjYXB0Y2hhLmVudGVycHJpc2UucmVhZHkoZnVuY3Rpb24oKXtncmVjYXB0Y2hhLmVudGVycHJpc2UuZXhlY3V0ZShhLnBvbGljeVNpdGVLZXksCnthY3Rpb246ZX0pLnRoZW4oZnVuY3Rpb24oayl7Yy5yZXNvbHZlKGspfSkuY2F0Y2goZnVuY3Rpb24oayl7Y29uc29sZS5sb2coIkdSQyBGYWlsIixrKTtjLnJlc29sdmUoIiIpfSl9KX1jYXRjaChrKXtjb25zb2xlLmxvZyhrKSxjLnJlc29sdmUoIiIpfXJldHVybiBjfX07cmV0dXJuIGF9KCk7dHJ5e2RvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJnb29nbGVSZWNhcHRjaGEucmVhZHkiKSl9Y2F0Y2goYSl7fWZ1bmN0aW9uIGdldEx1eHVyeVRheEFtb3VudChhKXt2YXIgYj0wOzFFNTxhJiYoYj0uMSphLGE9LjIqKGEtMUU1KSxiPWI8YT9iOmEpO3JldHVybiBNYXRoLnJvdW5kKGIpfQp2YXIgd29yZHM9W10scGFydCx3b3JkSW5kZXg9MCxvZmZzZXQ9MCxsZW49MSxmb3J3YXJkcz0hMCxza2lwX2NvdW50PTAsc2tpcF9kZWxheT0xNSxzcGVlZD03MCx3b3JkZmxpY2s9ZnVuY3Rpb24oYSxiKXt3b3Jkcz1hO2xlbj13b3Jkcy5sZW5ndGg7c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtmb3J3YXJkcz9vZmZzZXQ+PXdvcmRzW3dvcmRJbmRleF0ubGVuZ3RoJiYoKytza2lwX2NvdW50LHNraXBfY291bnQ9PXNraXBfZGVsYXkmJihmb3J3YXJkcz0hMSxza2lwX2NvdW50PTApKTowPT1vZmZzZXQmJihmb3J3YXJkcz0hMCx3b3JkSW5kZXgrKyxvZmZzZXQ9MCx3b3JkSW5kZXg+PWxlbiYmKHdvcmRJbmRleD0wKSk7cGFydD13b3Jkc1t3b3JkSW5kZXhdLnN1YnN0cigwLG9mZnNldCk7MD09c2tpcF9jb3VudCYmKGZvcndhcmRzP29mZnNldCsrOm9mZnNldC0tKTtiLnRleHQocGFydCl9LHNwZWVkKX07CmZ1bmN0aW9uIGlzSW5WaWV3cG9ydChhLGIpe2I9dm9pZCAwPT09Yj97fTpiO2E9YS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgYz1pc051bWVyaWMoYi50b3ApP2IudG9wOjA7Yj1pc051bWVyaWMoYi5sZWZ0KT9iLmxlZnQ6MDtyZXR1cm4gTWF0aC5mbG9vcihhLnRvcCk+PWMmJk1hdGguZmxvb3IoYS5sZWZ0KT49YiYmTWF0aC5mbG9vcihhLmJvdHRvbSk8PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZNYXRoLmZsb29yKGEucmlnaHQpPD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl9ZnVuY3Rpb24gaXNOdW1lcmljKGEpe3JldHVybi9eLT9cZCskL2cudGVzdChhKX0KZG9jUmVhZHlBcnIucHVzaCgoKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tyb2xlPSJidXR0b24iXScpLmZvckVhY2goYT0+e2EuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsYj0+e2NvbnN0IGM9dm9pZCAwIT09Yi5rZXk\/Yi5rZXk6Yi5rZXlDb2RlO2lmKCJFbnRlciI9PT1jfHwxMz09PWMpYi5wcmV2ZW50RGVmYXVsdCgpLGEuY2xpY2soKX0pfSl9KTsKKCgpPT57bGV0IGE9ZG9jdW1lbnQuY29va2llLGI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihEb2N1bWVudC5wcm90b3R5cGUsImNvb2tpZSIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEb2N1bWVudC5wcm90b3R5cGUsIl9jb29raWUiLGIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEb2N1bWVudC5wcm90b3R5cGUsImNvb2tpZSIse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldCgpe3JldHVybiB0aGlzLl9jb29raWV9LHNldChjKXt2YXIgZD1jLnRyaW0oKS5zcGxpdCgiOyIpO2xldCBlPXt9O3ZhciBrPTA7Zm9yKGggb2YgZClkPWgudHJpbSgpLnNwbGl0KCI9IiksMD09az8oZS5uYW1lPWRbMF0sZS52YWx1ZT1kWzFdfHwwKToiIiE9ZFswXSYmKGVbZFswXV09ZFsxXXx8MCksaysrO2s9ZS5uYW1lO3ZhciBoPWUuZXhwaXJlc3x8MDtkPWUucGF0aHx8Ii8iO2xldCBuPWUuZG9tYWlufHwiIjtlLnZhbHVlJiYiIiE9ZS52YWx1ZSYmbnVsbCE9ZS52YWx1ZSYmCndpbmRvdy5Db29raWVMb2dnZXIubG9nKGssZS52YWx1ZSxoLGQsbik7Yz10aGlzLl9jb29raWU9YztpZihjIT09YSl0cnl7dGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY29va2llY2hhbmdlIix7ZGV0YWlsOntvbGRWYWx1ZTphLG5ld1ZhbHVlOmN9fSkpfWZpbmFsbHl7YT1jfX19KX0pKCk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e3ZhciBhPW51bGw7aWYod2luZG93LmxvY2F0aW9uLmhhc2gpe3RyeXthPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZGVjb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5oYXNoKSl9Y2F0Y2goYil7cmV0dXJufWEmJihhPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK3dpbmRvdy5zY3JvbGxZLHdpbmRvdy5zY3JvbGxUbyh7dG9wOmEtMjAsYmVoYXZpb3I6InNtb290aCJ9KSl9fSk7CihmdW5jdGlvbigpe2Z1bmN0aW9uIGEoYyl7ZGVidWcoe2NvbGxlY3Q6Y30pO2M9Yy5uZXdVUkw\/bmV3IFVSTChjLm5ld1VSTCk6d2luZG93LmxvY2F0aW9uOyIiIT09Yy5oYXNoJiZjLmhhc2guc3Vic3RyaW5nKDEpLnNwbGl0KCImIikubWFwKGZ1bmN0aW9uKGQsZSxrKXt0cnl7dmFyIFtoLG5dPWQuc3BsaXQoIj0iKTtzd2l0Y2goaCl7Y2FzZSAidXRtX2UiOnZhciB4PWF0b2Iobikuc3BsaXQoIjo6Iiksdj1udWxsIT1nZXRDb29raWUoInV0bV9jYW1wYWlnbiIpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvb2tpZSgidXRtX2NhbXBhaWduIik\/Z2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iKTp4WzJdO3YmJnNldENvb2tpZSgidXRtX2NhbXBhaWduIix2LDE4MCk7dmFyIGY9bnVsbCE9Z2V0Q29va2llKCJ1dG1fc291cmNlIikmJiJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0Q29va2llKCJ1dG1fc291cmNlIik\/Z2V0Q29va2llKCJ1dG1fc291cmNlIik6eFszXTtmJiZzZXRDb29raWUoInV0bV9zb3VyY2UiLApmLDE4MCk7YnJlYWs7Y2FzZSAidXRtX2V4Ijp4PWF0b2Iobik7dmFyIGc9bmV3IFVSTCgiaHR0cHM6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K3gpOzA8Zy5zZWFyY2hQYXJhbXMuc2l6ZSYmZy5zZWFyY2hQYXJhbXMuZm9yRWFjaChiKX1yZXR1cm57a2V5OmgsdmFsdWU6bn19Y2F0Y2gobSl7ZGVidWcobSl9fSl9ZnVuY3Rpb24gYihjLGQpe3RyeXtzd2l0Y2goZCl7Y2FzZSAiRGlzcGxheVNvdXJjZSI6Y2FzZSAiZ2NsaWQiOmRlYnVnKHtrZXk6ZCxjb29raWU6Z2V0Q29va2llKGQpLHZhbHVlOmN9KSxudWxsIT1nZXRDb29raWUoZCkmJiIiIT1nZXRDb29raWUoZCl8fHNldENvb2tpZShkLGMsMTgwKX19Y2F0Y2goZSl7ZGVidWcoZSl9fXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixhLCExKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsYSwhMSl9KSgpOzA+PSQoIiNzaGFyZU9uRmFjZWJvb2siKS5sZW5ndGgmJiQoImZvb3RlciIpLnByZXBlbmQoJzxkaXYgaWQ9InNoYXJlT25GYWNlYm9vayIgZGF0YS1leHBsYWluPSJob25kYS9hY3VyYSBjZXJ0IHVzZXMgZ3RtLCBpdCBoYXMgYSBiaW5kIHRoYXQgdGhyb3dzIGFuIGVycm9yIGlmIHRoaXMgaWQgZG9lcyBub3QgZXhpc3QuIGNvZGUgaXMgZnJvbSBndG0gc2lkZS4iPjwvZGl2PicpOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgJC5jb29raWUpe2xldCBjO3ZhciBiPW51bGwhPShjPSQuY29va2llKCJUZXJ0aWFyeVNvdXJjZSIpKT9jOiIiOyIiIT09YiYmKCQoJypbaHJlZio9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJocmVmIiwkKHRoaXMpLmF0dHIoImhyZWYiKS5yZXBsYWNlKCIkRkRUZXJ0aWFyeVNvdXJjZSIsYikpfSksJCgnKltvbmNsaWNrKj0iJEZEVGVydGlhcnlTb3VyY2UiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoIm9uY2xpY2siLCQodGhpcykuYXR0cigib25jbGljayIpLnJlcGxhY2UoIiRGRFRlcnRpYXJ5U291cmNlIixiKSl9KSwkKCcqW3ZhbHVlKj0iJEZEVGVydGlhcnlTb3VyY2UiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInZhbHVlIiwkKHRoaXMpLmF0dHIoInZhbHVlIikucmVwbGFjZSgiJEZEVGVydGlhcnlTb3VyY2UiLApiKSl9KSl9fWEoKTtzZXRUaW1lb3V0KGEsMUUzKTtzZXRUaW1lb3V0KGEsNUUzKTswPD1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1hYyIpJiYoJCgiLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZyAucmF0aW5nIikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSBhLmJ0biA+IHNwYW4iKS5hZGRDbGFzcygibWFyZ2luLWJvdHRvbS0tNHB4IiksJCgiLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiKS5hZGRDbGFzcygibWFyZ2luLWJvdHRvbS0tNHB4IiksJCgiLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uX3RleHQiKS5jc3MoInRvcCIsIjUyJSIpKX0pKCk7CmZ1bmN0aW9uIGFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbaWQqPSJlbWFpbEJvZHlEZWYiXSwgW2lkKj0iZW1haWxTdWJqZWN0RGVmIl0sIFtjbGFzcyo9ImVtYWlsU3ViamVjdCJdLCBbY2xhc3MqPSJlbWFpbEJvZHkiXSwgW2NsYXNzKj0ibGVhZEVtYWlsIl0sIFtjbGFzcyo9ImVtYWlsLWRlZmluaXRpb24iXScpLmZvckVhY2goYT0+e2Euc2V0QXR0cmlidXRlKCJ0cmFuc2xhdGUiLCJubyIpfSl9YWRkTm9UcmFuc2xhdGVFbWFpbERlZigpO2Z1bmN0aW9uIHZ3cygpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS12d3MiLGAke3dpbmRvdy5pbm5lcldpZHRoLzEwMC0od2luZG93LmlubmVyV2lkdGgtZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoKS8xMDAvMn1weGApfXZ3cygpO2xldCByb192d3M9bmV3IFJlc2l6ZU9ic2VydmVyKCgpPT57dndzKCl9KTtyb192d3Mub2JzZXJ2ZShkb2N1bWVudC5ib2R5KTsKLyoqIC9tL2pzL2xhenlzaXplcy5taW4uanMgKiovCi8qISBsYXp5c2l6ZXMgLSB2NC4xLjUgKi8KLyohIG1vZGlmaWVkOiBvbGl2aWVyQGQyY21lZGlhLmNhIHRvIHN1cHBvcnQgZGF0YS1pbWdzcmMgYmVjYXVzZSBvZiBvbmVUcnVzdCBicmVha3MgbGF6eWxvYWQgb24gZGF0YS1zcmMgKi8KIWZ1bmN0aW9uKGEsYil7dmFyIGM9YihhLGEuZG9jdW1lbnQpO2EubGF6eVNpemVzPWMsIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzJiYobW9kdWxlLmV4cG9ydHM9Yyl9KHdpbmRvdyxmdW5jdGlvbihhLGIpeyJ1c2Ugc3RyaWN0IjtpZihiLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpe3ZhciBjLGQsZT1iLmRvY3VtZW50RWxlbWVudCxmPWEuRGF0ZSxnPWEuSFRNTFBpY3R1cmVFbGVtZW50LGg9ImFkZEV2ZW50TGlzdGVuZXIiLGk9ImdldEF0dHJpYnV0ZSIsaj1hW2hdLGs9YS5zZXRUaW1lb3V0LGw9YS5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fGssbT1hLnJlcXVlc3RJZGxlQ2FsbGJhY2ssbj0vXnBpY3R1cmUkL2ksbz1bImxvYWQiLCJlcnJvciIsImxhenlpbmNsdWRlZCIsIl9sYXp5bG9hZGVkIl0scD17fSxxPUFycmF5LnByb3RvdHlwZS5mb3JFYWNoLHI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gcFtiXXx8KHBbYl09bmV3IFJlZ0V4cCgiKFxcc3xeKSIrYisiKFxcc3wkKSIpKSxwW2JdLnRlc3QoYVtpXSgiY2xhc3MiKXx8IiIpJiZwW2JdfSxzPWZ1bmN0aW9uKGEsYil7cihhLGIpfHxhLnNldEF0dHJpYnV0ZSgiY2xhc3MiLChhW2ldKCJjbGFzcyIpfHwiIikudHJpbSgpKyIgIitiKX0sdD1mdW5jdGlvbihhLGIpe3ZhciBjOyhjPXIoYSxiKSkmJmEuc2V0QXR0cmlidXRlKCJjbGFzcyIsKGFbaV0oImNsYXNzIil8fCIiKS5yZXBsYWNlKGMsIiAiKSl9LHU9ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWM\/aDoicmVtb3ZlRXZlbnRMaXN0ZW5lciI7YyYmdShhLGIpLG8uZm9yRWFjaChmdW5jdGlvbihjKXthW2RdKGMsYil9KX0sdj1mdW5jdGlvbihhLGQsZSxmLGcpe3ZhciBoPWIuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIGV8fChlPXt9KSxlLmluc3RhbmNlPWMsaC5pbml0RXZlbnQoZCwhZiwhZyksaC5kZXRhaWw9ZSxhLmRpc3BhdGNoRXZlbnQoaCksaH0sdz1mdW5jdGlvbihiLGMpe3ZhciBlOyFnJiYoZT1hLnBpY3R1cmVmaWxsfHxkLnBmKT8oYyYmYy5zcmMmJiFiW2ldKCJzcmNzZXQiKSYmYi5zZXRBdHRyaWJ1dGUoInNyY3NldCIsYy5zcmMpLGUoe3JlZXZhbHVhdGU6ITAsZWxlbWVudHM6W2JdfSkpOmMmJmMuc3JjJiYoYi5zcmM9Yy5zcmMpfSx4PWZ1bmN0aW9uKGEsYil7cmV0dXJuKGdldENvbXB1dGVkU3R5bGUoYSxudWxsKXx8e30pW2JdfSx5PWZ1bmN0aW9uKGEsYixjKXtmb3IoYz1jfHxhLm9mZnNldFdpZHRoO2M8ZC5taW5TaXplJiZiJiYhYS5fbGF6eXNpemVzV2lkdGg7KWM9Yi5vZmZzZXRXaWR0aCxiPWIucGFyZW50Tm9kZTtyZXR1cm4gY30sej1mdW5jdGlvbigpe3ZhciBhLGMsZD1bXSxlPVtdLGY9ZCxnPWZ1bmN0aW9uKCl7dmFyIGI9Zjtmb3IoZj1kLmxlbmd0aD9lOmQsYT0hMCxjPSExO2IubGVuZ3RoOyliLnNoaWZ0KCkoKTthPSExfSxoPWZ1bmN0aW9uKGQsZSl7YSYmIWU\/ZC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6KGYucHVzaChkKSxjfHwoYz0hMCwoYi5oaWRkZW4\/azpsKShnKSkpfTtyZXR1cm4gaC5fbHNGbHVzaD1nLGh9KCksQT1mdW5jdGlvbihhLGIpe3JldHVybiBiP2Z1bmN0aW9uKCl7eihhKX06ZnVuY3Rpb24oKXt2YXIgYj10aGlzLGM9YXJndW1lbnRzO3ooZnVuY3Rpb24oKXthLmFwcGx5KGIsYyl9KX19LEI9ZnVuY3Rpb24oYSl7dmFyIGIsYz0wLGU9ZC50aHJvdHRsZURlbGF5LGc9ZC5yaWNUaW1lb3V0LGg9ZnVuY3Rpb24oKXtiPSExLGM9Zi5ub3coKSxhKCl9LGk9bSYmZz40OT9mdW5jdGlvbigpe20oaCx7dGltZW91dDpnfSksZyE9PWQucmljVGltZW91dCYmKGc9ZC5yaWNUaW1lb3V0KX06QShmdW5jdGlvbigpe2soaCl9LCEwKTtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIGQ7KGE9ITA9PT1hKSYmKGc9MzMpLGJ8fChiPSEwLGQ9ZS0oZi5ub3coKS1jKSxkPDAmJihkPTApLGF8fGQ8OT9pKCk6ayhpLGQpKX19LEM9ZnVuY3Rpb24oYSl7dmFyIGIsYyxkPTk5LGU9ZnVuY3Rpb24oKXtiPW51bGwsYSgpfSxnPWZ1bmN0aW9uKCl7dmFyIGE9Zi5ub3coKS1jO2E8ZD9rKGcsZC1hKToobXx8ZSkoZSl9O3JldHVybiBmdW5jdGlvbigpe2M9Zi5ub3coKSxifHwoYj1rKGcsZCkpfX07IWZ1bmN0aW9uKCl7dmFyIGIsYz17bGF6eUNsYXNzOiJsYXp5bG9hZCIsbG9hZGVkQ2xhc3M6Imxhenlsb2FkZWQiLGxvYWRpbmdDbGFzczoibGF6eWxvYWRpbmciLHByZWxvYWRDbGFzczoibGF6eXByZWxvYWQiLGVycm9yQ2xhc3M6ImxhenllcnJvciIsYXV0b3NpemVzQ2xhc3M6ImxhenlhdXRvc2l6ZXMiLHNyY0F0dHI6ImRhdGEtaW1nc3JjIixzcmNzZXRBdHRyOiJkYXRhLXNyY3NldCIsc2l6ZXNBdHRyOiJkYXRhLXNpemVzIixtaW5TaXplOjQwLGN1c3RvbU1lZGlhOnt9LGluaXQ6ITAsZXhwRmFjdG9yOjEuNSxoRmFjOi44LGxvYWRNb2RlOjIsbG9hZEhpZGRlbjohMCxyaWNUaW1lb3V0OjAsdGhyb3R0bGVEZWxheToxMjV9O2Q9YS5sYXp5U2l6ZXNDb25maWd8fGEubGF6eXNpemVzQ29uZmlnfHx7fTtmb3IoYiBpbiBjKWIgaW4gZHx8KGRbYl09Y1tiXSk7YS5sYXp5U2l6ZXNDb25maWc9ZCxrKGZ1bmN0aW9uKCl7ZC5pbml0JiZGKCl9KX0oKTt2YXIgRD1mdW5jdGlvbigpe3ZhciBnLGwsbSxvLHAseSxELEYsRyxILEksSixLLEwsTT0vXmltZyQvaSxOPS9eaWZyYW1lJC9pLE89Im9uc2Nyb2xsImluIGEmJiEvKGdsZXxpbmcpYm90Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLFA9MCxRPTAsUj0wLFM9LTEsVD1mdW5jdGlvbihhKXtSLS0sYSYmYS50YXJnZXQmJnUoYS50YXJnZXQsVCksKCFhfHxSPDB8fCFhLnRhcmdldCkmJihSPTApfSxVPWZ1bmN0aW9uKGEsYyl7dmFyIGQsZj1hLGc9ImhpZGRlbiI9PXgoYi5ib2R5LCJ2aXNpYmlsaXR5Iil8fCJoaWRkZW4iIT14KGEucGFyZW50Tm9kZSwidmlzaWJpbGl0eSIpJiYiaGlkZGVuIiE9eChhLCJ2aXNpYmlsaXR5Iik7Zm9yKEYtPWMsSSs9YyxHLT1jLEgrPWM7ZyYmKGY9Zi5vZmZzZXRQYXJlbnQpJiZmIT1iLmJvZHkmJmYhPWU7KShnPSh4KGYsIm9wYWNpdHkiKXx8MSk+MCkmJiJ2aXNpYmxlIiE9eChmLCJvdmVyZmxvdyIpJiYoZD1mLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGc9SD5kLmxlZnQmJkc8ZC5yaWdodCYmST5kLnRvcC0xJiZGPGQuYm90dG9tKzEpO3JldHVybiBnfSxWPWZ1bmN0aW9uKCl7dmFyIGEsZixoLGosayxtLG4scCxxLHI9Yy5lbGVtZW50cztpZigobz1kLmxvYWRNb2RlKSYmUjw4JiYoYT1yLmxlbmd0aCkpe2Y9MCxTKyssbnVsbD09SyYmKCJleHBhbmQiaW4gZHx8KGQuZXhwYW5kPWUuY2xpZW50SGVpZ2h0PjUwMCYmZS5jbGllbnRXaWR0aD41MDA\/NTAwOjM3MCksSj1kLmV4cGFuZCxLPUoqZC5leHBGYWN0b3IpLFE8SyYmUjwxJiZTPjImJm8+MiYmIWIuaGlkZGVuPyhRPUssUz0wKTpRPW8+MSYmUz4xJiZSPDY\/SjpQO2Zvcig7ZjxhO2YrKylpZihyW2ZdJiYhcltmXS5fbGF6eVJhY2UpaWYoTylpZigocD1yW2ZdW2ldKCJkYXRhLWV4cGFuZCIpKSYmKG09MSpwKXx8KG09USkscSE9PW0mJih5PWlubmVyV2lkdGgrbSpMLEQ9aW5uZXJIZWlnaHQrbSxuPS0xKm0scT1tKSxoPXJbZl0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksKEk9aC5ib3R0b20pPj1uJiYoRj1oLnRvcCk8PUQmJihIPWgucmlnaHQpPj1uKkwmJihHPWgubGVmdCk8PXkmJihJfHxIfHxHfHxGKSYmKGQubG9hZEhpZGRlbnx8ImhpZGRlbiIhPXgocltmXSwidmlzaWJpbGl0eSIpKSYmKGwmJlI8MyYmIXAmJihvPDN8fFM8NCl8fFUocltmXSxtKSkpe2lmKGJhKHJbZl0pLGs9ITAsUj45KWJyZWFrfWVsc2UhayYmbCYmIWomJlI8NCYmUzw0JiZvPjImJihnWzBdfHxkLnByZWxvYWRBZnRlckxvYWQpJiYoZ1swXXx8IXAmJihJfHxIfHxHfHxGfHwiYXV0byIhPXJbZl1baV0oZC5zaXplc0F0dHIpKSkmJihqPWdbMF18fHJbZl0pO2Vsc2UgYmEocltmXSk7aiYmIWsmJmJhKGopfX0sVz1CKFYpLFg9ZnVuY3Rpb24oYSl7cyhhLnRhcmdldCxkLmxvYWRlZENsYXNzKSx0KGEudGFyZ2V0LGQubG9hZGluZ0NsYXNzKSx1KGEudGFyZ2V0LFopLHYoYS50YXJnZXQsImxhenlsb2FkZWQiKX0sWT1BKFgpLFo9ZnVuY3Rpb24oYSl7WSh7dGFyZ2V0OmEudGFyZ2V0fSl9LCQ9ZnVuY3Rpb24oYSxiKXt0cnl7YS5jb250ZW50V2luZG93LmxvY2F0aW9uLnJlcGxhY2UoYil9Y2F0Y2goYyl7YS5zcmM9Yn19LF89ZnVuY3Rpb24oYSl7dmFyIGIsYz1hW2ldKGQuc3Jjc2V0QXR0cik7KGI9ZC5jdXN0b21NZWRpYVthW2ldKCJkYXRhLW1lZGlhIil8fGFbaV0oIm1lZGlhIildKSYmYS5zZXRBdHRyaWJ1dGUoIm1lZGlhIixiKSxjJiZhLnNldEF0dHJpYnV0ZSgic3Jjc2V0IixjKX0sYWE9QShmdW5jdGlvbihhLGIsYyxlLGYpe3ZhciBnLGgsaixsLG8scDsobz12KGEsImxhenliZWZvcmV1bnZlaWwiLGIpKS5kZWZhdWx0UHJldmVudGVkfHwoZSYmKGM\/cyhhLGQuYXV0b3NpemVzQ2xhc3MpOmEuc2V0QXR0cmlidXRlKCJzaXplcyIsZSkpLGg9YVtpXShkLnNyY3NldEF0dHIpLGc9YVtpXShkLnNyY0F0dHIpLGYmJihqPWEucGFyZW50Tm9kZSxsPWomJm4udGVzdChqLm5vZGVOYW1lfHwiIikpLHA9Yi5maXJlc0xvYWR8fCJzcmMiaW4gYSYmKGh8fGd8fGwpLG89e3RhcmdldDphfSxwJiYodShhLFQsITApLGNsZWFyVGltZW91dChtKSxtPWsoVCwyNTAwKSxzKGEsZC5sb2FkaW5nQ2xhc3MpLHUoYSxaLCEwKSksbCYmcS5jYWxsKGouZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNvdXJjZSIpLF8pLGg\/YS5zZXRBdHRyaWJ1dGUoInNyY3NldCIsaCk6ZyYmIWwmJihOLnRlc3QoYS5ub2RlTmFtZSk\/JChhLGcpOmEuc3JjPWcpLGYmJihofHxsKSYmdyhhLHtzcmM6Z30pKSxhLl9sYXp5UmFjZSYmZGVsZXRlIGEuX2xhenlSYWNlLHQoYSxkLmxhenlDbGFzcykseihmdW5jdGlvbigpeyghcHx8YS5jb21wbGV0ZSYmYS5uYXR1cmFsV2lkdGg+MSkmJihwP1Qobyk6Ui0tLFgobykpfSwhMCl9KSxiYT1mdW5jdGlvbihhKXt2YXIgYixjPU0udGVzdChhLm5vZGVOYW1lKSxlPWMmJihhW2ldKGQuc2l6ZXNBdHRyKXx8YVtpXSgic2l6ZXMiKSksZj0iYXV0byI9PWU7KCFmJiZsfHwhY3x8IWFbaV0oInNyYyIpJiYhYS5zcmNzZXR8fGEuY29tcGxldGV8fHIoYSxkLmVycm9yQ2xhc3MpfHwhcihhLGQubGF6eUNsYXNzKSkmJihiPXYoYSwibGF6eXVudmVpbHJlYWQiKS5kZXRhaWwsZiYmRS51cGRhdGVFbGVtKGEsITAsYS5vZmZzZXRXaWR0aCksYS5fbGF6eVJhY2U9ITAsUisrLGFhKGEsYixmLGUsYykpfSxjYT1mdW5jdGlvbigpe2lmKCFsKXtpZihmLm5vdygpLXA8OTk5KXJldHVybiB2b2lkIGsoY2EsOTk5KTt2YXIgYT1DKGZ1bmN0aW9uKCl7ZC5sb2FkTW9kZT0zLFcoKX0pO2w9ITAsZC5sb2FkTW9kZT0zLFcoKSxqKCJzY3JvbGwiLGZ1bmN0aW9uKCl7Mz09ZC5sb2FkTW9kZSYmKGQubG9hZE1vZGU9MiksYSgpfSwhMCl9fTtyZXR1cm57XzpmdW5jdGlvbigpe3A9Zi5ub3coKSxjLmVsZW1lbnRzPWIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShkLmxhenlDbGFzcyksZz1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZC5sYXp5Q2xhc3MrIiAiK2QucHJlbG9hZENsYXNzKSxMPWQuaEZhYyxqKCJzY3JvbGwiLFcsITApLGooInJlc2l6ZSIsVywhMCksYS5NdXRhdGlvbk9ic2VydmVyP25ldyBNdXRhdGlvbk9ic2VydmVyKFcpLm9ic2VydmUoZSx7Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITAsYXR0cmlidXRlczohMH0pOihlW2hdKCJET01Ob2RlSW5zZXJ0ZWQiLFcsITApLGVbaF0oIkRPTUF0dHJNb2RpZmllZCIsVywhMCksc2V0SW50ZXJ2YWwoVyw5OTkpKSxqKCJoYXNoY2hhbmdlIixXLCEwKSxbImZvY3VzIiwibW91c2VvdmVyIiwiY2xpY2siLCJsb2FkIiwidHJhbnNpdGlvbmVuZCIsImFuaW1hdGlvbmVuZCIsIndlYmtpdEFuaW1hdGlvbkVuZCJdLmZvckVhY2goZnVuY3Rpb24oYSl7YltoXShhLFcsITApfSksL2QkfF5jLy50ZXN0KGIucmVhZHlTdGF0ZSk\/Y2EoKTooaigibG9hZCIsY2EpLGJbaF0oIkRPTUNvbnRlbnRMb2FkZWQiLFcpLGsoY2EsMmU0KSksYy5lbGVtZW50cy5sZW5ndGg\/KFYoKSx6Ll9sc0ZsdXNoKCkpOlcoKX0sY2hlY2tFbGVtczpXLHVudmVpbDpiYX19KCksRT1mdW5jdGlvbigpe3ZhciBhLGM9QShmdW5jdGlvbihhLGIsYyxkKXt2YXIgZSxmLGc7aWYoYS5fbGF6eXNpemVzV2lkdGg9ZCxkKz0icHgiLGEuc2V0QXR0cmlidXRlKCJzaXplcyIsZCksbi50ZXN0KGIubm9kZU5hbWV8fCIiKSlmb3IoZT1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzb3VyY2UiKSxmPTAsZz1lLmxlbmd0aDtmPGc7ZisrKWVbZl0uc2V0QXR0cmlidXRlKCJzaXplcyIsZCk7Yy5kZXRhaWwuZGF0YUF0dHJ8fHcoYSxjLmRldGFpbCl9KSxlPWZ1bmN0aW9uKGEsYixkKXt2YXIgZSxmPWEucGFyZW50Tm9kZTtmJiYoZD15KGEsZixkKSxlPXYoYSwibGF6eWJlZm9yZXNpemVzIix7d2lkdGg6ZCxkYXRhQXR0cjohIWJ9KSxlLmRlZmF1bHRQcmV2ZW50ZWR8fChkPWUuZGV0YWlsLndpZHRoKSYmZCE9PWEuX2xhenlzaXplc1dpZHRoJiZjKGEsZixlLGQpKX0sZj1mdW5jdGlvbigpe3ZhciBiLGM9YS5sZW5ndGg7aWYoYylmb3IoYj0wO2I8YztiKyspZShhW2JdKX0sZz1DKGYpO3JldHVybntfOmZ1bmN0aW9uKCl7YT1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZC5hdXRvc2l6ZXNDbGFzcyksaigicmVzaXplIixnKX0sY2hlY2tFbGVtczpnLHVwZGF0ZUVsZW06ZX19KCksRj1mdW5jdGlvbigpe0YuaXx8KEYuaT0hMCxFLl8oKSxELl8oKSl9O3JldHVybiBjPXtjZmc6ZCxhdXRvU2l6ZXI6RSxsb2FkZXI6RCxpbml0OkYsdVA6dyxhQzpzLHJDOnQsaEM6cixmaXJlOnYsZ1c6eSxyQUY6en19fSk7Ci8qRU9GKi87Ci8qKiAvbS9qcy92YW5pbGxhanMvZHJEaXNjbGFpbWVySlMuanMgKiovCnZhciBfX19kMmNfZHJEaXNjbGFpbWVySlNqc19jX29uPSIyMDI2LTA1LTA1IDEzOjMwOjA4IjsndXNlIHN0cmljdCc7ZHJEaXNjbGFpbWVySlM9e21hbmFnZURpc2NsYWltZXJEaXZzKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGE9PnsoYT1hLnRhcmdldC5jbG9zZXN0KCIuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMsIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciwgI2RyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpKSYmKGEuY2xhc3NMaXN0LmNvbnRhaW5zKCJjbG9zZURSRGlzY2xhaW1lckRyYXdlciIpP2RyRGlzY2xhaW1lckpTLmNsb3NlQ3VycmVudE9wZW5lZERpc2NsYWltZXJEaXYoYS5kYXRhc2V0LmRpc2NsYWltZXJEaXZpZCk6YS5jbGFzc0xpc3QuY29udGFpbnMoImRyVmlld0Rpc2NsYWltZXJMaW5rIik\/ZHJEaXNjbGFpbWVySlMub3BlbkRpc2NsYWltZXJEaXYoImRyQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIiKTpkckRpc2NsYWltZXJKUy5vcGVuRGlzY2xhaW1lckRpdihhLmRhdGFzZXQuZGlzY2xhaW1lckRpdmlkKSl9KX0sb3BlbkRpc2NsYWltZXJEaXY6ZnVuY3Rpb24oYSl7ZHJEaXNjbGFpbWVySlMuY2xvc2VBbGxPcGVuRGlzY2xhaW1lckRpdnMoKTsKZHJEaXNjbGFpbWVySlMuY2xvc2VGaW5hbmNlRGlzY2xhbWVyRGl2KCk7aWYoYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChhKSlhLmNsYXNzTGlzdC5hZGQoIm9wZW4iKSxhLnN0eWxlLmRpc3BsYXk9ImJsb2NrIn0sY2xvc2VDdXJyZW50T3BlbmVkRGlzY2xhaW1lckRpdjpmdW5jdGlvbihhKXtpZihhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke2F9YCkpYS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIiksYS5zdHlsZS5kaXNwbGF5PSJub25lIn0sY2xvc2VBbGxPcGVuRGlzY2xhaW1lckRpdnM6ZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXZbZGF0YS1kaXNjbGFpbWVyLWlkXS5vcGVuIikuZm9yRWFjaChhPT57ZHJEaXNjbGFpbWVySlMuY2xvc2VDdXJyZW50T3BlbmVkRGlzY2xhaW1lckRpdihhLmlkKX0pfSxjbG9zZUZpbmFuY2VEaXNjbGFtZXJEaXY6ZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuZHJEaXNjbGFpbWVyRHJhd2VyLm9wZW4iKS5mb3JFYWNoKGE9Pgp7YS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIik7YS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfX07ZG9jUmVhZHlBcnIucHVzaCgoKT0+e2RyRGlzY2xhaW1lckpTLm1hbmFnZURpc2NsYWltZXJEaXZzKCl9KTsKLyoqIC9tL2pzL2pxdWVyeS11aS1mYWN0b3J5LzEuMTMuMi9qcXVlcnktdWkubWluLmpzICoqLwovKiEgalF1ZXJ5IFVJIC0gdjEuMTMuMiAtIDIwMjQtMDMtMTIKKiBodHRwOi8vanF1ZXJ5dWkuY29tCiogSW5jbHVkZXM6IHdpZGdldC5qcywganF1ZXJ5LXBhdGNoLmpzLCBrZXljb2RlLmpzLCB1bmlxdWUtaWQuanMsIHdpZGdldHMvYWNjb3JkaW9uLmpzLCB3aWRnZXRzL21vdXNlLmpzLCB3aWRnZXRzL3NsaWRlci5qcywgZWZmZWN0LmpzCiogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnM7IExpY2Vuc2VkIE1JVCAqLwoKIWZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0IjsiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLGUpOmUoalF1ZXJ5KX0oZnVuY3Rpb24odSl7InVzZSBzdHJpY3QiO3UudWk9dS51aXx8e307dS51aS52ZXJzaW9uPSIxLjEzLjIiO3ZhciBuLGk9MCxvPUFycmF5LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxyPUFycmF5LnByb3RvdHlwZS5zbGljZTt1LmNsZWFuRGF0YT0obj11LmNsZWFuRGF0YSxmdW5jdGlvbihlKXtmb3IodmFyIHQsaSxzPTA7bnVsbCE9KGk9ZVtzXSk7cysrKSh0PXUuX2RhdGEoaSwiZXZlbnRzIikpJiZ0LnJlbW92ZSYmdShpKS50cmlnZ2VySGFuZGxlcigicmVtb3ZlIik7bihlKX0pLHUud2lkZ2V0PWZ1bmN0aW9uKGUsaSx0KXt2YXIgcyxuLGEsbz17fSxyPWUuc3BsaXQoIi4iKVswXSxoPXIrIi0iKyhlPWUuc3BsaXQoIi4iKVsxXSk7cmV0dXJuIHR8fCh0PWksaT11LldpZGdldCksQXJyYXkuaXNBcnJheSh0KSYmKHQ9dS5leHRlbmQuYXBwbHkobnVsbCxbe31dLmNvbmNhdCh0KSkpLHUuZXhwci5wc2V1ZG9zW2gudG9Mb3dlckNhc2UoKV09ZnVuY3Rpb24oZSl7cmV0dXJuISF1LmRhdGEoZSxoKX0sdVtyXT11W3JdfHx7fSxzPXVbcl1bZV0sbj11W3JdW2VdPWZ1bmN0aW9uKGUsdCl7aWYoIXRoaXN8fCF0aGlzLl9jcmVhdGVXaWRnZXQpcmV0dXJuIG5ldyBuKGUsdCk7YXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGUsdCl9LHUuZXh0ZW5kKG4scyx7dmVyc2lvbjp0LnZlcnNpb24sX3Byb3RvOnUuZXh0ZW5kKHt9LHQpLF9jaGlsZENvbnN0cnVjdG9yczpbXX0pLChhPW5ldyBpKS5vcHRpb25zPXUud2lkZ2V0LmV4dGVuZCh7fSxhLm9wdGlvbnMpLHUuZWFjaCh0LGZ1bmN0aW9uKHQscyl7ZnVuY3Rpb24gbigpe3JldHVybiBpLnByb3RvdHlwZVt0XS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYShlKXtyZXR1cm4gaS5wcm90b3R5cGVbdF0uYXBwbHkodGhpcyxlKX1vW3RdPSJmdW5jdGlvbiI9PXR5cGVvZiBzP2Z1bmN0aW9uKCl7dmFyIGUsdD10aGlzLl9zdXBlcixpPXRoaXMuX3N1cGVyQXBwbHk7cmV0dXJuIHRoaXMuX3N1cGVyPW4sdGhpcy5fc3VwZXJBcHBseT1hLGU9cy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fc3VwZXI9dCx0aGlzLl9zdXBlckFwcGx5PWksZX06c30pLG4ucHJvdG90eXBlPXUud2lkZ2V0LmV4dGVuZChhLHt3aWRnZXRFdmVudFByZWZpeDpzJiZhLndpZGdldEV2ZW50UHJlZml4fHxlfSxvLHtjb25zdHJ1Y3RvcjpuLG5hbWVzcGFjZTpyLHdpZGdldE5hbWU6ZSx3aWRnZXRGdWxsTmFtZTpofSkscz8odS5lYWNoKHMuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKGUsdCl7dmFyIGk9dC5wcm90b3R5cGU7dS53aWRnZXQoaS5uYW1lc3BhY2UrIi4iK2kud2lkZ2V0TmFtZSxuLHQuX3Byb3RvKX0pLGRlbGV0ZSBzLl9jaGlsZENvbnN0cnVjdG9ycyk6aS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChuKSx1LndpZGdldC5icmlkZ2UoZSxuKSxufSx1LndpZGdldC5leHRlbmQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGkscz1yLmNhbGwoYXJndW1lbnRzLDEpLG49MCxhPXMubGVuZ3RoO248YTtuKyspZm9yKHQgaW4gc1tuXSlpPXNbbl1bdF0sby5jYWxsKHNbbl0sdCkmJnZvaWQgMCE9PWkmJih1LmlzUGxhaW5PYmplY3QoaSk\/ZVt0XT11LmlzUGxhaW5PYmplY3QoZVt0XSk\/dS53aWRnZXQuZXh0ZW5kKHt9LGVbdF0saSk6dS53aWRnZXQuZXh0ZW5kKHt9LGkpOmVbdF09aSk7cmV0dXJuIGV9LHUud2lkZ2V0LmJyaWRnZT1mdW5jdGlvbihhLHQpe3ZhciBvPXQucHJvdG90eXBlLndpZGdldEZ1bGxOYW1lfHxhO3UuZm5bYV09ZnVuY3Rpb24oaSl7dmFyIGU9InN0cmluZyI9PXR5cGVvZiBpLHM9ci5jYWxsKGFyZ3VtZW50cywxKSxuPXRoaXM7cmV0dXJuIGU\/dGhpcy5sZW5ndGh8fCJpbnN0YW5jZSIhPT1pP3RoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlLHQ9dS5kYXRhKHRoaXMsbyk7cmV0dXJuImluc3RhbmNlIj09PWk\/KG49dCwhMSk6dD8iZnVuY3Rpb24iIT10eXBlb2YgdFtpXXx8Il8iPT09aS5jaGFyQXQoMCk\/dS5lcnJvcigibm8gc3VjaCBtZXRob2QgJyIraSsiJyBmb3IgIithKyIgd2lkZ2V0IGluc3RhbmNlIik6KGU9dFtpXS5hcHBseSh0LHMpKSE9PXQmJnZvaWQgMCE9PWU\/KG49ZSYmZS5qcXVlcnk\/bi5wdXNoU3RhY2soZS5nZXQoKSk6ZSwhMSk6dm9pZCAwOnUuZXJyb3IoImNhbm5vdCBjYWxsIG1ldGhvZHMgb24gIithKyIgcHJpb3IgdG8gaW5pdGlhbGl6YXRpb247IGF0dGVtcHRlZCB0byBjYWxsIG1ldGhvZCAnIitpKyInIil9KTpuPXZvaWQgMDoocy5sZW5ndGgmJihpPXUud2lkZ2V0LmV4dGVuZC5hcHBseShudWxsLFtpXS5jb25jYXQocykpKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11LmRhdGEodGhpcyxvKTtlPyhlLm9wdGlvbihpfHx7fSksZS5faW5pdCYmZS5faW5pdCgpKTp1LmRhdGEodGhpcyxvLG5ldyB0KGksdGhpcykpfSkpLG59fSx1LldpZGdldD1mdW5jdGlvbigpe30sdS5XaWRnZXQuX2NoaWxkQ29uc3RydWN0b3JzPVtdLHUuV2lkZ2V0LnByb3RvdHlwZT17d2lkZ2V0TmFtZToid2lkZ2V0Iix3aWRnZXRFdmVudFByZWZpeDoiIixkZWZhdWx0RWxlbWVudDoiPGRpdj4iLG9wdGlvbnM6e2NsYXNzZXM6e30sZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24oZSx0KXt0PXUodHx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PXUodCksdGhpcy51dWlkPWkrKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9dSgpLHRoaXMuaG92ZXJhYmxlPXUoKSx0aGlzLmZvY3VzYWJsZT11KCksdGhpcy5jbGFzc2VzRWxlbWVudExvb2t1cD17fSx0IT09dGhpcyYmKHUuZGF0YSh0LHRoaXMud2lkZ2V0RnVsbE5hbWUsdGhpcyksdGhpcy5fb24oITAsdGhpcy5lbGVtZW50LHtyZW1vdmU6ZnVuY3Rpb24oZSl7ZS50YXJnZXQ9PT10JiZ0aGlzLmRlc3Ryb3koKX19KSx0aGlzLmRvY3VtZW50PXUodC5zdHlsZT90Lm93bmVyRG9jdW1lbnQ6dC5kb2N1bWVudHx8dCksdGhpcy53aW5kb3c9dSh0aGlzLmRvY3VtZW50WzBdLmRlZmF1bHRWaWV3fHx0aGlzLmRvY3VtZW50WzBdLnBhcmVudFdpbmRvdykpLHRoaXMub3B0aW9ucz11LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zLHRoaXMuX2dldENyZWF0ZU9wdGlvbnMoKSxlKSx0aGlzLl9jcmVhdGUoKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX3NldE9wdGlvbkRpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmZ1bmN0aW9uKCl7cmV0dXJue319LF9nZXRDcmVhdGVFdmVudERhdGE6dS5ub29wLF9jcmVhdGU6dS5ub29wLF9pbml0OnUubm9vcCxkZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGk9dGhpczt0aGlzLl9kZXN0cm95KCksdS5lYWNoKHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24oZSx0KXtpLl9yZW1vdmVDbGFzcyh0LGUpfSksdGhpcy5lbGVtZW50Lm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVEYXRhKHRoaXMud2lkZ2V0RnVsbE5hbWUpLHRoaXMud2lkZ2V0KCkub2ZmKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKSx0aGlzLmJpbmRpbmdzLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKX0sX2Rlc3Ryb3k6dS5ub29wLHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnR9LG9wdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBpLHMsbixhPWU7aWYoMD09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHUud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMpO2lmKCJzdHJpbmciPT10eXBlb2YgZSlpZihhPXt9LGU9KGk9ZS5zcGxpdCgiLiIpKS5zaGlmdCgpLGkubGVuZ3RoKXtmb3Iocz1hW2VdPXUud2lkZ2V0LmV4dGVuZCh7fSx0aGlzLm9wdGlvbnNbZV0pLG49MDtuPGkubGVuZ3RoLTE7bisrKXNbaVtuXV09c1tpW25dXXx8e30scz1zW2lbbl1dO2lmKGU9aS5wb3AoKSwxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09c1tlXT9udWxsOnNbZV07c1tlXT10fWVsc2V7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXRoaXMub3B0aW9uc1tlXT9udWxsOnRoaXMub3B0aW9uc1tlXTthW2VdPXR9cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoYSksdGhpc30sX3NldE9wdGlvbnM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0IGluIGUpdGhpcy5fc2V0T3B0aW9uKHQsZVt0XSk7cmV0dXJuIHRoaXN9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iY2xhc3NlcyI9PT1lJiZ0aGlzLl9zZXRPcHRpb25DbGFzc2VzKHQpLHRoaXMub3B0aW9uc1tlXT10LCJkaXNhYmxlZCI9PT1lJiZ0aGlzLl9zZXRPcHRpb25EaXNhYmxlZCh0KSx0aGlzfSxfc2V0T3B0aW9uQ2xhc3NlczpmdW5jdGlvbihlKXt2YXIgdCxpLHM7Zm9yKHQgaW4gZSlzPXRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXBbdF0sZVt0XSE9PXRoaXMub3B0aW9ucy5jbGFzc2VzW3RdJiZzJiZzLmxlbmd0aCYmKGk9dShzLmdldCgpKSx0aGlzLl9yZW1vdmVDbGFzcyhzLHQpLGkuYWRkQ2xhc3ModGhpcy5fY2xhc3Nlcyh7ZWxlbWVudDppLGtleXM6dCxjbGFzc2VzOmUsYWRkOiEwfSkpKX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3RoaXMuX3RvZ2dsZUNsYXNzKHRoaXMud2lkZ2V0KCksdGhpcy53aWRnZXRGdWxsTmFtZSsiLWRpc2FibGVkIixudWxsLCEhZSksZSYmKHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuaG92ZXJhYmxlLG51bGwsInVpLXN0YXRlLWhvdmVyIiksdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5mb2N1c2FibGUsbnVsbCwidWktc3RhdGUtZm9jdXMiKSl9LGVuYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXRPcHRpb25zKHtkaXNhYmxlZDohMX0pfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiEwfSl9LF9jbGFzc2VzOmZ1bmN0aW9uKG4pe3ZhciBhPVtdLG89dGhpcztmdW5jdGlvbiBlKGUsdCl7Zm9yKHZhciBpLHM9MDtzPGUubGVuZ3RoO3MrKylpPW8uY2xhc3Nlc0VsZW1lbnRMb29rdXBbZVtzXV18fHUoKSxpPW4uYWRkPyhmdW5jdGlvbigpe3ZhciBpPVtdO24uZWxlbWVudC5lYWNoKGZ1bmN0aW9uKGUsdCl7dS5tYXAoby5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbihlKXtyZXR1cm4gZX0pLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaXModCl9KXx8aS5wdXNoKHQpfSksby5fb24odShpKSx7cmVtb3ZlOiJfdW50cmFja0NsYXNzZXNFbGVtZW50In0pfSgpLHUodS51bmlxdWVTb3J0KGkuZ2V0KCkuY29uY2F0KG4uZWxlbWVudC5nZXQoKSkpKSk6dShpLm5vdChuLmVsZW1lbnQpLmdldCgpKSxvLmNsYXNzZXNFbGVtZW50TG9va3VwW2Vbc11dPWksYS5wdXNoKGVbc10pLHQmJm4uY2xhc3Nlc1tlW3NdXSYmYS5wdXNoKG4uY2xhc3Nlc1tlW3NdXSl9cmV0dXJuKG49dS5leHRlbmQoe2VsZW1lbnQ6dGhpcy5lbGVtZW50LGNsYXNzZXM6dGhpcy5vcHRpb25zLmNsYXNzZXN8fHt9fSxuKSkua2V5cyYmZShuLmtleXMubWF0Y2goL1xTKy9nKXx8W10sITApLG4uZXh0cmEmJmUobi5leHRyYS5tYXRjaCgvXFMrL2cpfHxbXSksYS5qb2luKCIgIil9LF91bnRyYWNrQ2xhc3Nlc0VsZW1lbnQ6ZnVuY3Rpb24oaSl7dmFyIHM9dGhpczt1LmVhY2gocy5jbGFzc2VzRWxlbWVudExvb2t1cCxmdW5jdGlvbihlLHQpey0xIT09dS5pbkFycmF5KGkudGFyZ2V0LHQpJiYocy5jbGFzc2VzRWxlbWVudExvb2t1cFtlXT11KHQubm90KGkudGFyZ2V0KS5nZXQoKSkpfSksdGhpcy5fb2ZmKHUoaS50YXJnZXQpKX0sX3JlbW92ZUNsYXNzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3MoZSx0LGksITEpfSxfYWRkQ2xhc3M6ZnVuY3Rpb24oZSx0LGkpe3JldHVybiB0aGlzLl90b2dnbGVDbGFzcyhlLHQsaSwhMCl9LF90b2dnbGVDbGFzczpmdW5jdGlvbihlLHQsaSxzKXt2YXIgbj0ic3RyaW5nIj09dHlwZW9mIGV8fG51bGw9PT1lLGk9e2V4dHJhOm4\/dDppLGtleXM6bj9lOnQsZWxlbWVudDpuP3RoaXMuZWxlbWVudDplLGFkZDpzPSJib29sZWFuIj09dHlwZW9mIHM\/czppfTtyZXR1cm4gaS5lbGVtZW50LnRvZ2dsZUNsYXNzKHRoaXMuX2NsYXNzZXMoaSkscyksdGhpc30sX29uOmZ1bmN0aW9uKG4sYSxlKXt2YXIgbyxyPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgbiYmKGU9YSxhPW4sbj0hMSksZT8oYT1vPXUoYSksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChhKSk6KGU9YSxhPXRoaXMuZWxlbWVudCxvPXRoaXMud2lkZ2V0KCkpLHUuZWFjaChlLGZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gaSgpe2lmKG58fCEwIT09ci5vcHRpb25zLmRpc2FibGVkJiYhdSh0aGlzKS5oYXNDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKSlyZXR1cm4oInN0cmluZyI9PXR5cGVvZiB0P3JbdF06dCkuYXBwbHkocixhcmd1bWVudHMpfSJzdHJpbmciIT10eXBlb2YgdCYmKGkuZ3VpZD10Lmd1aWQ9dC5ndWlkfHxpLmd1aWR8fHUuZ3VpZCsrKTt2YXIgcz1lLm1hdGNoKC9eKFtcdzotXSopXHMqKC4qKSQvKSxlPXNbMV0rci5ldmVudE5hbWVzcGFjZSxzPXNbMl07cz9vLm9uKGUscyxpKTphLm9uKGUsaSl9KX0sX29mZjpmdW5jdGlvbihlLHQpe3Q9KHR8fCIiKS5zcGxpdCgiICIpLmpvaW4odGhpcy5ldmVudE5hbWVzcGFjZSsiICIpK3RoaXMuZXZlbnROYW1lc3BhY2UsZS5vZmYodCksdGhpcy5iaW5kaW5ncz11KHRoaXMuYmluZGluZ3Mubm90KGUpLmdldCgpKSx0aGlzLmZvY3VzYWJsZT11KHRoaXMuZm9jdXNhYmxlLm5vdChlKS5nZXQoKSksdGhpcy5ob3ZlcmFibGU9dSh0aGlzLmhvdmVyYWJsZS5ub3QoZSkuZ2V0KCkpfSxfZGVsYXk6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzO3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2YgZT9pW2VdOmUpLmFwcGx5KGksYXJndW1lbnRzKX0sdHx8MCl9LF9ob3ZlcmFibGU6ZnVuY3Rpb24oZSl7dGhpcy5ob3ZlcmFibGU9dGhpcy5ob3ZlcmFibGUuYWRkKGUpLHRoaXMuX29uKGUse21vdXNlZW50ZXI6ZnVuY3Rpb24oZSl7dGhpcy5fYWRkQ2xhc3ModShlLmN1cnJlbnRUYXJnZXQpLG51bGwsInVpLXN0YXRlLWhvdmVyIil9LG1vdXNlbGVhdmU6ZnVuY3Rpb24oZSl7dGhpcy5fcmVtb3ZlQ2xhc3ModShlLmN1cnJlbnRUYXJnZXQpLG51bGwsInVpLXN0YXRlLWhvdmVyIil9fSl9LF9mb2N1c2FibGU6ZnVuY3Rpb24oZSl7dGhpcy5mb2N1c2FibGU9dGhpcy5mb2N1c2FibGUuYWRkKGUpLHRoaXMuX29uKGUse2ZvY3VzaW46ZnVuY3Rpb24oZSl7dGhpcy5fYWRkQ2xhc3ModShlLmN1cnJlbnRUYXJnZXQpLG51bGwsInVpLXN0YXRlLWZvY3VzIil9LGZvY3Vzb3V0OmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZUNsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpfX0pfSxfdHJpZ2dlcjpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbixhPXRoaXMub3B0aW9uc1tlXTtpZihpPWl8fHt9LCh0PXUuRXZlbnQodCkpLnR5cGU9KGU9PT10aGlzLndpZGdldEV2ZW50UHJlZml4P2U6dGhpcy53aWRnZXRFdmVudFByZWZpeCtlKS50b0xvd2VyQ2FzZSgpLHQudGFyZ2V0PXRoaXMuZWxlbWVudFswXSxuPXQub3JpZ2luYWxFdmVudClmb3IocyBpbiBuKXMgaW4gdHx8KHRbc109bltzXSk7cmV0dXJuIHRoaXMuZWxlbWVudC50cmlnZ2VyKHQsaSksISgiZnVuY3Rpb24iPT10eXBlb2YgYSYmITE9PT1hLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbdF0uY29uY2F0KGkpKXx8dC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl9fSx1LmVhY2goe3Nob3c6ImZhZGVJbiIsaGlkZToiZmFkZU91dCJ9LGZ1bmN0aW9uKGEsbyl7dS5XaWRnZXQucHJvdG90eXBlWyJfIithXT1mdW5jdGlvbih0LGUsaSl7dmFyIHMsbj0oZT0ic3RyaW5nIj09dHlwZW9mIGU\/e2VmZmVjdDplfTplKT8hMCE9PWUmJiJudW1iZXIiIT10eXBlb2YgZSYmZS5lZmZlY3R8fG86YTsibnVtYmVyIj09dHlwZW9mKGU9ZXx8e30pP2U9e2R1cmF0aW9uOmV9OiEwPT09ZSYmKGU9e30pLHM9IXUuaXNFbXB0eU9iamVjdChlKSxlLmNvbXBsZXRlPWksZS5kZWxheSYmdC5kZWxheShlLmRlbGF5KSxzJiZ1LmVmZmVjdHMmJnUuZWZmZWN0cy5lZmZlY3Rbbl0\/dFthXShlKTpuIT09YSYmdFtuXT90W25dKGUuZHVyYXRpb24sZS5lYXNpbmcsaSk6dC5xdWV1ZShmdW5jdGlvbihlKXt1KHRoaXMpW2FdKCksaSYmaS5jYWxsKHRbMF0pLGUoKX0pfX0pO3ZhciB0LHM7dS53aWRnZXQ7dS5leHByLnBzZXVkb3N8fCh1LmV4cHIucHNldWRvcz11LmV4cHJbIjoiXSksdS51bmlxdWVTb3J0fHwodS51bmlxdWVTb3J0PXUudW5pcXVlKSx1LmVzY2FwZVNlbGVjdG9yfHwodD0vKFtcMC1ceDFmXHg3Zl18Xi0\/XGQpfF4tJHxbXlx4ODAtXHVGRkZGXHctXS9nLHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD8iXDAiPT09ZT8i77+9IjplLnNsaWNlKDAsLTEpKyJcXCIrZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIitlfSx1LmVzY2FwZVNlbGVjdG9yPWZ1bmN0aW9uKGUpe3JldHVybihlKyIiKS5yZXBsYWNlKHQscyl9KSx1LmZuLmV2ZW4mJnUuZm4ub2RkfHx1LmZuLmV4dGVuZCh7ZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSUyPT0wfSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZSUyPT0xfSl9fSk7dS51aS5rZXlDb2RlPXtCQUNLU1BBQ0U6OCxDT01NQToxODgsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LExFRlQ6MzcsUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEVSSU9EOjE5MCxSSUdIVDozOSxTUEFDRTozMixUQUI6OSxVUDozOH0sdS5mbi5leHRlbmQoe3VuaXF1ZUlkOihlPTAsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5pZHx8KHRoaXMuaWQ9InVpLWlkLSIrICsrZSl9KX0pLHJlbW92ZVVuaXF1ZUlkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpey9edWktaWQtXGQrJC8udGVzdCh0aGlzLmlkKSYmdSh0aGlzKS5yZW1vdmVBdHRyKCJpZCIpfSl9fSksdS53aWRnZXQoInVpLmFjY29yZGlvbiIse3ZlcnNpb246IjEuMTMuMiIsb3B0aW9uczp7YWN0aXZlOjAsYW5pbWF0ZTp7fSxjbGFzc2VzOnsidWktYWNjb3JkaW9uLWhlYWRlciI6InVpLWNvcm5lci10b3AiLCJ1aS1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZCI6InVpLWNvcm5lci1hbGwiLCJ1aS1hY2NvcmRpb24tY29udGVudCI6InVpLWNvcm5lci1ib3R0b20ifSxjb2xsYXBzaWJsZTohMSxldmVudDoiY2xpY2siLGhlYWRlcjpmdW5jdGlvbihlKXtyZXR1cm4gZS5maW5kKCI+IGxpID4gOmZpcnN0LWNoaWxkIikuYWRkKGUuZmluZCgiPiA6bm90KGxpKSIpLmV2ZW4oKSl9LGhlaWdodFN0eWxlOiJhdXRvIixpY29uczp7YWN0aXZlSGVhZGVyOiJ1aS1pY29uLXRyaWFuZ2xlLTEtcyIsaGVhZGVyOiJ1aS1pY29uLXRyaWFuZ2xlLTEtZSJ9LGFjdGl2YXRlOm51bGwsYmVmb3JlQWN0aXZhdGU6bnVsbH0saGlkZVByb3BzOntib3JkZXJUb3BXaWR0aDoiaGlkZSIsYm9yZGVyQm90dG9tV2lkdGg6ImhpZGUiLHBhZGRpbmdUb3A6ImhpZGUiLHBhZGRpbmdCb3R0b206ImhpZGUiLGhlaWdodDoiaGlkZSJ9LHNob3dQcm9wczp7Ym9yZGVyVG9wV2lkdGg6InNob3ciLGJvcmRlckJvdHRvbVdpZHRoOiJzaG93IixwYWRkaW5nVG9wOiJzaG93IixwYWRkaW5nQm90dG9tOiJzaG93IixoZWlnaHQ6InNob3cifSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3RoaXMucHJldlNob3c9dGhpcy5wcmV2SGlkZT11KCksdGhpcy5fYWRkQ2xhc3MoInVpLWFjY29yZGlvbiIsInVpLXdpZGdldCB1aS1oZWxwZXItcmVzZXQiKSx0aGlzLmVsZW1lbnQuYXR0cigicm9sZSIsInRhYmxpc3QiKSxlLmNvbGxhcHNpYmxlfHwhMSE9PWUuYWN0aXZlJiZudWxsIT1lLmFjdGl2ZXx8KGUuYWN0aXZlPTApLHRoaXMuX3Byb2Nlc3NQYW5lbHMoKSxlLmFjdGl2ZTwwJiYoZS5hY3RpdmUrPXRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMuX3JlZnJlc2goKX0sX2dldENyZWF0ZUV2ZW50RGF0YTpmdW5jdGlvbigpe3JldHVybntoZWFkZXI6dGhpcy5hY3RpdmUscGFuZWw6dGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLm5leHQoKTp1KCl9fSxfY3JlYXRlSWNvbnM6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3B0aW9ucy5pY29uczt0JiYoZT11KCI8c3Bhbj4iKSx0aGlzLl9hZGRDbGFzcyhlLCJ1aS1hY2NvcmRpb24taGVhZGVyLWljb24iLCJ1aS1pY29uICIrdC5oZWFkZXIpLGUucHJlcGVuZFRvKHRoaXMuaGVhZGVycyksZT10aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLHRoaXMuX3JlbW92ZUNsYXNzKGUsdC5oZWFkZXIpLl9hZGRDbGFzcyhlLG51bGwsdC5hY3RpdmVIZWFkZXIpLl9hZGRDbGFzcyh0aGlzLmhlYWRlcnMsInVpLWFjY29yZGlvbi1pY29ucyIpKX0sX2Rlc3Ryb3lJY29uczpmdW5jdGlvbigpe3RoaXMuX3JlbW92ZUNsYXNzKHRoaXMuaGVhZGVycywidWktYWNjb3JkaW9uLWljb25zIiksdGhpcy5oZWFkZXJzLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIikucmVtb3ZlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoInJvbGUiKSx0aGlzLmhlYWRlcnMucmVtb3ZlQXR0cigicm9sZSBhcmlhLWV4cGFuZGVkIGFyaWEtc2VsZWN0ZWQgYXJpYS1jb250cm9scyB0YWJJbmRleCIpLnJlbW92ZVVuaXF1ZUlkKCksdGhpcy5fZGVzdHJveUljb25zKCksZT10aGlzLmhlYWRlcnMubmV4dCgpLmNzcygiZGlzcGxheSIsIiIpLnJlbW92ZUF0dHIoInJvbGUgYXJpYS1oaWRkZW4gYXJpYS1sYWJlbGxlZGJ5IikucmVtb3ZlVW5pcXVlSWQoKSwiY29udGVudCIhPT10aGlzLm9wdGlvbnMuaGVpZ2h0U3R5bGUmJmUuY3NzKCJoZWlnaHQiLCIiKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLHQpeyJhY3RpdmUiIT09ZT8oImV2ZW50Ij09PWUmJih0aGlzLm9wdGlvbnMuZXZlbnQmJnRoaXMuX29mZih0aGlzLmhlYWRlcnMsdGhpcy5vcHRpb25zLmV2ZW50KSx0aGlzLl9zZXR1cEV2ZW50cyh0KSksdGhpcy5fc3VwZXIoZSx0KSwiY29sbGFwc2libGUiIT09ZXx8dHx8ITEhPT10aGlzLm9wdGlvbnMuYWN0aXZlfHx0aGlzLl9hY3RpdmF0ZSgwKSwiaWNvbnMiPT09ZSYmKHRoaXMuX2Rlc3Ryb3lJY29ucygpLHQmJnRoaXMuX2NyZWF0ZUljb25zKCkpKTp0aGlzLl9hY3RpdmF0ZSh0KX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3RoaXMuX3N1cGVyKGUpLHRoaXMuZWxlbWVudC5hdHRyKCJhcmlhLWRpc2FibGVkIixlKSx0aGlzLl90b2dnbGVDbGFzcyhudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFlKSx0aGlzLl90b2dnbGVDbGFzcyh0aGlzLmhlYWRlcnMuYWRkKHRoaXMuaGVhZGVycy5uZXh0KCkpLG51bGwsInVpLXN0YXRlLWRpc2FibGVkIiwhIWUpfSxfa2V5ZG93bjpmdW5jdGlvbihlKXtpZighZS5hbHRLZXkmJiFlLmN0cmxLZXkpe3ZhciB0PXUudWkua2V5Q29kZSxpPXRoaXMuaGVhZGVycy5sZW5ndGgscz10aGlzLmhlYWRlcnMuaW5kZXgoZS50YXJnZXQpLG49ITE7c3dpdGNoKGUua2V5Q29kZSl7Y2FzZSB0LlJJR0hUOmNhc2UgdC5ET1dOOm49dGhpcy5oZWFkZXJzWyhzKzEpJWldO2JyZWFrO2Nhc2UgdC5MRUZUOmNhc2UgdC5VUDpuPXRoaXMuaGVhZGVyc1socy0xK2kpJWldO2JyZWFrO2Nhc2UgdC5TUEFDRTpjYXNlIHQuRU5URVI6dGhpcy5fZXZlbnRIYW5kbGVyKGUpO2JyZWFrO2Nhc2UgdC5IT01FOm49dGhpcy5oZWFkZXJzWzBdO2JyZWFrO2Nhc2UgdC5FTkQ6bj10aGlzLmhlYWRlcnNbaS0xXX1uJiYodShlLnRhcmdldCkuYXR0cigidGFiSW5kZXgiLC0xKSx1KG4pLmF0dHIoInRhYkluZGV4IiwwKSx1KG4pLnRyaWdnZXIoImZvY3VzIiksZS5wcmV2ZW50RGVmYXVsdCgpKX19LF9wYW5lbEtleURvd246ZnVuY3Rpb24oZSl7ZS5rZXlDb2RlPT09dS51aS5rZXlDb2RlLlVQJiZlLmN0cmxLZXkmJnUoZS5jdXJyZW50VGFyZ2V0KS5wcmV2KCkudHJpZ2dlcigiZm9jdXMiKX0scmVmcmVzaDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9uczt0aGlzLl9wcm9jZXNzUGFuZWxzKCksITE9PT1lLmFjdGl2ZSYmITA9PT1lLmNvbGxhcHNpYmxlfHwhdGhpcy5oZWFkZXJzLmxlbmd0aD8oZS5hY3RpdmU9ITEsdGhpcy5hY3RpdmU9dSgpKTohMT09PWUuYWN0aXZlP3RoaXMuX2FjdGl2YXRlKDApOnRoaXMuYWN0aXZlLmxlbmd0aCYmIXUuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHRoaXMuYWN0aXZlWzBdKT90aGlzLmhlYWRlcnMubGVuZ3RoPT09dGhpcy5oZWFkZXJzLmZpbmQoIi51aS1zdGF0ZS1kaXNhYmxlZCIpLmxlbmd0aD8oZS5hY3RpdmU9ITEsdGhpcy5hY3RpdmU9dSgpKTp0aGlzLl9hY3RpdmF0ZShNYXRoLm1heCgwLGUuYWN0aXZlLTEpKTplLmFjdGl2ZT10aGlzLmhlYWRlcnMuaW5kZXgodGhpcy5hY3RpdmUpLHRoaXMuX2Rlc3Ryb3lJY29ucygpLHRoaXMuX3JlZnJlc2goKX0sX3Byb2Nlc3NQYW5lbHM6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmhlYWRlcnMsdD10aGlzLnBhbmVsczsiZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5vcHRpb25zLmhlYWRlcj90aGlzLmhlYWRlcnM9dGhpcy5vcHRpb25zLmhlYWRlcih0aGlzLmVsZW1lbnQpOnRoaXMuaGVhZGVycz10aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGVhZGVyKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmhlYWRlcnMsInVpLWFjY29yZGlvbi1oZWFkZXIgdWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiLCJ1aS1zdGF0ZS1kZWZhdWx0IiksdGhpcy5wYW5lbHM9dGhpcy5oZWFkZXJzLm5leHQoKS5maWx0ZXIoIjpub3QoLnVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSkiKS5oaWRlKCksdGhpcy5fYWRkQ2xhc3ModGhpcy5wYW5lbHMsInVpLWFjY29yZGlvbi1jb250ZW50IiwidWktaGVscGVyLXJlc2V0IHVpLXdpZGdldC1jb250ZW50IiksdCYmKHRoaXMuX29mZihlLm5vdCh0aGlzLmhlYWRlcnMpKSx0aGlzLl9vZmYodC5ub3QodGhpcy5wYW5lbHMpKSl9LF9yZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIGksZT10aGlzLm9wdGlvbnMsdD1lLmhlaWdodFN0eWxlLHM9dGhpcy5lbGVtZW50LnBhcmVudCgpO3RoaXMuYWN0aXZlPXRoaXMuX2ZpbmRBY3RpdmUoZS5hY3RpdmUpLHRoaXMuX2FkZENsYXNzKHRoaXMuYWN0aXZlLCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIsInVpLXN0YXRlLWFjdGl2ZSIpLl9yZW1vdmVDbGFzcyh0aGlzLmFjdGl2ZSwidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmFjdGl2ZS5uZXh0KCksInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLHRoaXMuYWN0aXZlLm5leHQoKS5zaG93KCksdGhpcy5oZWFkZXJzLmF0dHIoInJvbGUiLCJ0YWIiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9dSh0aGlzKSx0PWUudW5pcXVlSWQoKS5hdHRyKCJpZCIpLGk9ZS5uZXh0KCkscz1pLnVuaXF1ZUlkKCkuYXR0cigiaWQiKTtlLmF0dHIoImFyaWEtY29udHJvbHMiLHMpLGkuYXR0cigiYXJpYS1sYWJlbGxlZGJ5Iix0KX0pLm5leHQoKS5hdHRyKCJyb2xlIiwidGFicGFuZWwiKSx0aGlzLmhlYWRlcnMubm90KHRoaXMuYWN0aXZlKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6ImZhbHNlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIix0YWJJbmRleDotMX0pLm5leHQoKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLmhpZGUoKSx0aGlzLmFjdGl2ZS5sZW5ndGg\/dGhpcy5hY3RpdmUuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJ0cnVlIiwiYXJpYS1leHBhbmRlZCI6InRydWUiLHRhYkluZGV4OjB9KS5uZXh0KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoiZmFsc2UifSk6dGhpcy5oZWFkZXJzLmVxKDApLmF0dHIoInRhYkluZGV4IiwwKSx0aGlzLl9jcmVhdGVJY29ucygpLHRoaXMuX3NldHVwRXZlbnRzKGUuZXZlbnQpLCJmaWxsIj09PXQ\/KGk9cy5oZWlnaHQoKSx0aGlzLmVsZW1lbnQuc2libGluZ3MoIjp2aXNpYmxlIikuZWFjaChmdW5jdGlvbigpe3ZhciBlPXUodGhpcyksdD1lLmNzcygicG9zaXRpb24iKTsiYWJzb2x1dGUiIT09dCYmImZpeGVkIiE9PXQmJihpLT1lLm91dGVySGVpZ2h0KCEwKSl9KSx0aGlzLmhlYWRlcnMuZWFjaChmdW5jdGlvbigpe2ktPXUodGhpcykub3V0ZXJIZWlnaHQoITApfSksdGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7dSh0aGlzKS5oZWlnaHQoTWF0aC5tYXgoMCxpLXUodGhpcykuaW5uZXJIZWlnaHQoKSt1KHRoaXMpLmhlaWdodCgpKSl9KS5jc3MoIm92ZXJmbG93IiwiYXV0byIpKToiYXV0byI9PT10JiYoaT0wLHRoaXMuaGVhZGVycy5uZXh0KCkuZWFjaChmdW5jdGlvbigpe3ZhciBlPXUodGhpcykuaXMoIjp2aXNpYmxlIik7ZXx8dSh0aGlzKS5zaG93KCksaT1NYXRoLm1heChpLHUodGhpcykuY3NzKCJoZWlnaHQiLCIiKS5oZWlnaHQoKSksZXx8dSh0aGlzKS5oaWRlKCl9KS5oZWlnaHQoaSkpfSxfYWN0aXZhdGU6ZnVuY3Rpb24oZSl7ZT10aGlzLl9maW5kQWN0aXZlKGUpWzBdO2UhPT10aGlzLmFjdGl2ZVswXSYmKGU9ZXx8dGhpcy5hY3RpdmVbMF0sdGhpcy5fZXZlbnRIYW5kbGVyKHt0YXJnZXQ6ZSxjdXJyZW50VGFyZ2V0OmUscHJldmVudERlZmF1bHQ6dS5ub29wfSkpfSxfZmluZEFjdGl2ZTpmdW5jdGlvbihlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGU\/dGhpcy5oZWFkZXJzLmVxKGUpOnUoKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKGUpe3ZhciBpPXtrZXlkb3duOiJfa2V5ZG93biJ9O2UmJnUuZWFjaChlLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtpW3RdPSJfZXZlbnRIYW5kbGVyIn0pLHRoaXMuX29mZih0aGlzLmhlYWRlcnMuYWRkKHRoaXMuaGVhZGVycy5uZXh0KCkpKSx0aGlzLl9vbih0aGlzLmhlYWRlcnMsaSksdGhpcy5fb24odGhpcy5oZWFkZXJzLm5leHQoKSx7a2V5ZG93bjoiX3BhbmVsS2V5RG93biJ9KSx0aGlzLl9ob3ZlcmFibGUodGhpcy5oZWFkZXJzKSx0aGlzLl9mb2N1c2FibGUodGhpcy5oZWFkZXJzKX0sX2V2ZW50SGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLm9wdGlvbnMsaT10aGlzLmFjdGl2ZSxzPXUoZS5jdXJyZW50VGFyZ2V0KSxuPXNbMF09PT1pWzBdLGE9biYmdC5jb2xsYXBzaWJsZSxvPWE\/dSgpOnMubmV4dCgpLHI9aS5uZXh0KCksbz17b2xkSGVhZGVyOmksb2xkUGFuZWw6cixuZXdIZWFkZXI6YT91KCk6cyxuZXdQYW5lbDpvfTtlLnByZXZlbnREZWZhdWx0KCksbiYmIXQuY29sbGFwc2libGV8fCExPT09dGhpcy5fdHJpZ2dlcigiYmVmb3JlQWN0aXZhdGUiLGUsbyl8fCh0LmFjdGl2ZT0hYSYmdGhpcy5oZWFkZXJzLmluZGV4KHMpLHRoaXMuYWN0aXZlPW4\/dSgpOnMsdGhpcy5fdG9nZ2xlKG8pLHRoaXMuX3JlbW92ZUNsYXNzKGksInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIiwidWktc3RhdGUtYWN0aXZlIiksdC5pY29ucyYmKGk9aS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLHRoaXMuX3JlbW92ZUNsYXNzKGksbnVsbCx0Lmljb25zLmFjdGl2ZUhlYWRlcikuX2FkZENsYXNzKGksbnVsbCx0Lmljb25zLmhlYWRlcikpLG58fCh0aGlzLl9yZW1vdmVDbGFzcyhzLCJ1aS1hY2NvcmRpb24taGVhZGVyLWNvbGxhcHNlZCIpLl9hZGRDbGFzcyhzLCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIsInVpLXN0YXRlLWFjdGl2ZSIpLHQuaWNvbnMmJihuPXMuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKSx0aGlzLl9yZW1vdmVDbGFzcyhuLG51bGwsdC5pY29ucy5oZWFkZXIpLl9hZGRDbGFzcyhuLG51bGwsdC5pY29ucy5hY3RpdmVIZWFkZXIpKSx0aGlzLl9hZGRDbGFzcyhzLm5leHQoKSwidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIikpKX0sX3RvZ2dsZTpmdW5jdGlvbihlKXt2YXIgdD1lLm5ld1BhbmVsLGk9dGhpcy5wcmV2U2hvdy5sZW5ndGg\/dGhpcy5wcmV2U2hvdzplLm9sZFBhbmVsO3RoaXMucHJldlNob3cuYWRkKHRoaXMucHJldkhpZGUpLnN0b3AoITAsITApLHRoaXMucHJldlNob3c9dCx0aGlzLnByZXZIaWRlPWksdGhpcy5vcHRpb25zLmFuaW1hdGU\/dGhpcy5fYW5pbWF0ZSh0LGksZSk6KGkuaGlkZSgpLHQuc2hvdygpLHRoaXMuX3RvZ2dsZUNvbXBsZXRlKGUpKSxpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSksaS5wcmV2KCkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSJ9KSx0Lmxlbmd0aCYmaS5sZW5ndGg\/aS5wcmV2KCkuYXR0cih7dGFiSW5kZXg6LTEsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSJ9KTp0Lmxlbmd0aCYmdGhpcy5oZWFkZXJzLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAwPT09cGFyc2VJbnQodSh0aGlzKS5hdHRyKCJ0YWJJbmRleCIpLDEwKX0pLmF0dHIoInRhYkluZGV4IiwtMSksdC5hdHRyKCJhcmlhLWhpZGRlbiIsImZhbHNlIikucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSl9LF9hbmltYXRlOmZ1bmN0aW9uKGUsaSx0KXt2YXIgcyxuLGEsbz10aGlzLHI9MCxoPWUuY3NzKCJib3gtc2l6aW5nIiksbD1lLmxlbmd0aCYmKCFpLmxlbmd0aHx8ZS5pbmRleCgpPGkuaW5kZXgoKSksdT10aGlzLm9wdGlvbnMuYW5pbWF0ZXx8e30sYz1sJiZ1LmRvd258fHUsbD1mdW5jdGlvbigpe28uX3RvZ2dsZUNvbXBsZXRlKHQpfTtyZXR1cm4gbj0obj0ic3RyaW5nIj09dHlwZW9mIGM\/YzpuKXx8Yy5lYXNpbmd8fHUuZWFzaW5nLGE9KGE9Im51bWJlciI9PXR5cGVvZiBjP2M6YSl8fGMuZHVyYXRpb258fHUuZHVyYXRpb24saS5sZW5ndGg\/ZS5sZW5ndGg\/KHM9ZS5zaG93KCkub3V0ZXJIZWlnaHQoKSxpLmFuaW1hdGUodGhpcy5oaWRlUHJvcHMse2R1cmF0aW9uOmEsZWFzaW5nOm4sc3RlcDpmdW5jdGlvbihlLHQpe3Qubm93PU1hdGgucm91bmQoZSl9fSksdm9pZCBlLmhpZGUoKS5hbmltYXRlKHRoaXMuc2hvd1Byb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLGNvbXBsZXRlOmwsc3RlcDpmdW5jdGlvbihlLHQpe3Qubm93PU1hdGgucm91bmQoZSksImhlaWdodCIhPT10LnByb3A\/ImNvbnRlbnQtYm94Ij09PWgmJihyKz10Lm5vdyk6ImNvbnRlbnQiIT09by5vcHRpb25zLmhlaWdodFN0eWxlJiYodC5ub3c9TWF0aC5yb3VuZChzLWkub3V0ZXJIZWlnaHQoKS1yKSxyPTApfX0pKTppLmFuaW1hdGUodGhpcy5oaWRlUHJvcHMsYSxuLGwpOmUuYW5pbWF0ZSh0aGlzLnNob3dQcm9wcyxhLG4sbCl9LF90b2dnbGVDb21wbGV0ZTpmdW5jdGlvbihlKXt2YXIgdD1lLm9sZFBhbmVsLGk9dC5wcmV2KCk7dGhpcy5fcmVtb3ZlQ2xhc3ModCwidWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlIiksdGhpcy5fcmVtb3ZlQ2xhc3MoaSwidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiKS5fYWRkQ2xhc3MoaSwidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiKSx0Lmxlbmd0aCYmKHQucGFyZW50KClbMF0uY2xhc3NOYW1lPXQucGFyZW50KClbMF0uY2xhc3NOYW1lKSx0aGlzLl90cmlnZ2VyKCJhY3RpdmF0ZSIsbnVsbCxlKX19KSx1LnVpLmllPSEhL21zaWUgW1x3Ll0rLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7dmFyIGUsYT0hMTt1KGRvY3VtZW50KS5vbigibW91c2V1cCIsZnVuY3Rpb24oKXthPSExfSk7dS53aWRnZXQoInVpLm1vdXNlIix7dmVyc2lvbjoiMS4xMy4yIixvcHRpb25zOntjYW5jZWw6ImlucHV0LCB0ZXh0YXJlYSwgYnV0dG9uLCBzZWxlY3QsIG9wdGlvbiIsZGlzdGFuY2U6MSxkZWxheTowfSxfbW91c2VJbml0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmVsZW1lbnQub24oIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VEb3duKGUpfSkub24oImNsaWNrLiIrdGhpcy53aWRnZXROYW1lLGZ1bmN0aW9uKGUpe2lmKCEwPT09dS5kYXRhKGUudGFyZ2V0LHQud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikpcmV0dXJuIHUucmVtb3ZlRGF0YShlLnRhcmdldCx0LndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksITF9KSx0aGlzLnN0YXJ0ZWQ9ITF9LF9tb3VzZURlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQub2ZmKCIuIit0aGlzLndpZGdldE5hbWUpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlJiZ0aGlzLmRvY3VtZW50Lm9mZigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vZmYoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKX0sX21vdXNlRG93bjpmdW5jdGlvbihlKXtpZighYSl7dGhpcy5fbW91c2VNb3ZlZD0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJnRoaXMuX21vdXNlVXAoZSksdGhpcy5fbW91c2VEb3duRXZlbnQ9ZTt2YXIgdD10aGlzLGk9MT09PWUud2hpY2gscz0hKCJzdHJpbmciIT10eXBlb2YgdGhpcy5vcHRpb25zLmNhbmNlbHx8IWUudGFyZ2V0Lm5vZGVOYW1lKSYmdShlLnRhcmdldCkuY2xvc2VzdCh0aGlzLm9wdGlvbnMuY2FuY2VsKS5sZW5ndGg7cmV0dXJuIGkmJiFzJiZ0aGlzLl9tb3VzZUNhcHR1cmUoZSk\/KHRoaXMubW91c2VEZWxheU1ldD0hdGhpcy5vcHRpb25zLmRlbGF5LHRoaXMubW91c2VEZWxheU1ldHx8KHRoaXMuX21vdXNlRGVsYXlUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5tb3VzZURlbGF5TWV0PSEwfSx0aGlzLm9wdGlvbnMuZGVsYXkpKSx0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGUpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KGUpJiYodGhpcy5fbW91c2VTdGFydGVkPSExIT09dGhpcy5fbW91c2VTdGFydChlKSwhdGhpcy5fbW91c2VTdGFydGVkKT8oZS5wcmV2ZW50RGVmYXVsdCgpLCEwKTooITA9PT11LmRhdGEoZS50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSYmdS5yZW1vdmVEYXRhKGUudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuX21vdXNlTW92ZShlKX0sdGhpcy5fbW91c2VVcERlbGVnYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0Ll9tb3VzZVVwKGUpfSx0aGlzLmRvY3VtZW50Lm9uKCJtb3VzZW1vdmUuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VNb3ZlRGVsZWdhdGUpLm9uKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksZS5wcmV2ZW50RGVmYXVsdCgpLGE9ITApKTohMH19LF9tb3VzZU1vdmU6ZnVuY3Rpb24oZSl7aWYodGhpcy5fbW91c2VNb3ZlZCl7aWYodS51aS5pZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fGRvY3VtZW50LmRvY3VtZW50TW9kZTw5KSYmIWUuYnV0dG9uKXJldHVybiB0aGlzLl9tb3VzZVVwKGUpO2lmKCFlLndoaWNoKWlmKGUub3JpZ2luYWxFdmVudC5hbHRLZXl8fGUub3JpZ2luYWxFdmVudC5jdHJsS2V5fHxlLm9yaWdpbmFsRXZlbnQubWV0YUtleXx8ZS5vcmlnaW5hbEV2ZW50LnNoaWZ0S2V5KXRoaXMuaWdub3JlTWlzc2luZ1doaWNoPSEwO2Vsc2UgaWYoIXRoaXMuaWdub3JlTWlzc2luZ1doaWNoKXJldHVybiB0aGlzLl9tb3VzZVVwKGUpfXJldHVybihlLndoaWNofHxlLmJ1dHRvbikmJih0aGlzLl9tb3VzZU1vdmVkPSEwKSx0aGlzLl9tb3VzZVN0YXJ0ZWQ\/KHRoaXMuX21vdXNlRHJhZyhlKSxlLnByZXZlbnREZWZhdWx0KCkpOih0aGlzLl9tb3VzZURpc3RhbmNlTWV0KGUpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KGUpJiYodGhpcy5fbW91c2VTdGFydGVkPSExIT09dGhpcy5fbW91c2VTdGFydCh0aGlzLl9tb3VzZURvd25FdmVudCxlKSx0aGlzLl9tb3VzZVN0YXJ0ZWQ\/dGhpcy5fbW91c2VEcmFnKGUpOnRoaXMuX21vdXNlVXAoZSkpLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpfSxfbW91c2VVcDpmdW5jdGlvbihlKXt0aGlzLmRvY3VtZW50Lm9mZigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vZmYoIm1vdXNldXAuIit0aGlzLndpZGdldE5hbWUsdGhpcy5fbW91c2VVcERlbGVnYXRlKSx0aGlzLl9tb3VzZVN0YXJ0ZWQmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9ITEsZS50YXJnZXQ9PT10aGlzLl9tb3VzZURvd25FdmVudC50YXJnZXQmJnUuZGF0YShlLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIsITApLHRoaXMuX21vdXNlU3RvcChlKSksdGhpcy5fbW91c2VEZWxheVRpbWVyJiYoY2xlYXJUaW1lb3V0KHRoaXMuX21vdXNlRGVsYXlUaW1lciksZGVsZXRlIHRoaXMuX21vdXNlRGVsYXlUaW1lciksdGhpcy5pZ25vcmVNaXNzaW5nV2hpY2g9ITEsYT0hMSxlLnByZXZlbnREZWZhdWx0KCl9LF9tb3VzZURpc3RhbmNlTWV0OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWC1lLnBhZ2VYKSxNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWS1lLnBhZ2VZKSk+PXRoaXMub3B0aW9ucy5kaXN0YW5jZX0sX21vdXNlRGVsYXlNZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0fSxfbW91c2VTdGFydDpmdW5jdGlvbigpe30sX21vdXNlRHJhZzpmdW5jdGlvbigpe30sX21vdXNlU3RvcDpmdW5jdGlvbigpe30sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbigpe3JldHVybiEwfX0pLHUud2lkZ2V0KCJ1aS5zbGlkZXIiLHUudWkubW91c2Use3ZlcnNpb246IjEuMTMuMiIsd2lkZ2V0RXZlbnRQcmVmaXg6InNsaWRlIixvcHRpb25zOnthbmltYXRlOiExLGNsYXNzZXM6eyJ1aS1zbGlkZXIiOiJ1aS1jb3JuZXItYWxsIiwidWktc2xpZGVyLWhhbmRsZSI6InVpLWNvcm5lci1hbGwiLCJ1aS1zbGlkZXItcmFuZ2UiOiJ1aS1jb3JuZXItYWxsIHVpLXdpZGdldC1oZWFkZXIifSxkaXN0YW5jZTowLG1heDoxMDAsbWluOjAsb3JpZW50YXRpb246Imhvcml6b250YWwiLHJhbmdlOiExLHN0ZXA6MSx2YWx1ZTowLHZhbHVlczpudWxsLGNoYW5nZTpudWxsLHNsaWRlOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LG51bVBhZ2VzOjUsX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuX2tleVNsaWRpbmc9ITEsdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5faGFuZGxlSW5kZXg9bnVsbCx0aGlzLl9kZXRlY3RPcmllbnRhdGlvbigpLHRoaXMuX21vdXNlSW5pdCgpLHRoaXMuX2NhbGN1bGF0ZU5ld01heCgpLHRoaXMuX2FkZENsYXNzKCJ1aS1zbGlkZXIgdWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiwidWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IiksdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9LF9yZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5fY3JlYXRlUmFuZ2UoKSx0aGlzLl9jcmVhdGVIYW5kbGVzKCksdGhpcy5fc2V0dXBFdmVudHMoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX2NyZWF0ZUhhbmRsZXM6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3B0aW9ucyxpPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLHM9W10sbj10LnZhbHVlcyYmdC52YWx1ZXMubGVuZ3RofHwxO2ZvcihpLmxlbmd0aD5uJiYoaS5zbGljZShuKS5yZW1vdmUoKSxpPWkuc2xpY2UoMCxuKSksZT1pLmxlbmd0aDtlPG47ZSsrKXMucHVzaCgiPHNwYW4gdGFiaW5kZXg9JzAnPjwvc3Bhbj4iKTt0aGlzLmhhbmRsZXM9aS5hZGQodShzLmpvaW4oIiIpKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmhhbmRsZXMsInVpLXNsaWRlci1oYW5kbGUiLCJ1aS1zdGF0ZS1kZWZhdWx0IiksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3UodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsZSkuYXR0cigidGFiSW5kZXgiLDApfSl9LF9jcmVhdGVSYW5nZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucztlLnJhbmdlPyghMD09PWUucmFuZ2UmJihlLnZhbHVlcz9lLnZhbHVlcy5sZW5ndGgmJjIhPT1lLnZhbHVlcy5sZW5ndGg\/ZS52YWx1ZXM9W2UudmFsdWVzWzBdLGUudmFsdWVzWzBdXTpBcnJheS5pc0FycmF5KGUudmFsdWVzKSYmKGUudmFsdWVzPWUudmFsdWVzLnNsaWNlKDApKTplLnZhbHVlcz1bdGhpcy5fdmFsdWVNaW4oKSx0aGlzLl92YWx1ZU1pbigpXSksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5sZW5ndGg\/KHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZS1taW4gdWktc2xpZGVyLXJhbmdlLW1heCIpLHRoaXMucmFuZ2UuY3NzKHtsZWZ0OiIiLGJvdHRvbToiIn0pKToodGhpcy5yYW5nZT11KCI8ZGl2PiIpLmFwcGVuZFRvKHRoaXMuZWxlbWVudCksdGhpcy5fYWRkQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlIikpLCJtaW4iIT09ZS5yYW5nZSYmIm1heCIhPT1lLnJhbmdlfHx0aGlzLl9hZGRDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UtIitlLnJhbmdlKSk6KHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5yYW5nZT1udWxsKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fb2ZmKHRoaXMuaGFuZGxlcyksdGhpcy5fb24odGhpcy5oYW5kbGVzLHRoaXMuX2hhbmRsZUV2ZW50cyksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGFuZGxlcyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGFuZGxlcyl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVzLnJlbW92ZSgpLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oZSl7dmFyIGkscyxuLGEsdCxvLHI9dGhpcyxoPXRoaXMub3B0aW9ucztyZXR1cm4haC5kaXNhYmxlZCYmKHRoaXMuZWxlbWVudFNpemU9e3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpfSx0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLG89e3g6ZS5wYWdlWCx5OmUucGFnZVl9LGk9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKG8pLHM9dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKzEsdGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5hYnMoaS1yLnZhbHVlcyhlKSk7KHQ8c3x8cz09PXQmJihlPT09ci5fbGFzdENoYW5nZWRWYWx1ZXx8ci52YWx1ZXMoZSk9PT1oLm1pbikpJiYocz10LG49dSh0aGlzKSxhPWUpfSksITEhPT10aGlzLl9zdGFydChlLGEpJiYodGhpcy5fbW91c2VTbGlkaW5nPSEwLHRoaXMuX2hhbmRsZUluZGV4PWEsdGhpcy5fYWRkQ2xhc3MobixudWxsLCJ1aS1zdGF0ZS1hY3RpdmUiKSxuLnRyaWdnZXIoImZvY3VzIiksdD1uLm9mZnNldCgpLG89IXUoZS50YXJnZXQpLnBhcmVudHMoKS5hZGRCYWNrKCkuaXMoIi51aS1zbGlkZXItaGFuZGxlIiksdGhpcy5fY2xpY2tPZmZzZXQ9bz97bGVmdDowLHRvcDowfTp7bGVmdDplLnBhZ2VYLXQubGVmdC1uLndpZHRoKCkvMix0b3A6ZS5wYWdlWS10LnRvcC1uLmhlaWdodCgpLzItKHBhcnNlSW50KG4uY3NzKCJib3JkZXJUb3BXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KG4uY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLDEwKXx8MCkrKHBhcnNlSW50KG4uY3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDApfSx0aGlzLmhhbmRsZXMuaGFzQ2xhc3MoInVpLXN0YXRlLWhvdmVyIil8fHRoaXMuX3NsaWRlKGUsYSxpKSx0aGlzLl9hbmltYXRlT2ZmPSEwKSl9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LF9tb3VzZURyYWc6ZnVuY3Rpb24oZSl7dmFyIHQ9e3g6ZS5wYWdlWCx5OmUucGFnZVl9LHQ9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKHQpO3JldHVybiB0aGlzLl9zbGlkZShlLHRoaXMuX2hhbmRsZUluZGV4LHQpLCExfSxfbW91c2VTdG9wOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhhbmRsZXMsbnVsbCwidWktc3RhdGUtYWN0aXZlIiksdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5fY2hhbmdlKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fY2xpY2tPZmZzZXQ9bnVsbCx0aGlzLl9hbmltYXRlT2ZmPSExfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI9PT10aGlzLm9wdGlvbnMub3JpZW50YXRpb24\/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24oZSl7dmFyIHQsZT0iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyh0PXRoaXMuZWxlbWVudFNpemUud2lkdGgsZS54LXRoaXMuZWxlbWVudE9mZnNldC5sZWZ0LSh0aGlzLl9jbGlja09mZnNldD90aGlzLl9jbGlja09mZnNldC5sZWZ0OjApKToodD10aGlzLmVsZW1lbnRTaXplLmhlaWdodCxlLnktdGhpcy5lbGVtZW50T2Zmc2V0LnRvcC0odGhpcy5fY2xpY2tPZmZzZXQ\/dGhpcy5fY2xpY2tPZmZzZXQudG9wOjApKSxlPWUvdDtyZXR1cm4oZT0xPGU\/MTplKTwwJiYoZT0wKSwidmVydGljYWwiPT09dGhpcy5vcmllbnRhdGlvbiYmKGU9MS1lKSx0PXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSx0PXRoaXMuX3ZhbHVlTWluKCkrZSp0LHRoaXMuX3RyaW1BbGlnblZhbHVlKHQpfSxfdWlIYXNoOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz17aGFuZGxlOnRoaXMuaGFuZGxlc1tlXSxoYW5kbGVJbmRleDplLHZhbHVlOnZvaWQgMCE9PXQ\/dDp0aGlzLnZhbHVlKCl9O3JldHVybiB0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpJiYocy52YWx1ZT12b2lkIDAhPT10P3Q6dGhpcy52YWx1ZXMoZSkscy52YWx1ZXM9aXx8dGhpcy52YWx1ZXMoKSksc30sX2hhc011bHRpcGxlVmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RofSxfc3RhcnQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fdHJpZ2dlcigic3RhcnQiLGUsdGhpcy5fdWlIYXNoKHQpKX0sX3NsaWRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuPXRoaXMudmFsdWUoKSxhPXRoaXMudmFsdWVzKCk7dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSYmKHM9dGhpcy52YWx1ZXModD8wOjEpLG49dGhpcy52YWx1ZXModCksMj09PXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKGk9MD09PXQ\/TWF0aC5taW4ocyxpKTpNYXRoLm1heChzLGkpKSxhW3RdPWkpLGkhPT1uJiYhMSE9PXRoaXMuX3RyaWdnZXIoInNsaWRlIixlLHRoaXMuX3VpSGFzaCh0LGksYSkpJiYodGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLnZhbHVlcyh0LGkpOnRoaXMudmFsdWUoaSkpfSxfc3RvcDpmdW5jdGlvbihlLHQpe3RoaXMuX3RyaWdnZXIoInN0b3AiLGUsdGhpcy5fdWlIYXNoKHQpKX0sX2NoYW5nZTpmdW5jdGlvbihlLHQpe3RoaXMuX2tleVNsaWRpbmd8fHRoaXMuX21vdXNlU2xpZGluZ3x8KHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGUsdGhpcy5fdWlIYXNoKHQpKSl9LHZhbHVlOmZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCB0aGlzLl9jaGFuZ2UobnVsbCwwKSk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuO2lmKDE8YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1tlXT10aGlzLl90cmltQWxpZ25WYWx1ZSh0KSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIHRoaXMuX2NoYW5nZShudWxsLGUpO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl92YWx1ZXMoKTtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLl92YWx1ZXMoZSk6dGhpcy52YWx1ZSgpO2ZvcihpPXRoaXMub3B0aW9ucy52YWx1ZXMscz1lLG49MDtuPGkubGVuZ3RoO24rPTEpaVtuXT10aGlzLl90cmltQWxpZ25WYWx1ZShzW25dKSx0aGlzLl9jaGFuZ2UobnVsbCxuKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBpLHM9MDtzd2l0Y2goInJhbmdlIj09PWUmJiEwPT09dGhpcy5vcHRpb25zLnJhbmdlJiYoIm1pbiI9PT10Pyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT10JiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSxBcnJheS5pc0FycmF5KHRoaXMub3B0aW9ucy52YWx1ZXMpJiYocz10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCksdGhpcy5fc3VwZXIoZSx0KSxlKXtjYXNlIm9yaWVudGF0aW9uIjp0aGlzLl9kZXRlY3RPcmllbnRhdGlvbigpLHRoaXMuX3JlbW92ZUNsYXNzKCJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiKS5fYWRkQ2xhc3MoInVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24pLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMub3B0aW9ucy5yYW5nZSYmdGhpcy5fcmVmcmVzaFJhbmdlKHQpLHRoaXMuaGFuZGxlcy5jc3MoImhvcml6b250YWwiPT09dD8iYm90dG9tIjoibGVmdCIsIiIpO2JyZWFrO2Nhc2UidmFsdWUiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5fY2hhbmdlKG51bGwsMCksdGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInZhbHVlcyI6Zm9yKHRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaFZhbHVlKCksaT1zLTE7MDw9aTtpLS0pdGhpcy5fY2hhbmdlKG51bGwsaSk7dGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInN0ZXAiOmNhc2UibWluIjpjYXNlIm1heCI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UicmFuZ2UiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9fSxfc2V0T3B0aW9uRGlzYWJsZWQ6ZnVuY3Rpb24oZSl7dGhpcy5fc3VwZXIoZSksdGhpcy5fdG9nZ2xlQ2xhc3MobnVsbCwidWktc3RhdGUtZGlzYWJsZWQiLCEhZSl9LF92YWx1ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9ucy52YWx1ZTtyZXR1cm4gZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKX0sX3ZhbHVlczpmdW5jdGlvbihlKXt2YXIgdCxpO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIGU9dGhpcy5vcHRpb25zLnZhbHVlc1tlXSxlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpO2lmKHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkpe2Zvcih0PXRoaXMub3B0aW9ucy52YWx1ZXMuc2xpY2UoKSxpPTA7aTx0Lmxlbmd0aDtpKz0xKXRbaV09dGhpcy5fdHJpbUFsaWduVmFsdWUodFtpXSk7cmV0dXJuIHR9cmV0dXJuW119LF90cmltQWxpZ25WYWx1ZTpmdW5jdGlvbihlKXtpZihlPD10aGlzLl92YWx1ZU1pbigpKXJldHVybiB0aGlzLl92YWx1ZU1pbigpO2lmKGU+PXRoaXMuX3ZhbHVlTWF4KCkpcmV0dXJuIHRoaXMuX3ZhbHVlTWF4KCk7dmFyIHQ9MDx0aGlzLm9wdGlvbnMuc3RlcD90aGlzLm9wdGlvbnMuc3RlcDoxLGk9KGUtdGhpcy5fdmFsdWVNaW4oKSkldCxlPWUtaTtyZXR1cm4gMipNYXRoLmFicyhpKT49dCYmKGUrPTA8aT90Oi10KSxwYXJzZUZsb2F0KGUudG9GaXhlZCg1KSl9LF9jYWxjdWxhdGVOZXdNYXg6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMubWF4LHQ9dGhpcy5fdmFsdWVNaW4oKSxpPXRoaXMub3B0aW9ucy5zdGVwOyhlPU1hdGgucm91bmQoKGUtdCkvaSkqaSt0KT50aGlzLm9wdGlvbnMubWF4JiYoZS09aSksdGhpcy5tYXg9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gZT1udWxsIT09dGhpcy5vcHRpb25zLm1pbj9NYXRoLm1heChlLHRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5taW4pKTplfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50b1N0cmluZygpLGU9dC5pbmRleE9mKCIuIik7cmV0dXJuLTE9PT1lPzA6dC5sZW5ndGgtZS0xfSxfdmFsdWVNaW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcHRpb25zLm1pbn0sX3ZhbHVlTWF4OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF4fSxfcmVmcmVzaFJhbmdlOmZ1bmN0aW9uKGUpeyJ2ZXJ0aWNhbCI9PT1lJiZ0aGlzLnJhbmdlLmNzcyh7d2lkdGg6IiIsbGVmdDoiIn0pLCJob3Jpem9udGFsIj09PWUmJnRoaXMucmFuZ2UuY3NzKHtoZWlnaHQ6IiIsYm90dG9tOiIifSl9LF9yZWZyZXNoVmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxpLGUscyxuLGE9dGhpcy5vcHRpb25zLnJhbmdlLG89dGhpcy5vcHRpb25zLHI9dGhpcyxoPSF0aGlzLl9hbmltYXRlT2ZmJiZvLmFuaW1hdGUsbD17fTt0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpP3RoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe2k9KHIudmFsdWVzKGUpLXIuX3ZhbHVlTWluKCkpLyhyLl92YWx1ZU1heCgpLXIuX3ZhbHVlTWluKCkpKjEwMCxsWyJob3Jpem9udGFsIj09PXIub3JpZW50YXRpb24\/ImxlZnQiOiJib3R0b20iXT1pKyIlIix1KHRoaXMpLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0obCxvLmFuaW1hdGUpLCEwPT09ci5vcHRpb25zLnJhbmdlJiYoImhvcml6b250YWwiPT09ci5vcmllbnRhdGlvbj8oMD09PWUmJnIucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7bGVmdDppKyIlIn0sby5hbmltYXRlKSwxPT09ZSYmci5yYW5nZVtoPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmktdCsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjpvLmFuaW1hdGV9KSk6KDA9PT1lJiZyLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2JvdHRvbTppKyIlIn0sby5hbmltYXRlKSwxPT09ZSYmci5yYW5nZVtoPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246by5hbmltYXRlfSkpKSx0PWl9KTooZT10aGlzLnZhbHVlKCkscz10aGlzLl92YWx1ZU1pbigpLG49dGhpcy5fdmFsdWVNYXgoKSxpPW4hPT1zPyhlLXMpLyhuLXMpKjEwMDowLGxbImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8ibGVmdCI6ImJvdHRvbSJdPWkrIiUiLHRoaXMuaGFuZGxlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0obCxvLmFuaW1hdGUpLCJtaW4iPT09YSYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDppKyIlIn0sby5hbmltYXRlKSwibWF4Ij09PWEmJiJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6MTAwLWkrIiUifSxvLmFuaW1hdGUpLCJtaW4iPT09YSYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmkrIiUifSxvLmFuaW1hdGUpLCJtYXgiPT09YSYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OjEwMC1pKyIlIn0sby5hbmltYXRlKSl9LF9oYW5kbGVFdmVudHM6e2tleWRvd246ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG49dShlLnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgdS51aS5rZXlDb2RlLkhPTUU6Y2FzZSB1LnVpLmtleUNvZGUuRU5EOmNhc2UgdS51aS5rZXlDb2RlLlBBR0VfVVA6Y2FzZSB1LnVpLmtleUNvZGUuUEFHRV9ET1dOOmNhc2UgdS51aS5rZXlDb2RlLlVQOmNhc2UgdS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgdS51aS5rZXlDb2RlLkRPV046Y2FzZSB1LnVpLmtleUNvZGUuTEVGVDppZihlLnByZXZlbnREZWZhdWx0KCksIXRoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSEwLHRoaXMuX2FkZENsYXNzKHUoZS50YXJnZXQpLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLCExPT09dGhpcy5fc3RhcnQoZSxuKSkpcmV0dXJufXN3aXRjaChzPXRoaXMub3B0aW9ucy5zdGVwLHQ9aT10aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpP3RoaXMudmFsdWVzKG4pOnRoaXMudmFsdWUoKSxlLmtleUNvZGUpe2Nhc2UgdS51aS5rZXlDb2RlLkhPTUU6aT10aGlzLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLkVORDppPXRoaXMuX3ZhbHVlTWF4KCk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuUEFHRV9VUDppPXRoaXMuX3RyaW1BbGlnblZhbHVlKHQrKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuUEFHRV9ET1dOOmk9dGhpcy5fdHJpbUFsaWduVmFsdWUodC0odGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5VUDpjYXNlIHUudWkua2V5Q29kZS5SSUdIVDppZih0PT09dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm47aT10aGlzLl90cmltQWxpZ25WYWx1ZSh0K3MpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLkRPV046Y2FzZSB1LnVpLmtleUNvZGUuTEVGVDppZih0PT09dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm47aT10aGlzLl90cmltQWxpZ25WYWx1ZSh0LXMpfXRoaXMuX3NsaWRlKGUsbixpKX0sa2V5dXA6ZnVuY3Rpb24oZSl7dmFyIHQ9dShlLnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3RoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0KSx0aGlzLl9jaGFuZ2UoZSx0KSx0aGlzLl9yZW1vdmVDbGFzcyh1KGUudGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1hY3RpdmUiKSl9fX0pO3ZhciBoPXUsbD17fSxjPWwudG9TdHJpbmcsZD0vXihbXC0rXSk9XHMqKFxkK1wuP1xkKikvLGY9W3tyZTovcmdiYT9cKFxzKihcZHsxLDN9KVxzKixccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqKD86LFxzKihcZD8oPzpcLlxkKyk\/KVxzKik\/XCkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0sZVszXSxlWzRdXX19LHtyZTovcmdiYT9cKFxzKihcZCsoPzpcLlxkKyk\/KVwlXHMqLFxzKihcZCsoPzpcLlxkKyk\/KVwlXHMqLFxzKihcZCsoPzpcLlxkKyk\/KVwlXHMqKD86LFxzKihcZD8oPzpcLlxkKyk\/KVxzKik\/XCkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVyblsyLjU1KmVbMV0sMi41NSplWzJdLDIuNTUqZVszXSxlWzRdXX19LHtyZTovIyhbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSk\/LyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bcGFyc2VJbnQoZVsxXSwxNikscGFyc2VJbnQoZVsyXSwxNikscGFyc2VJbnQoZVszXSwxNiksZVs0XT8ocGFyc2VJbnQoZVs0XSwxNikvMjU1KS50b0ZpeGVkKDIpOjFdfX0se3JlOi8jKFthLWYwLTldKShbYS1mMC05XSkoW2EtZjAtOV0pKFthLWYwLTldKT8vLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdK2VbMV0sMTYpLHBhcnNlSW50KGVbMl0rZVsyXSwxNikscGFyc2VJbnQoZVszXStlWzNdLDE2KSxlWzRdPyhwYXJzZUludChlWzRdK2VbNF0sMTYpLzI1NSkudG9GaXhlZCgyKToxXX19LHtyZTovaHNsYT9cKFxzKihcZCsoPzpcLlxkKyk\/KVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig\/OixccyooXGQ\/KD86XC5cZCspPylccyopP1wpLyxzcGFjZToiaHNsYSIscGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuW2VbMV0sZVsyXS8xMDAsZVszXS8xMDAsZVs0XV19fV0scD1oLkNvbG9yPWZ1bmN0aW9uKGUsdCxpLHMpe3JldHVybiBuZXcgaC5Db2xvci5mbi5wYXJzZShlLHQsaSxzKX0sZz17cmdiYTp7cHJvcHM6e3JlZDp7aWR4OjAsdHlwZToiYnl0ZSJ9LGdyZWVuOntpZHg6MSx0eXBlOiJieXRlIn0sYmx1ZTp7aWR4OjIsdHlwZToiYnl0ZSJ9fX0saHNsYTp7cHJvcHM6e2h1ZTp7aWR4OjAsdHlwZToiZGVncmVlcyJ9LHNhdHVyYXRpb246e2lkeDoxLHR5cGU6InBlcmNlbnQifSxsaWdodG5lc3M6e2lkeDoyLHR5cGU6InBlcmNlbnQifX19fSxtPXtieXRlOntmbG9vcjohMCxtYXg6MjU1fSxwZXJjZW50OnttYXg6MX0sZGVncmVlczp7bW9kOjM2MCxmbG9vcjohMH19LHY9cC5zdXBwb3J0PXt9LF89aCgiPHA+IilbMF0seT1oLmVhY2g7ZnVuY3Rpb24gYihlKXtyZXR1cm4gbnVsbD09ZT9lKyIiOiJvYmplY3QiPT10eXBlb2YgZT9sW2MuY2FsbChlKV18fCJvYmplY3QiOnR5cGVvZiBlfWZ1bmN0aW9uIHgoZSx0LGkpe3ZhciBzPW1bdC50eXBlXXx8e307cmV0dXJuIG51bGw9PWU\/aXx8IXQuZGVmP251bGw6dC5kZWY6KGU9cy5mbG9vcj9+fmU6cGFyc2VGbG9hdChlKSxpc05hTihlKT90LmRlZjpzLm1vZD8oZStzLm1vZCklcy5tb2Q6TWF0aC5taW4ocy5tYXgsTWF0aC5tYXgoMCxlKSkpfWZ1bmN0aW9uIHcocyl7dmFyIG49cCgpLGE9bi5fcmdiYT1bXTtyZXR1cm4gcz1zLnRvTG93ZXJDYXNlKCkseShmLGZ1bmN0aW9uKGUsdCl7dmFyIGk9dC5yZS5leGVjKHMpLGk9aSYmdC5wYXJzZShpKSx0PXQuc3BhY2V8fCJyZ2JhIjtpZihpKXJldHVybiBpPW5bdF0oaSksbltnW3RdLmNhY2hlXT1pW2dbdF0uY2FjaGVdLGE9bi5fcmdiYT1pLl9yZ2JhLCExfSksYS5sZW5ndGg\/KCIwLDAsMCwwIj09PWEuam9pbigpJiZoLmV4dGVuZChhLEgudHJhbnNwYXJlbnQpLG4pOkhbc119ZnVuY3Rpb24gQyhlLHQsaSl7cmV0dXJuIDYqKGk9KGkrMSklMSk8MT9lKyh0LWUpKmkqNjoyKmk8MT90OjMqaTwyP2UrKHQtZSkqKDIvMy1pKSo2OmV9Xy5zdHlsZS5jc3NUZXh0PSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIix2LnJnYmE9LTE8Xy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IuaW5kZXhPZigicmdiYSIpLHkoZyxmdW5jdGlvbihlLHQpe3QuY2FjaGU9Il8iK2UsdC5wcm9wcy5hbHBoYT17aWR4OjMsdHlwZToicGVyY2VudCIsZGVmOjF9fSksaC5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2xbIltvYmplY3QgIit0KyJdIl09dC50b0xvd2VyQ2FzZSgpfSksKHAuZm49aC5leHRlbmQocC5wcm90b3R5cGUse3BhcnNlOmZ1bmN0aW9uKG4sZSx0LGkpe2lmKHZvaWQgMD09PW4pcmV0dXJuIHRoaXMuX3JnYmE9W251bGwsbnVsbCxudWxsLG51bGxdLHRoaXM7KG4uanF1ZXJ5fHxuLm5vZGVUeXBlKSYmKG49aChuKS5jc3MoZSksZT12b2lkIDApO3ZhciBhPXRoaXMscz1iKG4pLG89dGhpcy5fcmdiYT1bXTtyZXR1cm4gdm9pZCAwIT09ZSYmKG49W24sZSx0LGldLHM9ImFycmF5IiksInN0cmluZyI9PT1zP3RoaXMucGFyc2UodyhuKXx8SC5fZGVmYXVsdCk6ImFycmF5Ij09PXM\/KHkoZy5yZ2JhLnByb3BzLGZ1bmN0aW9uKGUsdCl7b1t0LmlkeF09eChuW3QuaWR4XSx0KX0pLHRoaXMpOiJvYmplY3QiPT09cz8oeShnLG4gaW5zdGFuY2VvZiBwP2Z1bmN0aW9uKGUsdCl7blt0LmNhY2hlXSYmKGFbdC5jYWNoZV09blt0LmNhY2hlXS5zbGljZSgpKX06ZnVuY3Rpb24oZSxpKXt2YXIgcz1pLmNhY2hlO3koaS5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKCFhW3NdJiZpLnRvKXtpZigiYWxwaGEiPT09ZXx8bnVsbD09bltlXSlyZXR1cm47YVtzXT1pLnRvKGEuX3JnYmEpfWFbc11bdC5pZHhdPXgobltlXSx0LCEwKX0pLGFbc10mJmguaW5BcnJheShudWxsLGFbc10uc2xpY2UoMCwzKSk8MCYmKG51bGw9PWFbc11bM10mJihhW3NdWzNdPTEpLGkuZnJvbSYmKGEuX3JnYmE9aS5mcm9tKGFbc10pKSl9KSx0aGlzKTp2b2lkIDB9LGlzOmZ1bmN0aW9uKGUpe3ZhciBuPXAoZSksYT0hMCxvPXRoaXM7cmV0dXJuIHkoZyxmdW5jdGlvbihlLHQpe3ZhciBpLHM9blt0LmNhY2hlXTtyZXR1cm4gcyYmKGk9b1t0LmNhY2hlXXx8dC50byYmdC50byhvLl9yZ2JhKXx8W10seSh0LnByb3BzLGZ1bmN0aW9uKGUsdCl7aWYobnVsbCE9c1t0LmlkeF0pcmV0dXJuIGE9c1t0LmlkeF09PT1pW3QuaWR4XX0pKSxhfSksYX0sX3NwYWNlOmZ1bmN0aW9uKCl7dmFyIGk9W10scz10aGlzO3JldHVybiB5KGcsZnVuY3Rpb24oZSx0KXtzW3QuY2FjaGVdJiZpLnB1c2goZSl9KSxpLnBvcCgpfSx0cmFuc2l0aW9uOmZ1bmN0aW9uKGUsbyl7dmFyIHQ9KGw9cChlKSkuX3NwYWNlKCksaT1nW3RdLGU9MD09PXRoaXMuYWxwaGEoKT9wKCJ0cmFuc3BhcmVudCIpOnRoaXMscj1lW2kuY2FjaGVdfHxpLnRvKGUuX3JnYmEpLGg9ci5zbGljZSgpLGw9bFtpLmNhY2hlXTtyZXR1cm4geShpLnByb3BzLGZ1bmN0aW9uKGUsdCl7dmFyIGk9dC5pZHgscz1yW2ldLG49bFtpXSxhPW1bdC50eXBlXXx8e307bnVsbCE9PW4mJihudWxsPT09cz9oW2ldPW46KGEubW9kJiYobi1zPmEubW9kLzI\/cys9YS5tb2Q6cy1uPmEubW9kLzImJihzLT1hLm1vZCkpLGhbaV09eCgobi1zKSpvK3MsdCkpKX0pLHRoaXNbdF0oaCl9LGJsZW5kOmZ1bmN0aW9uKGUpe2lmKDE9PT10aGlzLl9yZ2JhWzNdKXJldHVybiB0aGlzO3ZhciB0PXRoaXMuX3JnYmEuc2xpY2UoKSxpPXQucG9wKCkscz1wKGUpLl9yZ2JhO3JldHVybiBwKGgubWFwKHQsZnVuY3Rpb24oZSx0KXtyZXR1cm4oMS1pKSpzW3RdK2kqZX0pKX0sdG9SZ2JhU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGU9InJnYmEoIix0PWgubWFwKHRoaXMuX3JnYmEsZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbCE9ZT9lOjI8dD8xOjB9KTtyZXR1cm4gMT09PXRbM10mJih0LnBvcCgpLGU9InJnYigiKSxlK3Quam9pbigpKyIpIn0sdG9Ic2xhU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIGU9ImhzbGEoIix0PWgubWFwKHRoaXMuaHNsYSgpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWUmJihlPTI8dD8xOjApLGU9dCYmdDwzP01hdGgucm91bmQoMTAwKmUpKyIlIjplfSk7cmV0dXJuIDE9PT10WzNdJiYodC5wb3AoKSxlPSJoc2woIiksZSt0LmpvaW4oKSsiKSJ9LHRvSGV4U3RyaW5nOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX3JnYmEuc2xpY2UoKSxpPXQucG9wKCk7cmV0dXJuIGUmJnQucHVzaCh+figyNTUqaSkpLCIjIitoLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiAxPT09KGU9KGV8fDApLnRvU3RyaW5nKDE2KSkubGVuZ3RoPyIwIitlOmV9KS5qb2luKCIiKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuX3JnYmFbM10\/InRyYW5zcGFyZW50Ijp0aGlzLnRvUmdiYVN0cmluZygpfX0pKS5wYXJzZS5wcm90b3R5cGU9cC5mbixnLmhzbGEudG89ZnVuY3Rpb24oZSl7aWYobnVsbD09ZVswXXx8bnVsbD09ZVsxXXx8bnVsbD09ZVsyXSlyZXR1cm5bbnVsbCxudWxsLG51bGwsZVszXV07dmFyIHQ9ZVswXS8yNTUsaT1lWzFdLzI1NSxzPWVbMl0vMjU1LG49ZVszXSxhPU1hdGgubWF4KHQsaSxzKSxvPU1hdGgubWluKHQsaSxzKSxyPWEtbyxoPWErbyxlPS41KmgsaT1vPT09YT8wOnQ9PT1hPzYwKihpLXMpL3IrMzYwOmk9PT1hPzYwKihzLXQpL3IrMTIwOjYwKih0LWkpL3IrMjQwLGg9MD09cj8wOmU8PS41P3IvaDpyLygyLWgpO3JldHVybltNYXRoLnJvdW5kKGkpJTM2MCxoLGUsbnVsbD09bj8xOm5dfSxnLmhzbGEuZnJvbT1mdW5jdGlvbihlKXtpZihudWxsPT1lWzBdfHxudWxsPT1lWzFdfHxudWxsPT1lWzJdKXJldHVybltudWxsLG51bGwsbnVsbCxlWzNdXTt2YXIgdD1lWzBdLzM2MCxpPWVbMV0scz1lWzJdLGU9ZVszXSxpPXM8PS41P3MqKDEraSk6cytpLXMqaSxzPTIqcy1pO3JldHVybltNYXRoLnJvdW5kKDI1NSpDKHMsaSx0KzEvMykpLE1hdGgucm91bmQoMjU1KkMocyxpLHQpKSxNYXRoLnJvdW5kKDI1NSpDKHMsaSx0LTEvMykpLGVdfSx5KGcsZnVuY3Rpb24oaCxlKXt2YXIgdD1lLnByb3BzLGE9ZS5jYWNoZSxvPWUudG8scj1lLmZyb207cC5mbltoXT1mdW5jdGlvbihlKXtpZihvJiYhdGhpc1thXSYmKHRoaXNbYV09byh0aGlzLl9yZ2JhKSksdm9pZCAwPT09ZSlyZXR1cm4gdGhpc1thXS5zbGljZSgpO3ZhciBpPWIoZSkscz0iYXJyYXkiPT09aXx8Im9iamVjdCI9PT1pP2U6YXJndW1lbnRzLG49dGhpc1thXS5zbGljZSgpO3JldHVybiB5KHQsZnVuY3Rpb24oZSx0KXtlPXNbIm9iamVjdCI9PT1pP2U6dC5pZHhdO251bGw9PWUmJihlPW5bdC5pZHhdKSxuW3QuaWR4XT14KGUsdCl9KSxyPygoZT1wKHIobikpKVthXT1uLGUpOnAobil9LHkodCxmdW5jdGlvbihvLHIpe3AuZm5bb118fChwLmZuW29dPWZ1bmN0aW9uKGUpe3ZhciB0LGk9YihlKSxzPSJhbHBoYSI9PT1vP3RoaXMuX2hzbGE\/ImhzbGEiOiJyZ2JhIjpoLG49dGhpc1tzXSgpLGE9bltyLmlkeF07cmV0dXJuInVuZGVmaW5lZCI9PT1pP2E6KCJmdW5jdGlvbiI9PT1pJiYoaT1iKGU9ZS5jYWxsKHRoaXMsYSkpKSxudWxsPT1lJiZyLmVtcHR5P3RoaXM6KCJzdHJpbmciPT09aSYmKHQ9ZC5leGVjKGUpKSYmKGU9YStwYXJzZUZsb2F0KHRbMl0pKigiKyI9PT10WzFdPzE6LTEpKSxuW3IuaWR4XT1lLHRoaXNbc10obikpKX0pfSl9KSwocC5ob29rPWZ1bmN0aW9uKGUpe2U9ZS5zcGxpdCgiICIpO3koZSxmdW5jdGlvbihlLGEpe2guY3NzSG9va3NbYV09e3NldDpmdW5jdGlvbihlLHQpe3ZhciBpLHMsbj0iIjtpZigidHJhbnNwYXJlbnQiIT09dCYmKCJzdHJpbmciIT09Yih0KXx8KGk9dyh0KSkpKXtpZih0PXAoaXx8dCksIXYucmdiYSYmMSE9PXQuX3JnYmFbM10pe2ZvcihzPSJiYWNrZ3JvdW5kQ29sb3IiPT09YT9lLnBhcmVudE5vZGU6ZTsoIiI9PT1ufHwidHJhbnNwYXJlbnQiPT09bikmJnMmJnMuc3R5bGU7KXRyeXtuPWguY3NzKHMsImJhY2tncm91bmRDb2xvciIpLHM9cy5wYXJlbnROb2RlfWNhdGNoKGUpe310PXQuYmxlbmQobiYmInRyYW5zcGFyZW50IiE9PW4\/bjoiX2RlZmF1bHQiKX10PXQudG9SZ2JhU3RyaW5nKCl9dHJ5e2Uuc3R5bGVbYV09dH1jYXRjaChlKXt9fX0saC5meC5zdGVwW2FdPWZ1bmN0aW9uKGUpe2UuY29sb3JJbml0fHwoZS5zdGFydD1wKGUuZWxlbSxhKSxlLmVuZD1wKGUuZW5kKSxlLmNvbG9ySW5pdD0hMCksaC5jc3NIb29rc1thXS5zZXQoZS5lbGVtLGUuc3RhcnQudHJhbnNpdGlvbihlLmVuZCxlLnBvcykpfX0pfSkoImJhY2tncm91bmRDb2xvciBib3JkZXJCb3R0b21Db2xvciBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyUmlnaHRDb2xvciBib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3IiKSxoLmNzc0hvb2tzLmJvcmRlckNvbG9yPXtleHBhbmQ6ZnVuY3Rpb24oaSl7dmFyIHM9e307cmV0dXJuIHkoWyJUb3AiLCJSaWdodCIsIkJvdHRvbSIsIkxlZnQiXSxmdW5jdGlvbihlLHQpe3NbImJvcmRlciIrdCsiQ29sb3IiXT1pfSksc319O3ZhciBNLGssRCxFLFMsTyxJLE4sQSxQLEg9aC5Db2xvci5uYW1lcz17YXF1YToiIzAwZmZmZiIsYmxhY2s6IiMwMDAwMDAiLGJsdWU6IiMwMDAwZmYiLGZ1Y2hzaWE6IiNmZjAwZmYiLGdyYXk6IiM4MDgwODAiLGdyZWVuOiIjMDA4MDAwIixsaW1lOiIjMDBmZjAwIixtYXJvb246IiM4MDAwMDAiLG5hdnk6IiMwMDAwODAiLG9saXZlOiIjODA4MDAwIixwdXJwbGU6IiM4MDAwODAiLHJlZDoiI2ZmMDAwMCIsc2lsdmVyOiIjYzBjMGMwIix0ZWFsOiIjMDA4MDgwIix3aGl0ZToiI2ZmZmZmZiIseWVsbG93OiIjZmZmZjAwIix0cmFuc3BhcmVudDpbbnVsbCxudWxsLG51bGwsMF0sX2RlZmF1bHQ6IiNmZmZmZmYifSxUPSJ1aS1lZmZlY3RzLSIsVz0idWktZWZmZWN0cy1zdHlsZSIsVj0idWktZWZmZWN0cy1hbmltYXRlZCI7ZnVuY3Rpb24gRihlKXt2YXIgdCxpLHM9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P2Uub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGUsbnVsbCk6ZS5jdXJyZW50U3R5bGUsbj17fTtpZihzJiZzLmxlbmd0aCYmc1swXSYmc1tzWzBdXSlmb3IoaT1zLmxlbmd0aDtpLS07KSJzdHJpbmciPT10eXBlb2Ygc1t0PXNbaV1dJiYoblt0LnJlcGxhY2UoLy0oW1xkYS16XSkvZ2ksZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfSldPXNbdF0pO2Vsc2UgZm9yKHQgaW4gcykic3RyaW5nIj09dHlwZW9mIHNbdF0mJihuW3RdPXNbdF0pO3JldHVybiBufWZ1bmN0aW9uIHEoZSx0LGkscyl7cmV0dXJuIGU9e2VmZmVjdDplPXUuaXNQbGFpbk9iamVjdChlKT8odD1lKS5lZmZlY3Q6ZX0sImZ1bmN0aW9uIj09dHlwZW9mKHQ9bnVsbD09dD97fTp0KSYmKHM9dCxpPW51bGwsdD17fSksIm51bWJlciIhPXR5cGVvZiB0JiYhdS5meC5zcGVlZHNbdF18fChzPWksaT10LHQ9e30pLCJmdW5jdGlvbiI9PXR5cGVvZiBpJiYocz1pLGk9bnVsbCksdCYmdS5leHRlbmQoZSx0KSxpPWl8fHQuZHVyYXRpb24sZS5kdXJhdGlvbj11LmZ4Lm9mZj8wOiJudW1iZXIiPT10eXBlb2YgaT9pOmkgaW4gdS5meC5zcGVlZHM\/dS5meC5zcGVlZHNbaV06dS5meC5zcGVlZHMuX2RlZmF1bHQsZS5jb21wbGV0ZT1zfHx0LmNvbXBsZXRlLGV9ZnVuY3Rpb24gTChlKXtyZXR1cm4hZXx8Im51bWJlciI9PXR5cGVvZiBlfHx1LmZ4LnNwZWVkc1tlXXx8KCJzdHJpbmciPT10eXBlb2YgZSYmIXUuZWZmZWN0cy5lZmZlY3RbZV18fCgiZnVuY3Rpb24iPT10eXBlb2YgZXx8Im9iamVjdCI9PXR5cGVvZiBlJiYhZS5lZmZlY3QpKX1mdW5jdGlvbiBCKGUsdCl7dmFyIGk9dC5vdXRlcldpZHRoKCksdD10Lm91dGVySGVpZ2h0KCksZT0vXnJlY3RcKCgtP1xkKlwuP1xkKnB4fC0\/XGQrJXxhdXRvKSw\/XHMqKC0\/XGQqXC4\/XGQqcHh8LT9cZCslfGF1dG8pLD9ccyooLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0byksP1xzKigtP1xkKlwuP1xkKnB4fC0\/XGQrJXxhdXRvKVwpJC8uZXhlYyhlKXx8WyIiLDAsaSx0LDBdO3JldHVybnt0b3A6cGFyc2VGbG9hdChlWzFdKXx8MCxyaWdodDoiYXV0byI9PT1lWzJdP2k6cGFyc2VGbG9hdChlWzJdKSxib3R0b206ImF1dG8iPT09ZVszXT90OnBhcnNlRmxvYXQoZVszXSksbGVmdDpwYXJzZUZsb2F0KGVbNF0pfHwwfX11LmVmZmVjdHM9e2VmZmVjdDp7fX0sRT1bImFkZCIsInJlbW92ZSIsInRvZ2dsZSJdLFM9e2JvcmRlcjoxLGJvcmRlckJvdHRvbToxLGJvcmRlckNvbG9yOjEsYm9yZGVyTGVmdDoxLGJvcmRlclJpZ2h0OjEsYm9yZGVyVG9wOjEsYm9yZGVyV2lkdGg6MSxtYXJnaW46MSxwYWRkaW5nOjF9LHUuZWFjaChbImJvcmRlckxlZnRTdHlsZSIsImJvcmRlclJpZ2h0U3R5bGUiLCJib3JkZXJCb3R0b21TdHlsZSIsImJvcmRlclRvcFN0eWxlIl0sZnVuY3Rpb24oZSx0KXt1LmZ4LnN0ZXBbdF09ZnVuY3Rpb24oZSl7KCJub25lIiE9PWUuZW5kJiYhZS5zZXRBdHRyfHwxPT09ZS5wb3MmJiFlLnNldEF0dHIpJiYoaC5zdHlsZShlLmVsZW0sdCxlLmVuZCksZS5zZXRBdHRyPSEwKX19KSx1LmZuLmFkZEJhY2t8fCh1LmZuLmFkZEJhY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PWU\/dGhpcy5wcmV2T2JqZWN0OnRoaXMucHJldk9iamVjdC5maWx0ZXIoZSkpfSksdS5lZmZlY3RzLmFuaW1hdGVDbGFzcz1mdW5jdGlvbihuLGUsdCxpKXt2YXIgYT11LnNwZWVkKGUsdCxpKTtyZXR1cm4gdGhpcy5xdWV1ZShmdW5jdGlvbigpe3ZhciBpPXUodGhpcyksZT1pLmF0dHIoImNsYXNzIil8fCIiLHQ9KHQ9YS5jaGlsZHJlbj9pLmZpbmQoIioiKS5hZGRCYWNrKCk6aSkubWFwKGZ1bmN0aW9uKCl7cmV0dXJue2VsOnUodGhpcyksc3RhcnQ6Rih0aGlzKX19KSxzPWZ1bmN0aW9uKCl7dS5lYWNoKEUsZnVuY3Rpb24oZSx0KXtuW3RdJiZpW3QrIkNsYXNzIl0oblt0XSl9KX07cygpLHQ9dC5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmQ9Rih0aGlzLmVsWzBdKSx0aGlzLmRpZmY9ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49e307Zm9yKGkgaW4gdClzPXRbaV0sZVtpXSE9PXMmJihTW2ldfHwhdS5meC5zdGVwW2ldJiZpc05hTihwYXJzZUZsb2F0KHMpKXx8KG5baV09cykpO3JldHVybiBufSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0aGlzfSksaS5hdHRyKCJjbGFzcyIsZSksdD10Lm1hcChmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD11LkRlZmVycmVkKCksaT11LmV4dGVuZCh7fSxhLHtxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe3QucmVzb2x2ZShlKX19KTtyZXR1cm4gdGhpcy5lbC5hbmltYXRlKHRoaXMuZGlmZixpKSx0LnByb21pc2UoKX0pLHUud2hlbi5hcHBseSh1LHQuZ2V0KCkpLmRvbmUoZnVuY3Rpb24oKXtzKCksdS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWw7dS5lYWNoKHRoaXMuZGlmZixmdW5jdGlvbihlKXt0LmNzcyhlLCIiKX0pfSksYS5jb21wbGV0ZS5jYWxsKGlbMF0pfSl9KX0sdS5mbi5leHRlbmQoe2FkZENsYXNzOihEPXUuZm4uYWRkQ2xhc3MsZnVuY3Rpb24oZSx0LGkscyl7cmV0dXJuIHQ\/dS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse2FkZDplfSx0LGkscyk6RC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxyZW1vdmVDbGFzczooaz11LmZuLnJlbW92ZUNsYXNzLGZ1bmN0aW9uKGUsdCxpLHMpe3JldHVybiAxPGFyZ3VtZW50cy5sZW5ndGg\/dS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse3JlbW92ZTplfSx0LGkscyk6ay5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSx0b2dnbGVDbGFzczooTT11LmZuLnRvZ2dsZUNsYXNzLGZ1bmN0aW9uKGUsdCxpLHMsbil7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdHx8dm9pZCAwPT09dD9pP3UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHQ\/e2FkZDplfTp7cmVtb3ZlOmV9LGkscyxuKTpNLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp1LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7dG9nZ2xlOmV9LHQsaSxzKX0pLHN3aXRjaENsYXNzOmZ1bmN0aW9uKGUsdCxpLHMsbil7cmV0dXJuIHUuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6dCxyZW1vdmU6ZX0saSxzLG4pfX0pLHUuZXhwciYmdS5leHByLnBzZXVkb3MmJnUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkJiYodS5leHByLnBzZXVkb3MuYW5pbWF0ZWQ9KE89dS5leHByLnBzZXVkb3MuYW5pbWF0ZWQsZnVuY3Rpb24oZSl7cmV0dXJuISF1KGUpLmRhdGEoVil8fE8oZSl9KSksITEhPT11LnVpQmFja0NvbXBhdCYmdS5leHRlbmQodS5lZmZlY3RzLHtzYXZlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPTAscz10Lmxlbmd0aDtpPHM7aSsrKW51bGwhPT10W2ldJiZlLmRhdGEoVCt0W2ldLGVbMF0uc3R5bGVbdFtpXV0pfSxyZXN0b3JlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpLHM9MCxuPXQubGVuZ3RoO3M8bjtzKyspbnVsbCE9PXRbc10mJihpPWUuZGF0YShUK3Rbc10pLGUuY3NzKHRbc10saSkpfSxzZXRNb2RlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ9InRvZ2dsZSI9PT10P2UuaXMoIjpoaWRkZW4iKT8ic2hvdyI6ImhpZGUiOnR9LGNyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oaSl7aWYoaS5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpKXJldHVybiBpLnBhcmVudCgpO3ZhciBzPXt3aWR0aDppLm91dGVyV2lkdGgoITApLGhlaWdodDppLm91dGVySGVpZ2h0KCEwKSxmbG9hdDppLmNzcygiZmxvYXQiKX0sZT11KCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJ1aS1lZmZlY3RzLXdyYXBwZXIiKS5jc3Moe2ZvbnRTaXplOiIxMDAlIixiYWNrZ3JvdW5kOiJ0cmFuc3BhcmVudCIsYm9yZGVyOiJub25lIixtYXJnaW46MCxwYWRkaW5nOjB9KSx0PXt3aWR0aDppLndpZHRoKCksaGVpZ2h0OmkuaGVpZ2h0KCl9LG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0cnl7bi5pZH1jYXRjaChlKXtuPWRvY3VtZW50LmJvZHl9cmV0dXJuIGkud3JhcChlKSxpWzBdIT09biYmIXUuY29udGFpbnMoaVswXSxuKXx8dShuKS50cmlnZ2VyKCJmb2N1cyIpLGU9aS5wYXJlbnQoKSwic3RhdGljIj09PWkuY3NzKCJwb3NpdGlvbiIpPyhlLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLGkuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkpOih1LmV4dGVuZChzLHtwb3NpdGlvbjppLmNzcygicG9zaXRpb24iKSx6SW5kZXg6aS5jc3MoInotaW5kZXgiKX0pLHUuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCJdLGZ1bmN0aW9uKGUsdCl7c1t0XT1pLmNzcyh0KSxpc05hTihwYXJzZUludChzW3RdLDEwKSkmJihzW3RdPSJhdXRvIil9KSxpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KSksaS5jc3ModCksZS5jc3Mocykuc2hvdygpfSxyZW1vdmVXcmFwcGVyOmZ1bmN0aW9uKGUpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIGUucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSYmKGUucGFyZW50KCkucmVwbGFjZVdpdGgoZSksZVswXSE9PXQmJiF1LmNvbnRhaW5zKGVbMF0sdCl8fHUodCkudHJpZ2dlcigiZm9jdXMiKSksZX19KSx1LmV4dGVuZCh1LmVmZmVjdHMse3ZlcnNpb246IjEuMTMuMiIsZGVmaW5lOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gaXx8KGk9dCx0PSJlZmZlY3QiKSx1LmVmZmVjdHMuZWZmZWN0W2VdPWksdS5lZmZlY3RzLmVmZmVjdFtlXS5tb2RlPXQsaX0sc2NhbGVkRGltZW5zaW9uczpmdW5jdGlvbihlLHQsaSl7aWYoMD09PXQpcmV0dXJue2hlaWdodDowLHdpZHRoOjAsb3V0ZXJIZWlnaHQ6MCxvdXRlcldpZHRoOjB9O3ZhciBzPSJob3Jpem9udGFsIiE9PWk\/KHR8fDEwMCkvMTAwOjEsdD0idmVydGljYWwiIT09aT8odHx8MTAwKS8xMDA6MTtyZXR1cm57aGVpZ2h0OmUuaGVpZ2h0KCkqdCx3aWR0aDplLndpZHRoKCkqcyxvdXRlckhlaWdodDplLm91dGVySGVpZ2h0KCkqdCxvdXRlcldpZHRoOmUub3V0ZXJXaWR0aCgpKnN9fSxjbGlwVG9Cb3g6ZnVuY3Rpb24oZSl7cmV0dXJue3dpZHRoOmUuY2xpcC5yaWdodC1lLmNsaXAubGVmdCxoZWlnaHQ6ZS5jbGlwLmJvdHRvbS1lLmNsaXAudG9wLGxlZnQ6ZS5jbGlwLmxlZnQsdG9wOmUuY2xpcC50b3B9fSx1bnNoaWZ0OmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz1lLnF1ZXVlKCk7MTx0JiZzLnNwbGljZS5hcHBseShzLFsxLDBdLmNvbmNhdChzLnNwbGljZSh0LGkpKSksZS5kZXF1ZXVlKCl9LHNhdmVTdHlsZTpmdW5jdGlvbihlKXtlLmRhdGEoVyxlWzBdLnN0eWxlLmNzc1RleHQpfSxyZXN0b3JlU3R5bGU6ZnVuY3Rpb24oZSl7ZVswXS5zdHlsZS5jc3NUZXh0PWUuZGF0YShXKXx8IiIsZS5yZW1vdmVEYXRhKFcpfSxtb2RlOmZ1bmN0aW9uKGUsdCl7ZT1lLmlzKCI6aGlkZGVuIik7cmV0dXJuInRvZ2dsZSI9PT10JiYodD1lPyJzaG93IjoiaGlkZSIpLHQ9KGU\/ImhpZGUiPT09dDoic2hvdyI9PT10KT8ibm9uZSI6dH0sZ2V0QmFzZWxpbmU6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO3N3aXRjaChlWzBdKXtjYXNlInRvcCI6aT0wO2JyZWFrO2Nhc2UibWlkZGxlIjppPS41O2JyZWFrO2Nhc2UiYm90dG9tIjppPTE7YnJlYWs7ZGVmYXVsdDppPWVbMF0vdC5oZWlnaHR9c3dpdGNoKGVbMV0pe2Nhc2UibGVmdCI6cz0wO2JyZWFrO2Nhc2UiY2VudGVyIjpzPS41O2JyZWFrO2Nhc2UicmlnaHQiOnM9MTticmVhaztkZWZhdWx0OnM9ZVsxXS90LndpZHRofXJldHVybnt4OnMseTppfX0sY3JlYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7dmFyIHQsaT1lLmNzcygicG9zaXRpb24iKSxzPWUucG9zaXRpb24oKTtyZXR1cm4gZS5jc3Moe21hcmdpblRvcDplLmNzcygibWFyZ2luVG9wIiksbWFyZ2luQm90dG9tOmUuY3NzKCJtYXJnaW5Cb3R0b20iKSxtYXJnaW5MZWZ0OmUuY3NzKCJtYXJnaW5MZWZ0IiksbWFyZ2luUmlnaHQ6ZS5jc3MoIm1hcmdpblJpZ2h0Iil9KS5vdXRlcldpZHRoKGUub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodChlLm91dGVySGVpZ2h0KCkpLC9eKHN0YXRpY3xyZWxhdGl2ZSkvLnRlc3QoaSkmJihpPSJhYnNvbHV0ZSIsdD11KCI8IitlWzBdLm5vZGVOYW1lKyI+IikuaW5zZXJ0QWZ0ZXIoZSkuY3NzKHtkaXNwbGF5Oi9eKGlubGluZXxydWJ5KS8udGVzdChlLmNzcygiZGlzcGxheSIpKT8iaW5saW5lLWJsb2NrIjoiYmxvY2siLHZpc2liaWxpdHk6ImhpZGRlbiIsbWFyZ2luVG9wOmUuY3NzKCJtYXJnaW5Ub3AiKSxtYXJnaW5Cb3R0b206ZS5jc3MoIm1hcmdpbkJvdHRvbSIpLG1hcmdpbkxlZnQ6ZS5jc3MoIm1hcmdpbkxlZnQiKSxtYXJnaW5SaWdodDplLmNzcygibWFyZ2luUmlnaHQiKSxmbG9hdDplLmNzcygiZmxvYXQiKX0pLm91dGVyV2lkdGgoZS5vdXRlcldpZHRoKCkpLm91dGVySGVpZ2h0KGUub3V0ZXJIZWlnaHQoKSkuYWRkQ2xhc3MoInVpLWVmZmVjdHMtcGxhY2Vob2xkZXIiKSxlLmRhdGEoVCsicGxhY2Vob2xkZXIiLHQpKSxlLmNzcyh7cG9zaXRpb246aSxsZWZ0OnMubGVmdCx0b3A6cy50b3B9KSx0fSxyZW1vdmVQbGFjZWhvbGRlcjpmdW5jdGlvbihlKXt2YXIgdD1UKyJwbGFjZWhvbGRlciIsaT1lLmRhdGEodCk7aSYmKGkucmVtb3ZlKCksZS5yZW1vdmVEYXRhKHQpKX0sY2xlYW5VcDpmdW5jdGlvbihlKXt1LmVmZmVjdHMucmVzdG9yZVN0eWxlKGUpLHUuZWZmZWN0cy5yZW1vdmVQbGFjZWhvbGRlcihlKX0sc2V0VHJhbnNpdGlvbjpmdW5jdGlvbihzLGUsbixhKXtyZXR1cm4gYT1hfHx7fSx1LmVhY2goZSxmdW5jdGlvbihlLHQpe3ZhciBpPXMuY3NzVW5pdCh0KTswPGlbMF0mJihhW3RdPWlbMF0qbitpWzFdKX0pLGF9fSksdS5mbi5leHRlbmQoe2VmZmVjdDpmdW5jdGlvbigpe2Z1bmN0aW9uIGUoZSl7dmFyIHQ9dSh0aGlzKSxpPXUuZWZmZWN0cy5tb2RlKHQscil8fGE7dC5kYXRhKFYsITApLGgucHVzaChpKSxhJiYoInNob3ciPT09aXx8aT09PWEmJiJoaWRlIj09PWkpJiZ0LnNob3coKSxhJiYibm9uZSI9PT1pfHx1LmVmZmVjdHMuc2F2ZVN0eWxlKHQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlKCl9dmFyIHM9cS5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj11LmVmZmVjdHMuZWZmZWN0W3MuZWZmZWN0XSxhPW4ubW9kZSx0PXMucXVldWUsaT10fHwiZngiLG89cy5jb21wbGV0ZSxyPXMubW9kZSxoPVtdO3JldHVybiB1LmZ4Lm9mZnx8IW4\/cj90aGlzW3JdKHMuZHVyYXRpb24sbyk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7byYmby5jYWxsKHRoaXMpfSk6ITE9PT10P3RoaXMuZWFjaChlKS5lYWNoKGwpOnRoaXMucXVldWUoaSxlKS5xdWV1ZShpLGwpO2Z1bmN0aW9uIGwoZSl7dmFyIHQ9dSh0aGlzKTtmdW5jdGlvbiBpKCl7ImZ1bmN0aW9uIj09dHlwZW9mIG8mJm8uY2FsbCh0WzBdKSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpfXMubW9kZT1oLnNoaWZ0KCksITE9PT11LnVpQmFja0NvbXBhdHx8YT8ibm9uZSI9PT1zLm1vZGU\/KHRbcl0oKSxpKCkpOm4uY2FsbCh0WzBdLHMsZnVuY3Rpb24oKXt0LnJlbW92ZURhdGEoViksdS5lZmZlY3RzLmNsZWFuVXAodCksImhpZGUiPT09cy5tb2RlJiZ0LmhpZGUoKSxpKCl9KToodC5pcygiOmhpZGRlbiIpPyJoaWRlIj09PXI6InNob3ciPT09cik\/KHRbcl0oKSxpKCkpOm4uY2FsbCh0WzBdLHMsaSl9fSxzaG93OihBPXUuZm4uc2hvdyxmdW5jdGlvbihlKXtpZihMKGUpKXJldHVybiBBLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlLm1vZGU9InNob3ciLHRoaXMuZWZmZWN0LmNhbGwodGhpcyxlKX0pLGhpZGU6KE49dS5mbi5oaWRlLGZ1bmN0aW9uKGUpe2lmKEwoZSkpcmV0dXJuIE4uYXBwbHkodGhpcyxhcmd1bWVudHMpO2U9cS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGUubW9kZT0iaGlkZSIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLGUpfSksdG9nZ2xlOihJPXUuZm4udG9nZ2xlLGZ1bmN0aW9uKGUpe2lmKEwoZSl8fCJib29sZWFuIj09dHlwZW9mIGUpcmV0dXJuIEkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2U9cS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGUubW9kZT0idG9nZ2xlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsZSl9KSxjc3NVbml0OmZ1bmN0aW9uKGUpe3ZhciBpPXRoaXMuY3NzKGUpLHM9W107cmV0dXJuIHUuZWFjaChbImVtIiwicHgiLCIlIiwicHQiXSxmdW5jdGlvbihlLHQpezA8aS5pbmRleE9mKHQpJiYocz1bcGFyc2VGbG9hdChpKSx0XSl9KSxzfSxjc3NDbGlwOmZ1bmN0aW9uKGUpe3JldHVybiBlP3RoaXMuY3NzKCJjbGlwIiwicmVjdCgiK2UudG9wKyJweCAiK2UucmlnaHQrInB4ICIrZS5ib3R0b20rInB4ICIrZS5sZWZ0KyJweCkiKTpCKHRoaXMuY3NzKCJjbGlwIiksdGhpcyl9LHRyYW5zZmVyOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dSh0aGlzKSxzPXUoZS50byksbj0iZml4ZWQiPT09cy5jc3MoInBvc2l0aW9uIiksYT11KCJib2R5Iiksbz1uP2Euc2Nyb2xsVG9wKCk6MCxyPW4\/YS5zY3JvbGxMZWZ0KCk6MCxhPXMub2Zmc2V0KCksYT17dG9wOmEudG9wLW8sbGVmdDphLmxlZnQtcixoZWlnaHQ6cy5pbm5lckhlaWdodCgpLHdpZHRoOnMuaW5uZXJXaWR0aCgpfSxzPWkub2Zmc2V0KCksaD11KCI8ZGl2IGNsYXNzPSd1aS1lZmZlY3RzLXRyYW5zZmVyJz48L2Rpdj4iKTtoLmFwcGVuZFRvKCJib2R5IikuYWRkQ2xhc3MoZS5jbGFzc05hbWUpLmNzcyh7dG9wOnMudG9wLW8sbGVmdDpzLmxlZnQtcixoZWlnaHQ6aS5pbm5lckhlaWdodCgpLHdpZHRoOmkuaW5uZXJXaWR0aCgpLHBvc2l0aW9uOm4\/ImZpeGVkIjoiYWJzb2x1dGUifSkuYW5pbWF0ZShhLGUuZHVyYXRpb24sZS5lYXNpbmcsZnVuY3Rpb24oKXtoLnJlbW92ZSgpLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0KCl9KX19KSx1LmZ4LnN0ZXAuY2xpcD1mdW5jdGlvbihlKXtlLmNsaXBJbml0fHwoZS5zdGFydD11KGUuZWxlbSkuY3NzQ2xpcCgpLCJzdHJpbmciPT10eXBlb2YgZS5lbmQmJihlLmVuZD1CKGUuZW5kLGUuZWxlbSkpLGUuY2xpcEluaXQ9ITApLHUoZS5lbGVtKS5jc3NDbGlwKHt0b3A6ZS5wb3MqKGUuZW5kLnRvcC1lLnN0YXJ0LnRvcCkrZS5zdGFydC50b3AscmlnaHQ6ZS5wb3MqKGUuZW5kLnJpZ2h0LWUuc3RhcnQucmlnaHQpK2Uuc3RhcnQucmlnaHQsYm90dG9tOmUucG9zKihlLmVuZC5ib3R0b20tZS5zdGFydC5ib3R0b20pK2Uuc3RhcnQuYm90dG9tLGxlZnQ6ZS5wb3MqKGUuZW5kLmxlZnQtZS5zdGFydC5sZWZ0KStlLnN0YXJ0LmxlZnR9KX0sUD17fSx1LmVhY2goWyJRdWFkIiwiQ3ViaWMiLCJRdWFydCIsIlF1aW50IiwiRXhwbyJdLGZ1bmN0aW9uKHQsZSl7UFtlXT1mdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coZSx0KzIpfX0pLHUuZXh0ZW5kKFAse1NpbmU6ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5jb3MoZSpNYXRoLlBJLzIpfSxDaXJjOmZ1bmN0aW9uKGUpe3JldHVybiAxLU1hdGguc3FydCgxLWUqZSl9LEVsYXN0aWM6ZnVuY3Rpb24oZSl7cmV0dXJuIDA9PT1lfHwxPT09ZT9lOi1NYXRoLnBvdygyLDgqKGUtMSkpKk1hdGguc2luKCg4MCooZS0xKS03LjUpKk1hdGguUEkvMTUpfSxCYWNrOmZ1bmN0aW9uKGUpe3JldHVybiBlKmUqKDMqZS0yKX0sQm91bmNlOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxpPTQ7ZTwoKHQ9TWF0aC5wb3coMiwtLWkpKS0xKS8xMTspO3JldHVybiAxL01hdGgucG93KDQsMy1pKS03LjU2MjUqTWF0aC5wb3coKDMqdC0yKS8yMi1lLDIpfX0pLHUuZWFjaChQLGZ1bmN0aW9uKGUsdCl7dS5lYXNpbmdbImVhc2VJbiIrZV09dCx1LmVhc2luZ1siZWFzZU91dCIrZV09ZnVuY3Rpb24oZSl7cmV0dXJuIDEtdCgxLWUpfSx1LmVhc2luZ1siZWFzZUluT3V0IitlXT1mdW5jdGlvbihlKXtyZXR1cm4gZTwuNT90KDIqZSkvMjoxLXQoLTIqZSsyKS8yfX0pO3UuZWZmZWN0c30pOwovKiogL20vanMvdmFuaWxsYWpzL3N0b3JlLmpzICoqLwp2YXIgX19fZDJjX3N0b3JlanNfY19vbj0iMjAyNi0wMi0yMCAxMTozMDoxMCI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXtjPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpcmV0dXJuO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7ZD1lWzBdO2Q9IWEmJmQgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBmPTA7ZjxlLmxlbmd0aC0xO2YrKyl7dmFyIGc9ZVtmXTtpZighKGcgaW4gZCkpcmV0dXJuO2Q9ZFtnXX1lPWVbZS5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9kW2VdOm51bGw7Yj1iKGMpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZSk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIrZSksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShkLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgYz1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChjLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhkKTtpZighZC5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZDt2YXIgZT1kLnZhbHVlfWNhdGNoKGYpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oZiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8sZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGYoZyl7Zy5kb25lP2QoZy52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGcudmFsdWUpLnRoZW4oYixjKS50aGVuKGYsZSl9ZihhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmNsaWVudFN0b3JhZ2U9e3NldDpmdW5jdGlvbihhLGIsYyxkKXtjPXZvaWQgMD09PWM\/MTpjO2Q9dm9pZCAwPT09ZD8ibG9jYWwiOmQ7Y29uc3QgZT0ic2Vzc2lvbiI9PT1kP3dpbmRvdy5zZXNzaW9uU3RvcmFnZTp3aW5kb3cubG9jYWxTdG9yYWdlO3RyeXtiPXt2YWx1ZTpifSwibG9jYWwiPT09ZCYmKGMqPTg2NEU1LGIuZXhwaXJ5PShuZXcgRGF0ZSkuZ2V0VGltZSgpK2MpLGUuc2V0SXRlbShhLEpTT04uc3RyaW5naWZ5KGIpKX1jYXRjaChmKXtjb25zb2xlLmVycm9yKGBFcnJvciBzYXZpbmcgdG8gJHtkfSBzdG9yYWdlYCxmKX19LGdldDpmdW5jdGlvbihhLGIpe2I9dm9pZCAwPT09Yj9udWxsOmI7Y29uc3QgYz0oZCxlKT0+e3RyeXtjb25zdCBmPWQuZ2V0SXRlbShhKTtpZighZilyZXR1cm4gbnVsbDtjb25zdCBnPUpTT04ucGFyc2UoZik7aWYoZSYmZy5leHBpcnkmJihuZXcgRGF0ZSkuZ2V0VGltZSgpPmcuZXhwaXJ5KXJldHVybiBkLnJlbW92ZUl0ZW0oYSksbnVsbDtsZXQgaDsKcmV0dXJuIG51bGwhPShoPWcudmFsdWUpP2g6Z31jYXRjaChmKXtyZXR1cm4gbnVsbH19O3JldHVybiJsb2NhbCI9PT1iP2Mod2luZG93LmxvY2FsU3RvcmFnZSwhMCk6InNlc3Npb24iPT09Yj9jKHdpbmRvdy5zZXNzaW9uU3RvcmFnZSwhMSk6Yyh3aW5kb3cubG9jYWxTdG9yYWdlLCEwKXx8Yyh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UsITEpfSxyZW1vdmU6ZnVuY3Rpb24oYSxiKXtiPXZvaWQgMD09PWI\/bnVsbDpiOyJsb2NhbCIhPT1iJiZudWxsIT09Ynx8d2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGEpOyJzZXNzaW9uIiE9PWImJm51bGwhPT1ifHx3aW5kb3cuc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShhKX19OwpjcmVhdGVEYXRhU3RvcmU9YT0+e2E9YXx8e307aW5pdD1jPT5PYmplY3QuYXNzaWduKHt9LGMpO2NvbnN0IGI9aW5pdChhKTtyZXR1cm57c2V0OmZ1bmN0aW9uKGMsZCl7YltjXT1PYmplY3QuYXNzaWduKHt9LGJbY10sZCk7cmV0dXJuIGJbY119LGdldDpmdW5jdGlvbihjLGQpe2Q9dm9pZCAwPT09ZD9udWxsOmQ7Yz1jLnNwbGl0KCIuIik7bGV0IGU9Yjtmb3IoY29uc3QgZiBvZiBjKXtpZih2b2lkIDA9PT1lW2ZdKXJldHVybiBkO2U9ZVtmXX1yZXR1cm4gdm9pZCAwIT09ZT9lOmR9LGZldGNoOmZ1bmN0aW9uKGMpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXt0cnl7Y29uc3QgZD15aWVsZCBmZXRjaChgaHR0cHM6Ly8ke2IuZGVhbGVySW5mby5kb21haW59L2FqYXhDb250cm9sbGVyLyR7Y31gKTtpZighZC5vayl0aHJvdyBFcnJvcigiTmV0d29yayByZXNwb25zZSB3YXMgbm90IG9rIik7Y29uc3QgZT15aWVsZCBkLmpzb24oKTsKYltjXT1lO3JldHVybiBiW2NdfWNhdGNoKGQpe3Rocm93IEVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggZnJvbSBzZXJ2ZXI6ICR7ZC5tZXNzYWdlfWApO319KX0sZGVsZXRlOmZ1bmN0aW9uKGMpe2lmKCFiW2NdKXRocm93IEVycm9yKCJJRCBub3QgZm91bmQiKTtkZWxldGUgYltjXTtyZXR1cm4hMH0sZ2V0QWxsOmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sYil9fX07Ci8qKiAvbS9qcy9lbWFpbEhhbmRsZXIuanMgKiovCnZhciBfX19kMmNfZW1haWxIYW5kbGVyanNfY19vbj0iMjAyNi0wNy0xMCAxNjozMDozMCI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihlLGcsbil7aWYoZT09QXJyYXkucHJvdG90eXBlfHxlPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBlO2VbZ109bi52YWx1ZTtyZXR1cm4gZX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGUpe2U9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxlLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgZz0wO2c8ZS5sZW5ndGg7KytnKXt2YXIgbj1lW2ddO2lmKG4mJm4uTWF0aD09TWF0aClyZXR1cm4gbn10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGUsZyl7dmFyIG49JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZ107aWYobnVsbD09bilyZXR1cm4gZVtnXTtuPWVbbl07cmV0dXJuIHZvaWQgMCE9PW4\/bjplW2ddfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGUsZyxuLGEpe2cmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChlLGcsbixhKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChlLGcsbixhKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihlLGcsbixhKXtuPSRqc2NvbXAuZ2xvYmFsO2U9ZS5zcGxpdCgiLiIpO2ZvcihhPTA7YTxlLmxlbmd0aC0xO2ErKyl7dmFyIGI9ZVthXTtpZighKGIgaW4gbikpcmV0dXJuO249bltiXX1lPWVbZS5sZW5ndGgtMV07YT1uW2VdO2c9ZyhhKTtnIT1hJiZudWxsIT1nJiYkanNjb21wLmRlZmluZVByb3BlcnR5KG4sZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihlLGcsbixhKXt2YXIgYj1lLnNwbGl0KCIuIik7ZT0xPT09Yi5sZW5ndGg7YT1iWzBdO2E9IWUmJmEgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBjPTA7YzxiLmxlbmd0aC0xO2MrKyl7dmFyIGQ9YltjXTtpZighKGQgaW4gYSkpcmV0dXJuO2E9YVtkXX1iPWJbYi5sZW5ndGgtMV07bj0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09bj9hW2JdOm51bGw7Zz1nKG4pO251bGwhPWcmJihlPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsYix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KTpnIT09biYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdJiYobj0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woYik6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrbisiJCIrYiksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShhLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Z30pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgZT17YTohMH0sZz17fTt0cnl7cmV0dXJuIGcuX19wcm90b19fPWUsZy5hfWNhdGNoKG4pe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oZSxnKXtlLl9fcHJvdG9fXz1nO2lmKGUuX19wcm90b19fIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKGUrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBlfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oZSl7dmFyIGc9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZzxlLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTplW2crK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihlKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGUpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3ZhciBnPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmVbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gZz9nLmNhbGwoZSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGUpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2UrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGUpe3RoaXMueWllbGRSZXN1bHQ9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjplLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjplfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGUpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzplfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihlLGcpe3RoaXMubmV4dEFkZHJlc3M9ZztyZXR1cm57dmFsdWU6ZX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGUsZyl7ZT0kanNjb21wLm1ha2VJdGVyYXRvcihlKTt2YXIgbj1lLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhuKTtpZihuLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1uLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9ZztlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWUsdGhpcy55aWVsZChuLnZhbHVlLGcpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGUpe3RoaXMubmV4dEFkZHJlc3M9ZX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oZSxnKXt0aGlzLmNhdGNoQWRkcmVzc189ZTt2b2lkIDAhPWcmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1nKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGUpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWV8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oZSxnKXt0aGlzLm5leHRBZGRyZXNzPWU7dGhpcy5jYXRjaEFkZHJlc3NfPWd8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oZSl7dGhpcy5jYXRjaEFkZHJlc3NfPWV8fDA7ZT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGUsZyxuKXtuP3RoaXMuZmluYWxseUNvbnRleHRzX1tuXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWV8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Z3x8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGUsZyl7Zz10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGd8fDApWzBdO2lmKGc9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxnKXtpZihnLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWcuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxnLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1nLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGUpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGUpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGUpe3RoaXMub2JqZWN0Xz1lO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBnIGluIGUpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGcpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgZT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGUgaW4gdGhpcy5vYmplY3RfKXJldHVybiBlfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1lfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGUsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oZSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgZz10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGcpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGc\/Z1sicmV0dXJuIl06ZnVuY3Rpb24obil7cmV0dXJue3ZhbHVlOm4sZG9uZTohMH19LGUsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sZSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oZSxnLG4pe3RyeXt2YXIgYT1lLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxnKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhhKTtpZighYS5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksYTt2YXIgYj1hLnZhbHVlfWNhdGNoKGMpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oYyksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7bi5jYWxsKHRoaXMuY29udGV4dF8sYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgZT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6ZS52YWx1ZSxkb25lOiExfX1jYXRjaChnKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhnKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7ZT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihlLmlzRXhjZXB0aW9uKXRocm93IGUuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTplLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihlKXt0aGlzLm5leHQ9ZnVuY3Rpb24oZyl7cmV0dXJuIGUubmV4dF8oZyl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oZyl7cmV0dXJuIGUudGhyb3dfKGcpfTt0aGlzLnJldHVybj1mdW5jdGlvbihnKXtyZXR1cm4gZS5yZXR1cm5fKGcpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihlLGcpe2c9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oZykpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmUucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGcsZS5wcm90b3R5cGUpO3JldHVybiBnfTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGcoYSl7cmV0dXJuIGUubmV4dChhKX1mdW5jdGlvbiBuKGEpe3JldHVybiBlLnRocm93KGEpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoZCl7ZC5kb25lP2EoZC52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGQudmFsdWUpLnRoZW4oZyxuKS50aGVuKGMsYil9YyhlLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oZSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihlKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGUpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oZSkpKX07CnZhciBlbWFpbEhhbmRsZXI9ZnVuY3Rpb24oKXt2YXIgZT0xMTEyLGc9ZnVuY3Rpb24oYil7dHJ5e3JldHVybiB3aW5kb3cudG9wLmxvY2F0aW9uW2JdfWNhdGNoKGMpe3JldHVybiB3aW5kb3cubG9jYXRpb25bYl19fSxuPWZ1bmN0aW9uKCl7dGhpcy5hY3Rpb249ZnVuY3Rpb24oKXt9O3RoaXMubmV4dD1udWxsO3RoaXMuX25leHRDYWxsZWQ9ITF9O24ucHJvdG90eXBlPXtleGV1dGU6ZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT09dHlwZW9mIHRoaXMuYWN0aW9uJiZ0aGlzLmFjdGlvbi5jYWxsKHRoaXMpfSxnb3RvTmV4dDpmdW5jdGlvbigpe3RoaXMuX2hhc05leHQoKSYmdGhpcy5uZXh0LmV4ZXV0ZSgpO3RoaXMuX25leHRDYWxsZWQ9ITA7cmV0dXJuIHRoaXN9LHNldE5leHQ6ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWI7cmV0dXJuIHRoaXN9LHNldEFjdGlvbjpmdW5jdGlvbihiKXt0aGlzLmFjdGlvbj1iO3JldHVybiB0aGlzfSxfaGFzTmV4dDpmdW5jdGlvbigpe3JldHVybiBudWxsIT09CnRoaXMubmV4dCYmIXRoaXMuX25leHRDYWxsZWR9fTt2YXIgYT17c3ViamVjdDoiIixib2R5OiIiLHNlbmRUbzoiIixzZW5kVG9BREZGb3JtYXQ6IiIsc2VsZWN0ZWRTZW5kVG86IiIsc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ6IiIsc2VuZEZyb206IiIsdXNlckVtYWlsOiIiLHRyYWRlaW46IiIscG9wdXBkaXY6IiIsdXNlckZpcnN0TmFtZToiIix1c2VyTGFzdE5hbWU6IiIsdXNlclBob25lOiIiLHBob25lTWFuZGF0b3J5OjAscGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM6MSx1c2VyUG9zdGFsOiIiLHVzZXJBZGRyZXNzOiIiLGJpcnRoZGF0ZToiIix1c2VyQXR0YWNobWVudFBhdGg6IiIsbWFpbElEOiJnZW5lcmljTWFpbCIsbGVhZEludm9rZXI6ImdlbmVyaWMiLGxlYWRJbnZva2VyU0lEOiIiLGlzQ1RBOiExLGJ1dHRvblRleHQ6IiIscmVzZXRDYWxsYmFja3M6ZnVuY3Rpb24oKXskLmV4dGVuZChhLHtjYWxsYmFjazpudWxsLG9uRHVwbGljYXRlU2VuZDohMSxvbkFmdGVyQ29uc2VudDohMSwKb25CZWZvcmVTaG93Q29uc2VudDohMX0pfSxtYWtlOiIiLG1vZGVsOiIiLHRyaW06IiIsdmluOiIiLHByaWNlOjAseWVhcjowLHZlaGljbGVUeXBlOiIiLHN0b2NrTnVtYmVyOiIiLHB1cmNoYXNlX2ludGVudDoiIixwdXJjaGFzZV9pbnRlbnRfc2VjdGlvbjoiIixhbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhOiIiLHByZWZlcnJlZF9jb250YWN0OiIiLGNhcmlkOjAsY29uZGl0aW9uOiJVc2VkIixsYW5ndWFnZToiIixpc21vYmlsZXNpdGU6Ik5PIixpc0FtcDoiTk8iLHJlZmVyZXI6IiIscG9wdXBPZmZlclR5cGU6IiIscGFydGlhbDohMSxmcm9tRmFjZWJvb2s6ITEsc2tpcFNlbmRpbmc6ITEsZnJvbU9uTG9hZDohMSxwb3N0U3VibWl0Q2FsbGJhY2s6IiIscmVzdW1lQWN0aXZpdHk6ITAsc3VibWl0RGF0YToiIixzdWJtaXRUeXBlOiJub3JtYWwiLGxhc3RDaGVja3N1bToiIixjb25zZW50RGVhbGVyOiExLGNvbnNlbnRPRU06ITEsY29uc2VudFR5cGU6IkltcGxpY2l0Iixjb25zZW50RXhwaXJhdGlvbjoiIiwKY29uc2VudERhdGU6IiIsY29uc2VudEZyZXF1ZW5jeTotMSxjb25zZW50RGV0YWlsc0ZSOiIiLGNvbnNlbnREZXRhaWxzRU46IiIsZGV0YWlsc0RlZmF1bHRzOiIiLGZyb21BQTowLG93bmVySUQ6MCxkZXBhcnRtZW50OiIiLHNraXBHZXREZXA6ITEsZGVwYXJ0bWVudEJ5U3RvY2s6ITEsYXNrUHVyY2hhc2VJbnRlbnQ6ITEsbGVhZFRpdGxlVUlUZXh0OiIiLGxlYWRUaXRsZVRleHQ6IiIsZ2VvbG9jX3N0YXR1czoiIixnZW9sb2NfbGF0OiIiLGdlb2xvY19sb25nOiIiLGdlb2xvY19hY2N1cmFjeTotMSxnZW9sb2NfdHJhY2tfc3RyOiIiLGdlb2xvY19lbWFpbF9zdHI6IiIsdHJhbnNwb3J0T3B0aW9uOiIiLGNhcjJfbWFrZToiIixjYXIyX21vZGVsOiIiLGNhcjJfdHJpbToiIixjYXIyX3llYXI6IiIsY2FyMl9jb2xvcjoiIixjYXIyX29kb21ldGVyOiIiLGNhcjJfdmluOiIiLGNhcjJfdHJhbnNtaXNzb246IiIsY2FyMl9kcml2ZXRyYWluOiIiLGNhcjJfZnVlbHR5cGU6IiIsY29tbWVudHM6IiIsCmdyZWNhcHRjaGFSZXNwb25zZVRva2VuOiIiLGlnbm9yZUNhcHRjaGE6ITEsY29udGFjdElEOjAsY29udGFjdEFkZHJlc3M6IiIsY29udGFjdENpdHk6IiIsY29udGFjdFByb3ZpbmNlOiIiLGNvbnRhY3RaaXA6IiIsY29udGFjdE5BUzoiIixjb250YWN0QmlydGg6IiIsZGVhbGVyTmFtZToiIixnZXROZXdTZXF1ZW5jZTpmdW5jdGlvbigpe3JldHVybiBuZXcgbn0sY3JlYXRlQ2hlY2tzdW06ZnVuY3Rpb24oKXtmb3IodmFyIGI9IiIsYz1bIm1ha2UiLCJtb2RlbCIsInllYXIiLCJtYWlsSUQiXSxkPTA7ZDxjLmxlbmd0aDtkKyspe3ZhciBmPWNbZF0saD1hW2ZdLG09dHlwZW9mIGg7aWYoInN0cmluZyI9PW18fCJudW1iZXIiPT1tKWIrPWYrIjoiK2grIjsifWM9IjAwMDAwMDAwIDc3MDczMDk2IEVFMEU2MTJDIDk5MDk1MUJBIDA3NkRDNDE5IDcwNkFGNDhGIEU5NjNBNTM1IDlFNjQ5NUEzIDBFREI4ODMyIDc5RENCOEE0IEUwRDVFOTFFIDk3RDJEOTg4IDA5QjY0QzJCIDdFQjE3Q0JEIEU3QjgyRDA3IDkwQkYxRDkxIDFEQjcxMDY0IDZBQjAyMEYyIEYzQjk3MTQ4IDg0QkU0MURFIDFBREFENDdEIDZERERFNEVCIEY0RDRCNTUxIDgzRDM4NUM3IDEzNkM5ODU2IDY0NkJBOEMwIEZENjJGOTdBIDhBNjVDOUVDIDE0MDE1QzRGIDYzMDY2Q0Q5IEZBMEYzRDYzIDhEMDgwREY1IDNCNkUyMEM4IDRDNjkxMDVFIEQ1NjA0MUU0IEEyNjc3MTcyIDNDMDNFNEQxIDRCMDRENDQ3IEQyMEQ4NUZEIEE1MEFCNTZCIDM1QjVBOEZBIDQyQjI5ODZDIERCQkJDOUQ2IEFDQkNGOTQwIDMyRDg2Q0UzIDQ1REY1Qzc1IERDRDYwRENGIEFCRDEzRDU5IDI2RDkzMEFDIDUxREUwMDNBIEM4RDc1MTgwIEJGRDA2MTE2IDIxQjRGNEI1IDU2QjNDNDIzIENGQkE5NTk5IEI4QkRBNTBGIDI4MDJCODlFIDVGMDU4ODA4IEM2MENEOUIyIEIxMEJFOTI0IDJGNkY3Qzg3IDU4Njg0QzExIEMxNjExREFCIEI2NjYyRDNEIDc2REM0MTkwIDAxREI3MTA2IDk4RDIyMEJDIEVGRDUxMDJBIDcxQjE4NTg5IDA2QjZCNTFGIDlGQkZFNEE1IEU4QjhENDMzIDc4MDdDOUEyIDBGMDBGOTM0IDk2MDlBODhFIEUxMEU5ODE4IDdGNkEwREJCIDA4NkQzRDJEIDkxNjQ2Qzk3IEU2NjM1QzAxIDZCNkI1MUY0IDFDNkM2MTYyIDg1NjUzMEQ4IEYyNjIwMDRFIDZDMDY5NUVEIDFCMDFBNTdCIDgyMDhGNEMxIEY1MEZDNDU3IDY1QjBEOUM2IDEyQjdFOTUwIDhCQkVCOEVBIEZDQjk4ODdDIDYyREQxRERGIDE1REEyRDQ5IDhDRDM3Q0YzIEZCRDQ0QzY1IDREQjI2MTU4IDNBQjU1MUNFIEEzQkMwMDc0IEQ0QkIzMEUyIDRBREZBNTQxIDNERDg5NUQ3IEE0RDFDNDZEIEQzRDZGNEZCIDQzNjlFOTZBIDM0NkVEOUZDIEFENjc4ODQ2IERBNjBCOEQwIDQ0MDQyRDczIDMzMDMxREU1IEFBMEE0QzVGIEREMEQ3Q0M5IDUwMDU3MTNDIDI3MDI0MUFBIEJFMEIxMDEwIEM5MEMyMDg2IDU3NjhCNTI1IDIwNkY4NUIzIEI5NjZENDA5IENFNjFFNDlGIDVFREVGOTBFIDI5RDlDOTk4IEIwRDA5ODIyIEM3RDdBOEI0IDU5QjMzRDE3IDJFQjQwRDgxIEI3QkQ1QzNCIEMwQkE2Q0FEIEVEQjg4MzIwIDlBQkZCM0I2IDAzQjZFMjBDIDc0QjFEMjlBIEVBRDU0NzM5IDlERDI3N0FGIDA0REIyNjE1IDczREMxNjgzIEUzNjMwQjEyIDk0NjQzQjg0IDBENkQ2QTNFIDdBNkE1QUE4IEU0MEVDRjBCIDkzMDlGRjlEIDBBMDBBRTI3IDdEMDc5RUIxIEYwMEY5MzQ0IDg3MDhBM0QyIDFFMDFGMjY4IDY5MDZDMkZFIEY3NjI1NzVEIDgwNjU2N0NCIDE5NkMzNjcxIDZFNkIwNkU3IEZFRDQxQjc2IDg5RDMyQkUwIDEwREE3QTVBIDY3REQ0QUNDIEY5QjlERjZGIDhFQkVFRkY5IDE3QjdCRTQzIDYwQjA4RUQ1IEQ2RDZBM0U4IEExRDE5MzdFIDM4RDhDMkM0IDRGREZGMjUyIEQxQkI2N0YxIEE2QkM1NzY3IDNGQjUwNkREIDQ4QjIzNjRCIEQ4MEQyQkRBIEFGMEExQjRDIDM2MDM0QUY2IDQxMDQ3QTYwIERGNjBFRkMzIEE4NjdERjU1IDMxNkU4RUVGIDQ2NjlCRTc5IENCNjFCMzhDIEJDNjY4MzFBIDI1NkZEMkEwIDUyNjhFMjM2IENDMEM3Nzk1IEJCMEI0NzAzIDIyMDIxNkI5IDU1MDUyNjJGIEM1QkEzQkJFIEIyQkQwQjI4IDJCQjQ1QTkyIDVDQjM2QTA0IEMyRDdGRkE3IEI1RDBDRjMxIDJDRDk5RThCIDVCREVBRTFEIDlCNjRDMkIwIEVDNjNGMjI2IDc1NkFBMzlDIDAyNkQ5MzBBIDlDMDkwNkE5IEVCMEUzNjNGIDcyMDc2Nzg1IDA1MDA1NzEzIDk1QkY0QTgyIEUyQjg3QTE0IDdCQjEyQkFFIDBDQjYxQjM4IDkyRDI4RTlCIEU1RDVCRTBEIDdDRENFRkI3IDBCREJERjIxIDg2RDNEMkQ0IEYxRDRFMjQyIDY4RERCM0Y4IDFGREE4MzZFIDgxQkUxNkNEIEY2QjkyNjVCIDZGQjA3N0UxIDE4Qjc0Nzc3IDg4MDg1QUU2IEZGMEY2QTcwIDY2MDYzQkNBIDExMDEwQjVDIDhGNjU5RUZGIEY4NjJBRTY5IDYxNkJGRkQzIDE2NkNDRjQ1IEEwMEFFMjc4IEQ3MEREMkVFIDRFMDQ4MzU0IDM5MDNCM0MyIEE3NjcyNjYxIEQwNjAxNkY3IDQ5Njk0NzREIDNFNkU3N0RCIEFFRDE2QTRBIEQ5RDY1QURDIDQwREYwQjY2IDM3RDgzQkYwIEE5QkNBRTUzIERFQkI5RUM1IDQ3QjJDRjdGIDMwQjVGRkU5IEJEQkRGMjFDIENBQkFDMjhBIDUzQjM5MzMwIDI0QjRBM0E2IEJBRDAzNjA1IENERDcwNjkzIDU0REU1NzI5IDIzRDk2N0JGIEIzNjY3QTJFIEM0NjE0QUI4IDVENjgxQjAyIDJBNkYyQjk0IEI0MEJCRTM3IEMzMEM4RUExIDVBMDVERjFCIDJEMDJFRjhEIi5zcGxpdCgiICIpLm1hcChmdW5jdGlvbihrKXtyZXR1cm4gcGFyc2VJbnQoaywKMTYpfSk7dmFyIHI9cl4tMTtkPTA7Zm9yKGY9Yi5sZW5ndGg7ZDxmO2QrKylyPXI+Pj44XmNbKHJeYi5jaGFyQ29kZUF0KGQpKSYyNTVdO3JldHVybihyXi0xKT4+PjB9LHNldE11bHRpRGVhbGVyQm9keTpmdW5jdGlvbihiLGMpe3ZhciBkPSQoIiNwb3N0TGVhZExhYmVsIikudmFsKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgZD8oZD1kLnJlcGxhY2UoInskTVVMVElERUFMRVJOQU1FfSIsYikucmVwbGFjZSgieyRQT1NUX0xFQURfRU1BSUxTfSIsYyksYS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixkKSxhLmRlYWxlck5hbWU9Yik6YS5ib2R5PWEuYm9keS5yZXBsYWNlKC88YnJccz9cLz57XCRERUFMRVJfU0VORFRPfShiclxzP1wvKT8vLCIiKS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IiwiIil9LHNob3dDb25zZW50OmZ1bmN0aW9uKGIsYyl7YS5nZXRFbWFpbENvbnNlbnQoZnVuY3Rpb24oZCl7dmFyIGY9YS5nZXROZXdTZXF1ZW5jZSgpLGg9YS5nZXROZXdTZXF1ZW5jZSgpOwpmLnNldEFjdGlvbihmdW5jdGlvbigpe2EuZGVhbGVyU2VsZWN0RnVuYyghMSx0aGlzKX0pO2guc2V0QWN0aW9uKGZ1bmN0aW9uKCl7dm9pZCAwPT1iJiYoYj0hMSk7dm9pZCAwPT1jJiYoYz0hMSk7dmFyIG09JCgiI2FzUG9wVXAiKSxyPSExOyhhLmFza1B1cmNoYXNlSW50ZW50fHxhLnNob3VsZERpc3BsYXlQdXJjaGFzZUludGVudENvbnRhY3QoKSkmJjA8JCgiI2FzUHVyY2hhc2VJbnRlbnQiKS5sZW5ndGgmJihtPSQoIiNhc1B1cmNoYXNlSW50ZW50Iikscj0hMCk7aWYoMDxtLmxlbmd0aCl7Z2V0Q29va2llKCJ2aXNpdG9yX2hhc19leHBsaWNpdF9jb25zZW50Iik7dmFyIGs9cGFyc2VJbnQoZ2V0Q29va2llKCJ2aXNpdG9yX2hhc19zZWVuX3BvcHVwIiksMTApO2lzTmFOKGspJiYoaz0wKTthLnNraXBTZW5kaW5nPWI7YS5mcm9tT25Mb2FkPWM7aWYoZC5oYXNDb25zZW50KXtzd2l0Y2goYS5zdWJtaXRUeXBlKXtjYXNlICJpbnN0YW50UmViYXRlIjpjYXNlICJzY3JhdGNoIjpyZWFsU3VibWl0UmViYXRlQ291cG9uKCk7CmJyZWFrO2RlZmF1bHQ6IiIhPWEucG9zdFN1Ym1pdENhbGxiYWNrJiZldmFsKGEucG9zdFN1Ym1pdENhbGxiYWNrKX1hLnJlYWR5VG9TZW5kKCl9ZWxzZXtzd2l0Y2goYS5zdWJtaXRUeXBlKXtjYXNlICJzY3JhdGNoIjpjYXNlICJpbnN0YW50UmViYXRlIjpjbG9zZVBvcHVwV2lkZ2V0KCl9ImZ1bmN0aW9uIj09dHlwZW9mIGEub25CZWZvcmVTaG93Q29uc2VudCYmYS5vbkJlZm9yZVNob3dDb25zZW50LmNhbGwoKTtpZihyKWEuc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdCgpP2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLCQoIiNlbWFpbENvbnNlbnRTdWJtaXQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHQ9e307bS5maW5kKCJmb3JtIikuc2VyaWFsaXplQXJyYXkoKS5tYXAocT0+Cnt0W3EubmFtZV09cS52YWx1ZX0pOyQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPLCAuc3RlcENvbnNlbnQiKS5jc3Moe2JvcmRlcjoibm9uZSJ9KTskKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GT19URVhUX0VSUk9SIikuaGlkZSgpO2lmKDE9PSQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPIikuaXMoIjp2aXNpYmxlIikmJighdC5zaGFyZV9wZXJzb25hbHx8Im5vIj09dC5zaGFyZV9wZXJzb25hbCkpcmV0dXJuICQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPIikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSksJCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk9fVEVYVF9FUlJPUiIpLnNob3coKSwhMTtpZighdC5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudCIpKXJldHVybiAkKCIuc3RlcENvbnNlbnQiKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSwhMTt2YXIgdT17cHVyY2hhc2VfaW50ZW50Oi0xLHNoYXJlX3BlcnNvbmFsOiJubyIscHJlZmVycmVkX2NvbnRhY3Q6IiJ9Owpmb3IodmFyIGwgaW4gdSl1Lmhhc093blByb3BlcnR5KGwpJiYodC5oYXNPd25Qcm9wZXJ0eShsKT9zZXRDb29raWUobCx0W2xdKTp0W2xdPXVbbF0pO2EucHVyY2hhc2VfaW50ZW50PXQucHVyY2hhc2VfaW50ZW50O2EuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YT10LnNoYXJlX3BlcnNvbmFsO2EucHJlZmVycmVkX2NvbnRhY3Q9dC5wcmVmZXJyZWRfY29udGFjdDt1PSItMSIhPXQuY29uc2VudDtsPXQuaGFzT3duUHJvcGVydHkoImNvbnNlbnRfb2VtIikmJiIxIj09dC5jb25zZW50X29lbTthLnN1Ym1pdENvbnNlbnQodSxsLCJjb21wbGV4Iik7cmV0dXJuITF9KTtlbHNlICQoIiNjb25zZW50U3VibWl0Iikub24oImNsaWNrIixmdW5jdGlvbih0KXt0LnByZXZlbnREZWZhdWx0KCk7dD0hMTskKCIuZGVhbGVyQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiJub25lIn0pOyQoIi5vZW1Db25zZW50IikuY3NzKHtib3JkZXI6Im5vbmUifSk7dmFyIHU9e307bS5maW5kKCJmb3JtIikuc2VyaWFsaXplQXJyYXkoKS5tYXAocT0+Cnt1W3EubmFtZV09cS52YWx1ZX0pO3UuaGFzT3duUHJvcGVydHkoImNvbnNlbnQiKXx8KCQoIi5kZWFsZXJDb25zZW50IikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSksdD0hMCk7bS5maW5kKCJmb3JtIC5vZW1Db25zZW50IikubGVuZ3RoJiYhdS5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudF9vZW0iKSYmJCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKSYmKG0uZmluZCgiZm9ybSAub2VtQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLHQ9ITApO2lmKHQpcmV0dXJuITE7dD0iLTEiIT11LmNvbnNlbnQ7dmFyIGw9dS5oYXNPd25Qcm9wZXJ0eSgiY29uc2VudF9vZW0iKSYmIjEiPT11LmNvbnNlbnRfb2VtO2Euc3VibWl0Q29uc2VudCh0LGwpfSk7YS5wcmVTZW5kSW1wbGljaXQoKTttLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwKY2xvc2VvbmVzY2FwZTohMX0pfX1lbHNlIiI9PWEuY29uc2VudERldGFpbHNFTiYmdm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIJiZ2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSCYmKGEuY29uc2VudERldGFpbHNFTj1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIWzJdLGEuY29uc2VudERldGFpbHNGUj1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0hbMl0pLGI\/cmVhbFNob3dQb3B1cFdpZGdldChjKTphLnJlYWR5VG9TZW5kKCl9KTtmLnNldE5leHQoaCkuZXhldXRlKCl9KX0saGlkZUNvbnNlbnQ6ZnVuY3Rpb24oKXt2YXIgYj0kKCIjYXNQb3BVcDp2aXNpYmxlIik7JCgiI2FzUHVyY2hhc2VJbnRlbnQiKS5pcygiOnZpc2libGUiKSYmImhpZGRlbiIhPT0kKCIjYXNQdXJjaGFzZUludGVudCIpLmNzcygidmlzaWJpbGl0eSIpJiYoYj0kKCIjYXNQdXJjaGFzZUludGVudDp2aXNpYmxlIiksY29tcGxleD0hMCk7MDxiLmxlbmd0aCYmYi50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0sCnNhdmVDb25zZW50OmZ1bmN0aW9uKGIsYyxkLGYpeyQoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwiYXV0byIpO2EuaGlkZUNvbnNlbnQoKTt2b2lkIDA9PWQmJihkPSIiKTt2YXIgaD1iPzczMDoxODA7Yz17ZW1haWw6YS51c2VyRW1haWwsZmlyc3Q6YS51c2VyRmlyc3ROYW1lLGxhc3Q6YS51c2VyTGFzdE5hbWUscGhvbmU6YS51c2VyUGhvbmUsc2l0ZUlEOiQoIiNzaXRlSUQiKS52YWwoKSxmcmVxdWVuY3k6Yj8xOi0xLGV4cGxpY2l0OmI\/MTowLGV4cGxpY2l0T0VNOmM\/MTowLGltZzpkLHJlZmVyZXI6dm9pZCAwIT1kb2N1bWVudC5yZWZlcnJlcj9kb2N1bWVudC5yZWZlcnJlcjoiIixmcm9tOiJFSCJ9O2lmKHZvaWQgMCE9PWEucHJlZmVycmVkX2NvbnRhY3QmJiIiIT09YS5wcmVmZXJyZWRfY29udGFjdHx8dm9pZCAwIT09Z2V0Q29va2llKCJwcmVmZXJyZWRfY29udGFjdCIpJiYiIiE9PWdldENvb2tpZSgicHJlZmVycmVkX2NvbnRhY3QiKSlkPWEucHJlZmVycmVkX2NvbnRhY3R8fApnZXRDb29raWUoInByZWZlcnJlZF9jb250YWN0IiksZD17IlTDqWzDqXBob25lIjoiUEhPTkUiLENvdXJyaWVsOiJFTUFJTCJ9W2RdfHxkLG51bGwhPT1kJiYoYy5jb250YWN0UHJlZmVyZW5jZT1kLnRvVXBwZXJDYXNlKCkpO3NldENvb2tpZSgidmlzaXRvcl9mcmVxdWVuY3lfcHJlZmVyZW5jZSIsLTEsaCk7c2V0Q29va2llKCJ2aXNpdG9yX2NvbnNlbnRfcHJlZmVyZW5jZSIsYj8iRXhwbGljaXQiOiJJbXBsaWNpdCIsaCk7c2V0Q29va2llKCJ2aXNpdG9yX2hhc19leHBsaWNpdF9jb25zZW50IixiPyJ5ZXMiOiJubyIsaCk7c2V0Q29va2llKCJ2aXNpdG9yX2VtYWlsX3ByZWZlcmVuY2UiLGMuZW1haWwsOTApOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpfSw1RTMpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvYWpheC90cmFja0VtYWlsUHJlZmVyZW5jZT93c3dpZHRoPTAiLApkYXRhVHlwZToianNvbiIsZGF0YTpjLGNvbXBsZXRlOmZ1bmN0aW9uKG0pe3RyeXt2YXIgcj1KU09OLnBhcnNlKG0ucmVzcG9uc2VUZXh0KTthLmNvbnNlbnREZXRhaWxzRU49YnRvYShyLmRldGFpbENvbnNlbnQuRU5HTElTSCk7YS5jb25zZW50RGV0YWlsc0ZSPWJ0b2Eoci5kZXRhaWxDb25zZW50LkZSRU5DSCl9Y2F0Y2goayl7fWEucG9zdFNhdmVDb25zZW50KGIsZil9fSl9LHBvc3RTYXZlQ29uc2VudDpmdW5jdGlvbihiLGMpe3ZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSCYmdm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0gmJihiPyhhLmNvbnNlbnREZXRhaWxzRU49YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSFsxXSxhLmNvbnNlbnREZXRhaWxzRlI9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIWzFdKTooYS5jb25zZW50RGV0YWlsc0VOPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0hbMl0sYS5jb25zZW50RGV0YWlsc0ZSPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSFsyXSkpOwppZihjKXtpZihhLmlnbm9yZUNhcHRjaGE\/YS5yZWFkeVRvU2VuZCgpOmEucmVjYXB0Y2hhLmdldFJlc3BvbnNlKCkuZG9uZShmdW5jdGlvbihkKXthLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuPWQ7YS5yZWFkeVRvU2VuZCgpfSksImZ1bmN0aW9uIj09dHlwZW9mIGEub25BZnRlckNvbnNlbnQpYS5vbkFmdGVyQ29uc2VudChiKX1lbHNlIGEuaGlkZUNvbnNlbnQoKX0sc3VibWl0Q29uc2VudDpmdW5jdGlvbihiLGMsZCl7YS5jb25zZW50RGVhbGVyPWI7YS5jb25zZW50T0VNPWM7aWYoZCYmImNvbXBsZXgiPT1kKXt2YXIgZj0iIjstMT09YS5wdXJjaGFzZV9pbnRlbnQ\/KGQ9IlBhcyBkZSByZXBvbnNlIixmPSJOT19BTlNXRVIiKTpkPWEucHVyY2hhc2VfaW50ZW50O251bGwhPWQubWF0Y2goLzMwLyk\/KGQ9Ik1vaW5zIGRlIDMwIGpvdXJzIixmPSJMVF8zMF9EQVlTIik6bnVsbCE9ZC5tYXRjaCgvMy8pPyhkPSJNb2lucyBkZSAzIG1vaXMiLGY9IkxUXzNfTU9OVEhTIik6bnVsbCE9ZC5tYXRjaCgvNi8pJiYKKG51bGwhPWQubWF0Y2goL3BsdXN8b3Zlcnxtb3JlLyk\/KGQ9IlBsdXMgZGUgNiBtb2lzIixmPSJHVF82X01PTlRIUyIpOihkPSJNb2lucyBkZSA2IG1vaXMiLGY9IkxUXzZfTU9OVEhTIikpO3ZhciBoPSJSZXBvbnNlIC0gIithLnB1cmNoYXNlX2ludGVudF9zZWN0aW9uLnRvVXBwZXJDYXNlKCk7YS5sb2dFdmVudCgiSW50ZW50aW9ucyBhY2hhdDogIitkLCJQVVJDSEFTRV9JTlRFTlRfIitmKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoWyJiLl90cmFja0V2ZW50IiwiSW50ZW50aW9ucyBhY2hhdCIsaCxkLDFdKX1zd2l0Y2goYS5zdWJtaXRUeXBlKXtjYXNlICJzY3JhdGNoIjpjYXNlICJpbnN0YW50UmViYXRlIjpyZWFsU3VibWl0UmViYXRlQ291cG9uKCk7YnJlYWs7ZGVmYXVsdDoiIiE9YS5wb3N0U3VibWl0Q2FsbGJhY2smJmV2YWwoYS5wb3N0U3VibWl0Q2FsbGJhY2spfSJzY3JhdGNoIj09YS5zdWJtaXRUeXBlJiZzaG93UG9wdXBXaWRnZXQoKTskKCIjbGFzdENvbnNlbnRQb3AiKS52YWwoYj8KIkV4cGxpY2l0IjoiSW1wbGljaXQiKTthLnNhdmVDb25zZW50KGIsYywiIiwhMCl9LHByZVNlbmRDaGVja3M6ZnVuY3Rpb24oYil7Yj9hLnJlYWR5VG9TZW5kKCk6YS5zaG93Q29uc2VudCgpfSxzZW5kTWFpbDpmdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7YS5zdWJtaXRUeXBlPSJub3JtYWwiO2I9InVuZGVmaW5lZCIhPXR5cGVvZiBiP2I6ITE7YS5pZ25vcmVDYXB0Y2hhfHwoYS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbj15aWVsZCBhLnJlY2FwdGNoYS5nZXRSZXNwb25zZSgpKTtpZigidW5kZWZpbmVkIj09dHlwZW9mICQoIiNvbkxlYWRTdWJtaXRHZW9sb2MiKS52YWwoKXx8MSE9JCgiI29uTGVhZFN1Ym1pdEdlb2xvYyIpLnZhbCgpfHwidW5kZWZpbmVkIj09dHlwZW9mIGdlb0xvY2F0b3J8fGEuc2tpcEdlb0xvYylhLnByZVNlbmRDaGVja3MoYik7ZWxzZXt2YXIgYz1uZXcgZ2VvTG9jYXRvcihmdW5jdGlvbihkKXthLmdlb2xvY19zdGF0dXM9CmQuZ2VvbG9jX3N0YXR1czsxPT1kLnJlc3VsdCYmKGEuZ2VvbG9jX2xhdD1kLmxhdGl0dWRlLGEuZ2VvbG9jX2xvbmc9ZC5sb25naXR1ZGUsYS5nZW9sb2NfYWNjdXJhY3k9ZC5hY2N1cmFjeSxhLmdlb2xvY190cmFja19zdHI9ZC5nZW9jb2RlX2FkZHJlc3MsYS5nZW9sb2NfZW1haWxfc3RyPWQuZ2VvY29kZV9hZGRyZXNzX3N0ciwtMT09YS5ib2R5LmluZGV4T2YoIiMjR0VPTE9DQVRJT04jIyIpJiYoYS5ib2R5PXRyaW0oYS5ib2R5KS5yZXBsYWNlKC88YnI+Jm5ic3A7L2csIjxicj4iKSsiIyNHRU9MT0NBVElPTiMjIiksInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KCJQT1NUQUxfQ09ERSIsZC5nZW9jb2RlX2FkZHJlc3Nfc3RyKSk7InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjbGVhZFNlbnQiKS52YWwoKSYmCihkPSQoIjxpbnB1dD4iKS5hdHRyKHtpZDoibGVhZFNlbnQiLHR5cGU6ImhpZGRlbiJ9KS52YWwoMSksJCgiI2Zvb3RlckRpdiIpLmFwcGVuZChkKSxhLnByZVNlbmRDaGVja3MoYikpfSk7Yy50cmFja0xvY2F0aW9uR0E9ITA7Yy5nZXRMb2NhdGlvbigpfX0pfSxzZW5kVXNlckVtYWlsOmZ1bmN0aW9uKGIsYyl7c2VuZFRvRGF0YT17fTt2YXIgZD1iPSIiLGY9IiIsaD0iIjtmb3IoaSBpbiBjKWlmKCJzdHJpbmciPT10eXBlb2YgaSlzd2l0Y2goaS50b0xvd2VyQ2FzZSgpKXtjYXNlICJlbWFpbHRvIjpkPWNbaV07YnJlYWs7Y2FzZSAiZW1haWxpZCI6Yj1jW2ldO2JyZWFrO2Nhc2UgImRlYWxlcmVtYWlsIjpmPWNbaV07YnJlYWs7Y2FzZSAiZGVhbGVycGhvbmUiOmg9Y1tpXTticmVhaztkZWZhdWx0OnNlbmRUb0RhdGFbaV09Y1tpXX1jPXt2YXJzOkpTT04uc3RyaW5naWZ5KHNlbmRUb0RhdGEpLHNpdGVpZDokKCIjdG9wc2l0ZWlkIikudmFsKCksbGFuZ3VhZ2U6JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLAplbWFpbGlkOmIsZW1haWx0bzpkLGRlYWxlckVtYWlsOmYsZGVhbGVyUGhvbmU6aCxzb3VyY2VVUkk6d2luZG93LmxvY2F0aW9uLmhyZWZ9OyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvYWpheC9hZGRNYWlsVG9TZW5kP3dzd2lkdGg9MCIsZGF0YTpjfSl9LGdldFN0b2NrTnVtYmVyOmZ1bmN0aW9uKCl7aWYoYS5zdG9ja051bWJlcilyZXR1cm4gYS5zdG9ja051bWJlcjtpZigwPCQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS5sZW5ndGgmJjA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJlsiTkVXQ0FSREVUQUlMUyIsIkNBUkRFVEFJTFMiLCJQUk9NTyIsIlZFSElDTEVFVkFMIl0uaW5jbHVkZXMoJCgiI3RhcmdldFBhZ2UiKS52YWwoKSkpe3ZhciBiPSQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTtpZigyPGIubGVuZ3RoKXt2YXIgYz1iLmluZGV4T2YoIihTdG9jayIpOy0xPGMmJihiPWIuc3Vic3RyKGMrNyksYz1iLmluZGV4T2YoIikiKSwKLTE8YyYmKGI9Yi5zdWJzdHIoMCxjKS50cmltKCkpKTtiKz0iIn1lbHNlIGI9IiJ9ZWxzZSBiPWdldFBhcmFtZXRlckJ5TmFtZSgic3RvY2tubyIpfHwiIjtyZXR1cm4gYi50cmltKCl9LGdldFZQRFVybEZyb21TdG9jazpmdW5jdGlvbigpe3ZhciBiPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk6JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKTt0cnl7dmFyIGM9YS5nZXRTdG9ja051bWJlcigpLGQ9IiIsZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8KInVzZWQiOiJvY2Nhc2lvbiIsaD1nKCJocmVmIiksbT1nKCJwcm90b2NvbCIpLHI9aC5yZXBsYWNlKG0rIi8vIiwiIikuc3BsaXQoIi8iKSxrPXJbMF0sdD1oLmluZGV4T2YoIi1pZCIpO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIHBhZ2V8fCJCVUlMREFORFBSSUNFIiE9cGFnZSYmIk5FV0NBUkRFVEFJTFMiIT1wYWdlKWlmKC0xPHQpe3ZhciB1PXBhcnNlSW50KGguc3Vic3RyKHQrMykucmVwbGFjZSgiLmh0bWwiLCIiKSwxMCk7aWYoIWlzTmFOKHUpJiYwPHUpe3ZhciBsPXJbci5sZW5ndGgtMV07LTE8bC5pbmRleE9mKHUpJiYoZD0nPGEgaHJlZj0iJyttKyIvLyIraysiLyIrZisiLyIrbCsiXCIgdGFyZ2V0PSdfYmxhbmsnPiIrYisiPC9hPiIpfX1lbHNlIiIhPT1hLnRyaW0mJihiPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKwoiICIrYS50cmltOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkpO2Vsc2UiIiE9PWEudHJpbSYmKGI9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiK2EudHJpbTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW0rIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKSxkPSc8YSBocmVmPSInK2grIlwiIHRhcmdldD0nX2JsYW5rJz4iK2IrIjwvYT4iO2lmKCIiPT1kJiYyPGMubGVuZ3RoKXt2YXIgcT0kKCIjdG9wc2l0ZWlkIikudmFsKCksdz0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8KImVuIjoiZnIiOyQuYWpheCh7dHlwZToiR0VUIixhc3luYzohMSxkYXRhVHlwZToianNvbiIsdXJsOiIvIit3KyIvcGhwL2dldFVSTEZyb21TdG9jay5waHA\/c2l0ZUlEPSIrcSsiJnN0b2NrPSIrYyxzdWNjZXNzOmZ1bmN0aW9uKHApeyJvYmplY3QiPT10eXBlb2YgcCYmbnVsbCE9cCYmdm9pZCAwIT1wLm1ha2UmJihkPSc8YSBocmVmPSInK20rIi8vIitrKyIvIitmKyIvIisocC5tYWtlKyItIitwLm1vZGVsKyItIitwLnllYXIrIi1pZCIrcC5pZCsiLmh0bWxcIiB0YXJnZXQ9J19ibGFuayc+IikrcC5mdWxsKyI8L2E+Iil9fSl9IiIhPWQmJihiPWQpfWNhdGNoKHApe2NvbnNvbGUubG9nKHApfXJldHVybiBifSxzZXRTZW5kQW5kRGVwYXJ0bWVudE92ZXJyaWRlOmZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGModSxsKXswPHUubGVuZ3RoJiYiIiE9PXUudmFsKCkmJihiLnNlbmRUbz11LnZhbCgpKTswPGwubGVuZ3RoJiYiIiE9PWwudmFsKCkmJihiLnNlbmRUb0FERkZvcm1hdD1sLnZhbCgpKX0KaWYoMCE9JCgiI2lzR2VuZXJpY1NlYXJjaFBhZ2UiKS5sZW5ndGgmJiJ0cnVlIj09PSQoIiNpc0dlbmVyaWNTZWFyY2hQYWdlIikudmFsKCkpe3N3aXRjaChhLm1haWxJRCl7Y2FzZSAibWVudVNlcnZpY2UiOmNhc2UgIm1lbnVDb250YWN0VXMiOmNhc2UgImhlYWRlclNlcnZpY2UiOnJldHVybn12YXIgZD0kKCIjQ1VTVE9NX1NFTkRfTEVBRCIpO2lmKDAhPT1kLmxlbmd0aCYmMCE9PWQudmFsKCkmJiJudWxsIiE9PWQudmFsKCkpe2IuZGVwYXJ0bWVudD1kLnZhbCgpLnRvVXBwZXJDYXNlKCk7dmFyIGY9JCgiI25ld0VtYWlsIiksaD0kKCIjbmV3QWRmRW1haWwiKSxtPSQoIiN0ZXh0U2VuZFRvRW1haWwiKSxyPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKSxrPSQoIiNmaW5hbmNlRW1haWwiKSx0PSQoIiNmaW5hbmNlQWRmRW1haWwiKTtzd2l0Y2goZC52YWwoKSl7Y2FzZSAibmV3IjpjKGYsaCk7YnJlYWs7Y2FzZSAidXNlZCI6YyhtLHIpO2JyZWFrO2Nhc2UgImZpbmFuY2UiOmMoayx0KX19fX0sCmdldEpzb25PYmplY3Q6ZnVuY3Rpb24oKXsiIj09YS50cmltJiYkKCIjcG9wdXB0cmltIikubGVuZ3RoJiYieyRQT1BVUFRSSU19IiE9JCgiI3BvcHVwdHJpbSIpLnZhbCgpJiYoYS50cmltPSQoIiNwb3B1cHRyaW0iKS52YWwoKSk7dmFyIGI9e30sYz1mdW5jdGlvbih5KXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCgobnVsbCE9Q29va2llcy5nZXQoeSkmJiJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llcy5nZXQoeSk\/ZXNjYXBlKENvb2tpZXMuZ2V0KHkpKToiIikrIiIucmVwbGFjZSgvXCsvZywiJTIwIikpfWNhdGNoKEQpe3JldHVybihudWxsIT1Db29raWVzLmdldCh5KSYmInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzLmdldCh5KT9lc2NhcGUoQ29va2llcy5nZXQoeSkpOiIiKSsiIi5yZXBsYWNlKC9cKy9nLCIlMjAiKX19LGQ9YygicmVsYW5jZUlEIiksZj1jKCJ1dG1fc291cmNlIiksaD1jKCJ1dG1fY2FtcGFpZ24iKSxtPWEuZGVjb2RlVVJMUmVjdXJzaXZlbHkoYygidXRtX2tleXdvcmQiKSksCnI9YygidXRtX2xhbmRpbmdfZm9vdGVyIiksaz1jKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIiksdD1jKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSx1PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJLZXl3b3JkIjoiTW90LWNsJiMyMzM7IixsPTA8bS5sZW5ndGg\/IlsgIit1KyI6ICIrbSsiXSI6IiIscT0wPHIubGVuZ3RoPyJbRGVzdGluYXRpb246ICIrZDJjbWVkaWEuZ2V0SHR0cFRleHQoKSsiOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCtyKyJdIjoiW0Rlc3RpbmF0aW9uOiAiK2QyY21lZGlhLmdldEh0dHBUZXh0KCkrIjovLyIrd2luZG93LmxvY2F0aW9uLmhvc3QrcisiIC5dIjt1PWMoImxvY19pbnRlcmVzdCIpO2M9YygibG9jX3BoeXNpY2FsIik7dmFyIHc9dT9gbG9jX2ludGVyZXN0PSR7dX1gOiIiLHA9Yz9gbG9jX3BoeXNpY2FsPSR7Y31gOiIiLHY9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ik9yZ2FuaWMiOiJPcmdhbmlxdWUiOwpsPTA8Zi5sZW5ndGg\/YCR7Zn0gLSAke2h9ICR7bH0gJHt3fSAke3B9YDp2O3E9ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobCkrIiAiK3E7cD0iIjt3PWEuZ2V0U3RvY2tOdW1iZXIoKTsiIiE9dyYmKHA9IihTdG9jazoiK2EuZ2V0U3RvY2tOdW1iZXIoKSsiKSIpO3Y9e25ldzoiRU5HTElTSCI9PXNpdGVQYWdlLmxhbmc\/Im5ldyI6Im5ldWYiLG5ld2ludjoiRU5HTElTSCI9PXNpdGVQYWdlLmxhbmc\/Im5ldyI6Im5ldWYiLHVzZWQ6IkVOR0xJU0giPT1zaXRlUGFnZS5sYW5nPyJ1c2VkIjoiZCdvY2Nhc2lvbiJ9O2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVRNREVUQUlMU30vZyxxKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVTRVJOQU1FfS9nLGEudXNlckZpcnN0TmFtZSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVU0VSUE9TVEFMfS9nLGEudXNlclBvc3RhbC50b1VwcGVyQ2FzZSgpKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVUTURFVEFJTFN9L2csCiIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJEZPT1RFUn0vZywiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRFTUFJTEJVSUxEQU5EUFJJQ0V9L2csYS5iYW5kcExpbmsoKSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUkxBQkVMfS9nLHApO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2cscCk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRWRUhJQ0xFX0NPTkRJVElPTn0vZyx2W2EuY29uZGl0aW9uLnRvTG93ZXJDYXNlKCldKTtpZigiIiE9PWEuYm9keSl7dmFyIEE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKToiIjtwPSIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoPwokKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKTokKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpO0E9QSE9cCYmIiIhPUE\/QTpwO2EuZGVhbGVyTmFtZT1hLmRlYWxlck5hbWU\/YS5kZWFsZXJOYW1lOkF9YS5ib2R5PWEuYm9keS5yZXBsYWNlKCJ7JERFQUxFUk5BTUV9IixhLmRlYWxlck5hbWUpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgieyRDVVNUT01WRUhJQ0xFSU5URVJFU1R9IixhLm1ha2UrIiAiK2EubW9kZWwrIiAiK2EueWVhcik7YS5sZWFkUmVxdWVzdFR5cGUmJihhLmJvZHk9YS5ib2R5LnJlcGxhY2VBbGwoInskUkVRVUVTVH0iLGEubGVhZFJlcXVlc3RUeXBlKSxhLnN1YmplY3Q9YS5zdWJqZWN0LnJlcGxhY2VBbGwoInskUkVRVUVTVH0iLGEubGVhZFJlcXVlc3RUeXBlKSxhLmxlYWRSZXF1ZXN0VHlwZT0iIik7Ym9keUxvd2VyPWEuYm9keS50b0xvd2VyQ2FzZSgpO2Zvcih2PTA7LTE8Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7KXtwPWJvZHlMb3dlci5pbmRleE9mKCJyZW1vdmVlbXB0eSIpOwppZigtMT09cClicmVhaztycGxFbmQ9Ym9keUxvd2VyLmluZGV4T2YoIjxicj4iLHApO3JwbFN0YXJ0PWJvZHlMb3dlci5sYXN0SW5kZXhPZigiPGJyPiIscCk7aWYoLTE9PXJwbEVuZHx8LTE9PXJwbFN0YXJ0KWJyZWFrO3JwbFN0cmluZz1hLmJvZHkuc3Vic3RyaW5nKHJwbFN0YXJ0LHJwbEVuZCk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKHJwbFN0cmluZywiIik7Ym9keUxvd2VyPWEuYm9keS50b0xvd2VyQ2FzZSgpO3YrKztpZig1MDx2KWJyZWFrfXY9YS5nZXRWUERVcmxGcm9tU3RvY2soKTswPT12LnRyaW0oKS5sZW5ndGgmJihwPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6dmlzaWJsZTpmaXJzdCIpLHY9cC5sZW5ndGg\/cC52YWwoKToiIik7YS5wYXltZW50VmVoaWNsZSYmMDxhLnBheW1lbnRWZWhpY2xlLmxlbmd0aCYmKHY9YS5wYXltZW50VmVoaWNsZSk7IiI9PWEuY2FyaWQmJiQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmKGEuY2FyaWQ9JCgiI3RvcGNhcmlkIikudmFsKCkpOwoiIj09YS52aW4mJiQoIiNwaG9uZXZpbiIpLmxlbmd0aCYmKGEudmluPSQoIiNwaG9uZXZpbiIpLnZhbCgpKTtwPWEuYm9keS5pbmRleE9mKCI8c3BhbiBpZD0ncGhTRUFSQ0hWRUhJQ0xFJz4iKTtpZigtMTxwKXt2YXIgej1hLmJvZHkuc3Vic3RyKHArMjcpLmluZGV4T2YoIjwvc3Bhbj4iKTstMTx6JiYoYS5ib2R5PWEuYm9keS5zdWJzdHIoMCxwKSt2K2EuYm9keS5zdWJzdHIocCt6KzI3KzcpKX1hLmJvZHk9YS5ib2R5LnJlcGxhY2UoLzxzcGFuIGlkPSdwaFNFQVJDSFZFSElDTEUnPi9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoLzxcL3NwYW4+L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkU0VBUkNIRURWRUhJQ0xFfS9nLHYpO2lmKCIxIj09JCgiI2hhc1ZCRENFbmFibGVkIikudmFsKCkpe3A9IiI7dj0wO3o9IiI7Q29va2llcy5nZXQoIkQyQ1VVSUQiKTtmb3IodmFyIHggaW4gc2Vzc2lvblN0b3JhZ2UpaWYoMD09eC5pbmRleE9mKCJWRFBNVkJOUC0iKSl7dmFyIEM9CnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oeCk7Qz49eiYmKHo9QyxwPXgucmVwbGFjZSgiVkRQTVZCTlAtIiwiIikpfWlmKCIiPT1wJiYoej1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkMmNfVkRQTVYiKSxudWxsIT16KSlmb3IoeCBpbiB6PUpTT04ucGFyc2UoeikseilDPXpbeF0sMjw9QyYmQz52JiYodj1DLHA9eCk7IiIhPXAmJi0xPT1hLmJvZHkuaW5kZXhPZigiW1ZCREMtSE9UXSIpJiYtMT09YS5ib2R5LmluZGV4T2YoIltWQkRDLU1ZU10iKSYmKHg9d2luZG93LmxvY2F0aW9uLnByb3RvY29sKyIvLyIrd2luZG93LmxvY2F0aW9uLmhvc3QrcCxhLmJvZHkrPSdbVkJEQy1IT1RdIDxhIGhyZWY9IicreCsnIj4nK3grIjwvYT4iKX14PSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk7eD0idW5kZWZpbmVkIj09dHlwZW9mIHg\/InVzZWQiOngudG9Mb3dlckNhc2UoKTtwPSQoIiNzZW5kRW1haWxUb0FsbERlYWxlcnMiKTtwPXAubGVuZ3RoJiYxPT1wLnZhbCgpO3A9JCgiI2hhc011bHRpcGxlRGVhbGVycyIpOwpwPXAubGVuZ3RoJiYxPT1wLnZhbCgpO3A9JCgiI3RvcGNhcmlkIik7cD0wPHAubGVuZ3RoPyQoIiN0b3BjYXJpZCIpLnZhbCgpOiIiO3A9InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk\/JCgiI2JyYW5kRW1haWxBZGZPdmVycmlkZSIpLnZhbCgpOiIiO3Y9InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjYnJhbmRFbWFpbEFkZk92ZXJyaWRlIikudmFsKCk\/JCgiI2JyYW5kRW1haWxBZGZPdmVycmlkZSIpLnZhbCgpOiIiOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpJiYkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbkVtYWlsIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uRW1haWwiKS52YWwoKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uQWRmRW1haWwiKS52YWwoKSYmJCgiI25ld1NlY3Rpb25BZGZFbWFpbCIpLnZhbCgpOwpzd2l0Y2goITApe2Nhc2UgNTxwLmxlbmd0aCYmIm5ldyI9PXgmJiFhLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzOmEuc2VuZFRvPXAsYS5zZW5kVG9BREZGb3JtYXQ9NTx2Lmxlbmd0aD92OnB9Yi5sYW5ndWFnZT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFuQW5kRW5jb2RlVGV4dD8oYi5zdWJqZWN0PWNsZWFuQW5kRW5jb2RlVGV4dChhLnN1YmplY3QpLGIuYm9keT1jbGVhbkFuZEVuY29kZVRleHQoYS5ib2R5KSk6KGIuc3ViamVjdD0kLmJhc2U2NC5lbmNvZGUoYS5zdWJqZWN0KSxiLmJvZHk9JC5iYXNlNjQuZW5jb2RlKGEuYm9keSkpO2NsZWFuRW1haWxEZWxpbWl0ZXI9ZnVuY3Rpb24oeSl7dmFyIEQ9IiI7InVuZGVmaW5lZCIhPXR5cGVvZiB5JiZudWxsIT15JiZ5Lmxlbmd0aCYmKEQ9eS5zcGxpdCgiOyIpLmpvaW4oIiwiKSk7cmV0dXJuIER9OyJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYiTkVXIj09YS5nZXREZXAoKSYmCmEuc2VuZFRvPT0kKCIjU0lURVVTRURFTUFJTCIpLnZhbCgpJiZhLnNlbmRUb0FERkZvcm1hdD09JCgiI1NJVEVVU0VERU1BSUxBREYiKS52YWwoKSYmKGEuc2VuZFRvPSQoIiNTSVRFTkVXRU1BSUwiKS52YWwoKSxhLnNlbmRUb0FERkZvcm1hdD0kKCIjU0lURU5FV0VNQUlMQURGIikudmFsKCkpO2Iuc2VuZFRvPWEuc2VuZFRvO2Iuc2VuZFRvQURGRm9ybWF0PWNsZWFuRW1haWxEZWxpbWl0ZXIoYS5zZW5kVG9BREZGb3JtYXQpO2Iuc2VsZWN0ZWRTZW5kVG89YS5zZWxlY3RlZFNlbmRUbztiLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PWEuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ7Yi5lbWFpbExpc3RTdWZmaXg9IiI7JCgiI3NpdGVjb21waWxlaWQiKS5sZW5ndGgmJihiLmVtYWlsTGlzdFN1ZmZpeD0kKCIjc2l0ZWNvbXBpbGVpZCIpLnZhbCgpKTtiLmxlYWRJbnZva2VyPWEubGVhZEludm9rZXJ8fCJnZW5lcmljIjtiLmRpZ2l0YWxSZXRhaWxTSUQ9YS5kaWdpdGFsUmV0YWlsU0lEfHwKIiI7Yi5jb25zZW50RGVhbGVyPWEuY29uc2VudERlYWxlcjtiLmNvbnNlbnRPRU09YS5jb25zZW50T0VNO2IudXNlckVtYWlsPWEudXNlckVtYWlsO2IudHJhZGVpbj1hLnRyYWRlaW47Yi5wb3B1cGRpdj1hLnBvcHVwZGl2O2IudXNlckF0dGFjaG1lbnRQYXRoPWEudXNlckF0dGFjaG1lbnRQYXRoO2IudXNlckZpcnN0TmFtZT1hLnVzZXJGaXJzdE5hbWU7Yi51c2VyTGFzdE5hbWU9YS51c2VyTGFzdE5hbWU7Yi5saWNlbnNlbnVtPWEubGljZW5zZW51bTtiLnVzZXJQaG9uZT1hLnVzZXJQaG9uZTtiLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzPWEucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHM7Yi5waG9uZU1hbmRhdG9yeT1hLnBob25lTWFuZGF0b3J5O2IudXNlclBvc3RhbD1hLnVzZXJQb3N0YWwudG9VcHBlckNhc2UoKXx8YS5jb250YWN0WmlwLnRvVXBwZXJDYXNlKCk7Yi51c2VyQWRkcmVzcz1hLnVzZXJBZGRyZXNzfHxhLmNvbnRhY3RBZGRyZXNzO2IucHJvdmluY2U9YS5jb250YWN0UHJvdmluY2U7CmIuYmlydGhkYXRlPWEuYmlydGhkYXRlO2Iuc2VuZEZyb209YS5zZW5kRnJvbTtiLm1haWxJRD1hLm1haWxJRDtiLmlzQ1RBPWEuaXNDVEE7Yi5idXR0b25UZXh0PWEuYnV0dG9uVGV4dDtiLmZyb21VUkw9d2luZG93LmxvY2F0aW9uLmhyZWY7Yi5tYWtlPWEubWFrZXx8IiI7Yi5tb2RlbD1hLm1vZGVsfHwiIjtiLnRyaW09YS50cmltfHwiIjtiLnZpbj1hLnZpbnx8IiI7Yi5wcmljZT1hLnByaWNlfHwiIjtiLnllYXI9YS55ZWFyfHwiIjtiLnZlaGljbGVUeXBlPWEudmVoaWNsZVR5cGV8fCIiO2Iuc3RvY2tOdW1iZXI9dztiLmNhcmlkPWEuY2FyaWR8fCIiO2IuY29uZGl0aW9uPWEuY29uZGl0aW9uO2IuaXNtb2JpbGVzaXRlPWEuaXNtb2JpbGVzaXRlO2IuaXNBbXA9Ik5PIjtiLnJlZmVyZXI9JCgiI3RvcHJlZmVyZXIiKS52YWwoKTtiLnNpdGVpZD0kKCIjdG9wc2l0ZWlkIikudmFsKCk7Yi5kZWFsZXJpZD1hLmRlYWxlcmlkfHwiIjtiLm9lbUNlcnRpZmljYXRpb249JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8Cm51bGw7Yi51dG1fc291cmNlPWY7Yi5yZWxhbmNlSUQ9ZDtiLnV0bV9jYW1wYWlnbj1oO2IudXRtX2tleXdvcmQ9bTtiLnV0bV9sYW5kaW5nPXI7Yi51dG1fZGV0YWlscz1sO2IudXRtX3NvdXJjZV9yZXRhcmdldGluZz1rO2IudXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nPXQ7Yi5sb2NfaW50ZXJlc3Q9dTtiLmxvY19waHlzaWNhbD1jO2IucG9wdXBPZmZlclR5cGU9YS5wb3B1cE9mZmVyVHlwZTtiLmZyb21GYWNlYm9vaz1hLmZyb21GYWNlYm9vaztiLmRldGFpbHNGUj1hLmNvbnNlbnREZXRhaWxzRlI7Yi5kZXRhaWxzRU49YS5jb25zZW50RGV0YWlsc0VOO2IuZnJvbUFBPWEuZnJvbUFBO2Iub3duZXJJRD1hLm93bmVySUQ7Yi5sZWFkVGl0bGVVSVRleHQ9YS5sZWFkVGl0bGVVSVRleHQ7Yi5zbXM9YS5zbXM7Yi5vbkFmdGVyTGVhZENyZWF0ZWQ9YS5vbkFmdGVyTGVhZENyZWF0ZWQ7Yi50cmFkZWluYmFyUmVnaXN0ZXJQYXJ0aWFsSUQ9YS50cmFkZWluYmFyUmVnaXN0ZXJQYXJ0aWFsSUR8fAoiIjsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiYoIiIhPWEudXNlckZpcnN0TmFtZSYmY2xpZW50U3RvcmFnZS5zZXQoImZpcnN0bmFtZSIsYS51c2VyRmlyc3ROYW1lKSwiIiE9YS51c2VyTGFzdE5hbWUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJsYXN0bmFtZSIsYS51c2VyTGFzdE5hbWUpLCIiIT1hLnVzZXJFbWFpbCYmY2xpZW50U3RvcmFnZS5zZXQoImVtYWlsIixhLnVzZXJFbWFpbCksIiIhPWEudXNlclBob25lJiZjbGllbnRTdG9yYWdlLnNldCgicGhvbmUiLGEudXNlclBob25lKSk7Yi5jaGF0Ym90Qm9vc3RJZD1nZXRDb29raWVEMmMoImQyY2NoYXRib3RpZCIpO2Iuc3R5bGVpZD0kKCIjc3R5bGVJZEluVXNlIikubGVuZ3RoPyQoIiNzdHlsZUlkSW5Vc2UiKS52YWwoKTokKCIjYWN0aXZlU3R5bGVJRCIpLmxlbmd0aD8kKCIjYWN0aXZlU3R5bGVJRCIpLnZhbCgpOiIiOyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQmJndpbmRvdy5hZHBfZm91cmV5ZXNfaWQ\/CihiLlVuaXRlV2Vic2l0ZUN1c3RvbWVySWQ9d2luZG93LmFkcF9mb3VyZXllc19pZCxjb25zb2xlLmxvZygiRDJVRCAtIGVtYWlsSGFuZGxlciBKUyBwYXNzZWQiLHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQpKTpjb25zb2xlLmxvZygiRDJVRCAtIGVtYWlsSGFuZGxlciBKUyAtIHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQgaWYgd2FzIHRyaWdnZXJlZCIsd2luZG93LmFkcF9mb3VyZXllc19pZCk7YS5vbkFmdGVyTGVhZENyZWF0ZWQmJihiLm9uQWZ0ZXJMZWFkQ3JlYXRlZC5mcm9tPSIiLGEuc2VuZFRvPWEuc2VuZFRvfHwiIixkPWEuc2VuZFRvLnNwbGl0KCI7IiksZFswXS50cmltKCkubGVuZ3RoP2Iub25BZnRlckxlYWRDcmVhdGVkLmZyb209ZFswXS50cmltKCk6KGQ9YS5zZW5kVG9BREZGb3JtYXQuc3BsaXQoIiwiKSxkWzBdLnRyaW0oKS5sZW5ndGgmJihiLm9uQWZ0ZXJMZWFkQ3JlYXRlZC5mcm9tPWRbMF0udHJpbSgpKSkpO2IudXNlckFnZW50PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKTsKYi5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbj1hLmdyZWNhcHRjaGFSZXNwb25zZVRva2VuO2Q9YS5yZWNhcHRjaGEuY3VycmVudENvbnRleHQoKTtiLmdyZWNhcHRjaGFBY3Rpb249ZC5hY3Rpb247Yi5ncmVjYXB0Y2hhTW9kZT1kLm1vZGU7Yi5jb250YWN0SUQ9YS5jb250YWN0SUQ7Yi5jb250YWN0TkFTPWEuY29udGFjdE5BUztiLmNvbnRhY3RCaXJ0aD1hLmNvbnRhY3RCaXJ0aDtiLmRlYWxlck5hbWU9YS5kZWFsZXJOYW1lP2EuZGVhbGVyTmFtZTpBO2IuYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YT1hLmFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE7Yi5wcmVmZXJyZWRfY29udGFjdD1hLnByZWZlcnJlZF9jb250YWN0O2IudXRtZGV0YWlsc1RvUmVwbGFjZT1xOyIiIT1hLmdlb2xvY19zdGF0dXMmJihiLmdlb2xvY19zdGF0dXM9YS5nZW9sb2Nfc3RhdHVzLGIuZ2VvbG9jX2xhdD1hLmdlb2xvY19sYXQsYi5nZW9sb2NfbG9uZz1hLmdlb2xvY19sb25nLGIuZ2VvbG9jX2FjY3VyYWN5PQphLmdlb2xvY19hY2N1cmFjeSwiZnVuY3Rpb24iPT10eXBlb2YgY2xlYW5BbmRFbmNvZGVUZXh0PyhiLmdlb2xvY190cmFja19zdHI9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuZ2VvbG9jX3RyYWNrX3N0ciksYi5nZW9sb2NfZW1haWxfc3RyPWNsZWFuQW5kRW5jb2RlVGV4dChhLmdlb2xvY19lbWFpbF9zdHIpKTooYi5nZW9sb2NfdHJhY2tfc3RyPSQuYmFzZTY0LmVuY29kZShhLmdlb2xvY190cmFja19zdHIpLGIuZ2VvbG9jX2VtYWlsX3N0cj0kLmJhc2U2NC5lbmNvZGUoYS5nZW9sb2NfZW1haWxfc3RyKSkpOyIiIT1hLmNhcjJfbWFrZSYmKGIuY2FyMl9tYWtlPWEuY2FyMl9tYWtlLGIuY2FyMl9tb2RlbD1hLmNhcjJfbW9kZWwsYi5jYXIyX3RyaW09YS5jYXIyX3RyaW0sYi5jYXIyX3llYXI9YS5jYXIyX3llYXIsYi5jYXIyX2NvbG9yPWEuY2FyMl9jb2xvcixiLmNhcjJfb2RvbWV0ZXI9YS5jYXIyX29kb21ldGVyLGIuY2FyMl92aW49YS5jYXIyX3ZpbixiLmNhcjJfdHJhbnNtaXNzb249CmEuY2FyMl90cmFuc21pc3NvbixiLmNhcjJfZHJpdmV0cmFpbj1hLmNhcjJfZHJpdmV0cmFpbixiLmNhcjJfZnVlbHR5cGU9YS5jYXIyX2Z1ZWx0eXBlKTtiLnNlcnZpY2VEYXRlMT1hLnNlcnZpY2VEYXRlMXx8IiI7Yi5zZXJ2aWNlRGF0ZTI9YS5zZXJ2aWNlRGF0ZTJ8fCIiO2Iud2FpdGluZ09uU2l0ZT1hLndhaXRpbmdPblNpdGV8fCIiO2IuY29tbWVudHM9YS5jb21tZW50czthLnNraXBHZXREZXA\/Yi5kZXBhcnRtZW50PWEuZGVwYXJ0bWVudDooYi5kZXBhcnRtZW50PWEuZ2V0RGVwKCksYS5kZXBhcnRtZW50PWEuZ2V0RGVwKCkpO2lmKCJVU0VEIj09Yi5kZXBhcnRtZW50JiYwPT1hLmRlcGFydG1lbnRCeVN0b2NrKXt2YXIgQj0kKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmZpbHRlcigiOnZpc2libGU6Zmlyc3QiKS52YWwoKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEImJihCPUIuc3BsaXQoIihTdG9jayIpLEJbMV0pKXt2YXIgRj0iVVNFRCI7Qj1CWzFdLnJlcGxhY2UoIikiLAoiIikucmVwbGFjZSgiOiIsIiIpLnJlcGxhY2UoIiMiLCIiKS50cmltKCkudG9Mb3dlckNhc2UoKTskLmFqYXgoe3R5cGU6IkdFVCIsYXN5bmM6ITEsZGF0YVR5cGU6Impzb24iLHVybDoiL2pzL2pzb24vdXNlZEJ5UHJpY2VBc2MuanNvbiIsc3VjY2VzczpmdW5jdGlvbih5KXskLmVhY2goeSxmdW5jdGlvbihELEUpe2lmKEUuc24udG9Mb3dlckNhc2UoKT09QilyZXR1cm4gRj0iMSI9PUUuaXNuZXd8fCIxIj09RS5pc2RlbW8\/Ik5FVyI6IlVTRUQiLCExfSk7YS5kZXBhcnRtZW50QnlTdG9jaz1GfX0pfX0iIiE9PWEuZGVwYXJ0bWVudEJ5U3RvY2smJiExIT09YS5kZXBhcnRtZW50QnlTdG9jayYmKGIuZGVwYXJ0bWVudD1hLmRlcGFydG1lbnRCeVN0b2NrKTshYi5kZXBhcnRtZW50fHwibmV3Ij09Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkmJiJ1c2VkIj09Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCk\/Yi5jb25kaXRpb249Yi5kZXBhcnRtZW50JiYibmV3Ij09Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCk\/CiJOZXciOiJVc2VkIjpiLmNvbmRpdGlvbj0kKCIjY3VycmVudFN0YXR1cyIpLmxlbmd0aD8kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpOiJ1bmtub3duIjtiLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSE9Yi5jb25kaXRpb24udG9Mb3dlckNhc2UoKSYmKGIuY29uZGl0aW9uPWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpKTtudWxsIT1hLmNyZWRpdERhdGEmJihiLmNyZWRpdERhdGE9YS5jcmVkaXREYXRhKTtudWxsIT1hLmRlYWxlckFwcG9pbnRtZW50RGF0YSYmKGIuZGVhbGVyQXBwb2ludG1lbnREYXRhPWEuZGVhbGVyQXBwb2ludG1lbnREYXRhKTswPCQoIiNwdXJjaGFzZV9pbnRlbnRfYW5zd2VyIikubGVuZ3RoJiYoYi5wdXJjaGFzZV9pbnRlbnQ9YS5wdXJjaGFzZV9pbnRlbnQsYi5wdXJjaGFzZV9pbnRlbnRfYW5zd2VyPSQoIiNwdXJjaGFzZV9pbnRlbnRfYW5zd2VyIikudmFsKCksYi5wdXJjaGFzZV9pbnRlbnRfbm9fYW5zd2VyPSQoIiNwdXJjaGFzZV9pbnRlbnRfbm9fYW5zd2VyIikudmFsKCkpOwpiLnB1cmNoYXNlX2ludGVudD1hLmFza1B1cmNoYXNlSW50ZW50P2IucHVyY2hhc2VfaW50ZW50P2IucHVyY2hhc2VfaW50ZW50Oi0xOiExOyQoIiNjdXJyZW50SXRlbVR5cGUiKS5sZW5ndGg\/Yi5pdGVtVHlwZT0kKCIjY3VycmVudEl0ZW1UeXBlIikudmFsKCk6Yi5pdGVtVHlwZT0iIjthLmJvZHkrPSJceDNjIS0tIEpTIFVuaXF1ZSBpZDoiK01hdGgucm91bmQoNUUzKk1hdGgucmFuZG9tKCkpKyItLVx4M2UiO3JldHVybiBifSxnZXREZXA6ZnVuY3Rpb24oKXt2YXIgYj0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCksYz0vXGIobmV3fG5ldWZ8bmV1ZnN8Y29uZmlndXJhdGlvbi1ldC1wcml4fGJ1aWxkLWFuZC1wcmljZXxkZW1vc3xkZW1vbnN0cmF0ZXVyc3xjbGVhcmFuY2UpXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSxkPS9cYih1c2VkfG9jY2FzaW9uKVxiLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LmdVc2VkU3JwQXBweiYmCiJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlJiYiZnVuY3Rpb24iPT09dHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmdldEN1cnJlbnRGaWx0ZXJTdGF0ZSl7dmFyIGY9d2luZG93LmdVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuZ2V0Q3VycmVudEZpbHRlclN0YXRlKCJjYXRlZ29yeSIpO2lmKCExIT09ZiYmZi5sZW5ndGgpaWYoMT09PWYubGVuZ3RoJiYzPT09ZlswXS52YWx1ZSljPSEwLGQ9ITE7ZWxzZXt2YXIgaCxtPTAscj0wO2ZvcihoPTA7aCE9PWYubGVuZ3RoO2grKylmW2hdLm51bT5tJiYobT1mW2hdLm51bSxyPWZbaF0udmFsdWUpOzE9PT1yfHwyPT09cj8oYz0hMSxkPSEwKTozPT09ciYmKGM9ITAsZD0hMSl9fWY9MDtoPSQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZmlsdGVyKCI6cmVhbGx5VmlzaWJsZTpmaXJzdCIpOzA8aC5sZW5ndGgmJihoPWgudmFsKCkubWF0Y2goLzE5WzAtOV17Mn18MjBbMC05XXsyfS9nKSwKbnVsbCE9aCYmKGY9cGFyc2VJbnQoaFswXSkpKTtmfHwoZj1hLnllYXIpO3N3aXRjaChhLm1haWxJRCl7Y2FzZSAiVGlyZXNSZXF1ZXN0IjpjYXNlICJQYXJ0c1JlcXVlc3QiOnJldHVybiJQQVJUUyI7Y2FzZSAiU2VydmljZVJlcXVlc3QiOmNhc2UgIlJlY2FsbHMiOmNhc2UgIkJvZHlTaG9wIjpjYXNlICJtZW51U2VydmljZSI6Y2FzZSAiaGVhZGVyU2VydmljZSI6Y2FzZSAiRXN0aGV0aWNSZXF1ZXN0IjpyZXR1cm4iU0VSVklDRSI7Y2FzZSAiQ3JlZGl0UmVxdWVzdCI6Y2FzZSAiQ3JlZGl0UmVxdWVzdE1vYmlsZSI6Y2FzZSAiRGVhbGVyVHJhY2siOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiOmNhc2UgIkNyZWRpdE11bHRpc3RlcFJlcXVlc3RJbnN0YW50IjpjYXNlICJDcmVkaXRTY29yZSI6Y2FzZSAiQ3JlZGl0QXBwQ2FyZCI6cmV0dXJuIkZJTkFOQ0UiO2Nhc2UgIkpvYk9mZmVyIjpyZXR1cm4iSFIiOwpjYXNlICJtZW51Q29udGFjdFVzIjppZigiIiE9PWEuZGVwYXJ0bWVudClyZXR1cm4gYS5kZXBhcnRtZW50LnRvVXBwZXJDYXNlKCk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCYmIiIhPT1tYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50KXJldHVybiBtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50LnRvVXBwZXJDYXNlKCl9aWYoMDxmKXtpZihkJiZmPj1iKzEpcmV0dXJuIk5FVyI7aWYoIWMmJiFkKXtpZihmPj1iLTEpcmV0dXJuIk5FVyI7aWYoZjxiLTEpcmV0dXJuIlVTRUQifX1yZXR1cm4iY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCk\/JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk6ZD8iVVNFRCI6Yz8iTkVXIjoiIiE9PWEuZGVwYXJ0bWVudD9hLmRlcGFydG1lbnQ6InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcG9wdXBEZXBhcnRtZW50IikuYXR0cigiaWQiKSYmJCgiI3BvcHVwRGVwYXJ0bWVudCIpLnZhbCgpLmxlbmd0aD8KJCgiI3BvcHVwRGVwYXJ0bWVudCIpLnZhbCgpOiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2RlZmF1bHREZXBhcnRtZW50IikuYXR0cigiaWQiKSYmJCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCkubGVuZ3RoPyQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpOiJVU0VEIn0sZGVhbGVyU2VsZWN0RnVuYzpmdW5jdGlvbihiLGMpe2I9dm9pZCAwPT09Yj8hMTpiO3ZhciBkPSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKSxmPWQuZmluZCgic2VsZWN0IiksaD1kLmZpbmQoIi5kZWFsZXItc2VsZWN0LXdyYXBwZXIiKTthLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSExO3ZhciBtPXNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIpO2lmKG0pcmV0dXJuIGEuc2V0RGVhbGVyU2VsZWN0RW1haWxzKCksYnx8KGI9SlNPTi5wYXJzZShtKSxhLnNldE11bHRpRGVhbGVyQm9keShiLmRlYWxlck5hbWUsYS5zZW5kVG8pKSxjLmdvdG9OZXh0KCk7aWYoKCQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLmxlbmd0aCYmCiIiIT0kKCIjY3VzdG9tRm9ybV9zZW5kdG8iKS52YWwoKXx8JCgiI2N1c3RvbUZvcm1fc2VuZHRvQURGIikubGVuZ3RoJiYiIiE9JCgiI2N1c3RvbUZvcm1fc2VuZHRvQURGIikudmFsKCkpJiYwPD0kKCIjUEFHRUlEIikudmFsKCkuaW5kZXhPZigiZ2VuZXJpY18iKXx8MD09ZC5sZW5ndGgpcmV0dXJuIGMuZ290b05leHQoKTtpZigiSm9iT2ZmZXIiPT1hLm1haWxJRCYmIiIhPSQoIiN0ZXh0U2VuZFRvRW1haWxEZWZhdWx0IikudmFsKCkpcmV0dXJuIGEuc2VuZFRvPSQoIiN0ZXh0U2VuZFRvRW1haWxEZWZhdWx0IikudmFsKCksYS5zZWxlY3RlZFNlbmRUbz0kKCIjdGV4dFNlbmRUb0VtYWlsRGVmYXVsdCIpLnZhbCgpLGEuc2VuZFRvQURGRm9ybWF0PSQoIiN0ZXh0U2VuZFRvRW1haWxEZWZhdWx0QURGIikudmFsKCksYS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD0kKCIjdGV4dFNlbmRUb0VtYWlsRGVmYXVsdEFERiIpLnZhbCgpLGMuZ290b05leHQoKTtpZigwIT09YS5zZWxlY3RlZFNlbmRUby5sZW5ndGh8fAowIT09YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdC5sZW5ndGgpcmV0dXJuIDA9PT1hLnNlbmRUby5sZW5ndGgmJihhLnNlbmRUbz1hLnNlbGVjdGVkU2VuZFRvKSwwPT09YS5zZW5kVG9BREZGb3JtYXQubGVuZ3RoJiYoYS5zZW5kVG9BREZGb3JtYXQ9YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdCksYy5nb3RvTmV4dCgpO2I9JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIpLmxlbmd0aD8kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikudmFsKCk6ImxvY2F0aW9uIjtpZigwPCQoIiN0YXJnZXRQYWdlIikubGVuZ3RoJiYiQ0FSREVUQUlMUyI9PT0kKCIjdGFyZ2V0UGFnZSIpLnZhbCgpJiYibG9jYXRpb24iPT09Ynx8KCIiIT09YS5zdG9ja051bWJlcnx8YS5jYXJpZHx8YS5nZXRTdG9ja051bWJlcigpKSYmImxvY2F0aW9uIj09PWIpcmV0dXJuIGMuZ290b05leHQoKTskKCIjbXVsdGktZGVhbGVyLW1hcCIpLmxlbmd0aCYmKEdvb2dsZU1hcHNXcmFwcGVyLnNldEdvb2dsZU1hcCgpLApiPSQoIiNmb290ZXJHb29nbGVNYXBab29tIikudmFsKCksYj0xPHBhcnNlSW50KGIpJiYxOD49cGFyc2VJbnQoYik\/cGFyc2VJbnQoYik6OSxiPW5ldyBHb29nbGVNYXBzV3JhcHBlcih7ZWxlbWVudDoibXVsdGktZGVhbGVyLW1hcCIsYWRkcmVzc2VzOiJ1bmRlZmluZWQiIT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzP2Zvb3Rlck1hcEFkZHJlc3NlczpbXSx6b29tOmIsb25BZnRlck1hcmtlckNyZWF0ZWQ6ZnVuY3Rpb24oayx0KXt2YXIgdT0kKGAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIGJ1dHRvbltkYXRhLWRlYWxlcmlkPSIke2suZGVhbGVySWR9Il1gKTt1Lm9uKCJjbGljayIsZnVuY3Rpb24oKXtnb29nbGUubWFwcy5ldmVudC50cmlnZ2VyKHQsImNsaWNrIil9KTt0LmFkZExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXskKCIuZGVhbGVyLXNlbGVjdC13cmFwcGVyIGJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJmb2N1c2VkIik7dmFyIGw9JCgnI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBzZWxlY3RbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJyk7CnUubGVuZ3RoJiYodS5hZGRDbGFzcygiZm9jdXNlZCIpLHVbMF0uZm9jdXMoKSxtdWx0aURlYWxlclNlbGVjdC5zZXRTZWxlY3QodVswXSwhMSkpO2lmKGwubGVuZ3RoKXt2YXIgcT1sLmZpbmQoYG9wdGlvbltkYXRhLWRlYWxlcmlkPSIke2suZGVhbGVySWR9Il1gKTtxLmxlbmd0aCYmbC52YWwocS52YWwoKSl9fSk7JChgI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBvcHRpb25bZGF0YS1kZWFsZXJpZD0iJHtrLmRlYWxlcklkfSJdYCkuZGF0YSgibWFya2VyIix0KX0sb25BZnRlckluaXQ6ZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3NlcyYmMCE9Zm9vdGVyTWFwQWRkcmVzc2VzLmxlbmd0aHx8JCgiI211bHRpLWRlYWxlci1tYXAiKS5oaWRlKCk7JCgnI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiBzZWxlY3RbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJykub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgaz0kKHRoaXMpLmZpbmQoIjpzZWxlY3RlZCIpOwprLmxlbmd0aCYmZ29vZ2xlLm1hcHMuZXZlbnQudHJpZ2dlcihrLmRhdGEoIm1hcmtlciIpLCJjbGljayIpfSl9fSksJCgiI211bHRpLWRlYWxlci1tYXAiKS5zaG93KCksYi5pbml0KCkpO2Yub2ZmKCJmb2N1cyIpLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXtmLnJlbW92ZUNsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0pO3ZhciByPWZ1bmN0aW9uKGspe3ZhciB0PWEuZ2V0RGVwKCk7aWYoIkpvYk9mZmVyIj09YS5tYWlsSUQpc3dpdGNoKCQoIiNqb2JvZmZlcl9kZXBhcnRtZW50IikudmFsKCkpe2Nhc2UgIlNhbGVzbmV3Ijp0PSJORVciO2JyZWFrO2Nhc2UgIlNhbGVzdXNlZCI6dD0iVVNFRCI7YnJlYWs7Y2FzZSAiU2VydmljZSI6dD0iU0VSVklDRSI7YnJlYWs7Y2FzZSAiUGFydHMiOnQ9IlBBUlRTIjticmVhaztkZWZhdWx0OnQ9Ik5FVyJ9dmFyIHU9IiIsbD0iIjtzd2l0Y2godCl7Y2FzZSAiVVNFRCI6dT1rLmRhdGEoImVtYWlsdXNlZCIpO2w9ay5kYXRhKCJlbWFpbGFkZnVzZWQiKTsKYnJlYWs7Y2FzZSAiU0VSVklDRSI6dT1rLmRhdGEoImVtYWlsc2VydmljZSIpO2w9ay5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTticmVhaztjYXNlICJQQVJUUyI6dT1rLmRhdGEoImVtYWlscGFydHMiKXx8ay5kYXRhKCJlbWFpbHNlcnZpY2UiKTtsPWsuZGF0YSgiZW1haWxhZGZwYXJ0cyIpfHxrLmRhdGEoImVtYWlsYWRmc2VydmljZSIpO2JyZWFrO2Nhc2UgIkZJTkFOQ0UiOnU9ay5kYXRhKCJlbWFpbGZpbmFuY2UiKSxsPWsuZGF0YSgiZW1haWxhZGZmaW5hbmNlIil9YS5zZW5kVG89dXx8ay5kYXRhKCJlbWFpbCIpfHxrLmRhdGEoImVtYWlsdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG89dXx8ay5kYXRhKCJlbWFpbCIpfHxrLmRhdGEoImVtYWlsdXNlZCIpO2Euc2VuZFRvQURGRm9ybWF0PWx8fGsuZGF0YSgiZW1haWxhZGYiKXx8ay5kYXRhKCJlbWFpbGFkZnVzZWQiKTthLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PWx8fGsuZGF0YSgiZW1haWxhZGYiKXx8ay5kYXRhKCJlbWFpbGFkZnVzZWQiKTsKYS5oYXNTZWxlY3RlZE11bHRpQWRkcmVzcz0hMDthLmRlYWxlcmlkPWsuZGF0YSgiZGVhbGVyaWQiKTthLnNldE11bHRpRGVhbGVyQm9keShrLnRleHQoKS50cmltKCksYS5zZW5kVG8pO2s9e3NlbmRUbzphLnNlbmRUbyxzZWxlY3RlZFNlbmRUbzphLnNlbGVjdGVkU2VuZFRvLHNlbmRUb0FERkZvcm1hdDphLnNlbmRUb0FERkZvcm1hdCxzZWxlY3RlZFNlbmRUb0FERkZvcm1hdDphLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0LGRlYWxlck5hbWU6ay50ZXh0KCkudHJpbSgpLGRlYWxlcmlkOmsuZGF0YSgiZGVhbGVyaWQiKSxvcHRpb25pZDprLnZhbCgpfTtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkZWFsZXJTZWxlY3RWYWx1ZXMiLEpTT04uc3RyaW5naWZ5KGspKX07JCgiI211dGxpQWRkcmVzc1N1Ym1pdCIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoIiI9PT1mLnZhbCgpKWYuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGguYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpOwplbHNle3ZhciBrPWYuZmluZCgiOnNlbGVjdGVkIik7cihrKTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4IixlKTtkLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO2MuZ290b05leHQoKX19KTtpZigkKCIubXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLWNsb3NlIikubGVuZ3RoKSQoIi5tdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24tY2xvc2UiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe0xlYWRzJiZPYmplY3Qua2V5cyhMZWFkcykuZm9yRWFjaChmdW5jdGlvbihrKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBMZWFkc1trXS5sZWFkSWQmJkxlYWRIYW5kbGVyKCkuZ2V0TGVhZChMZWFkc1trXS5sZWFkSWQpLmNsb3NlKCl9KTtwb3B1cFN1cGVydmlzb3ImJnBvcHVwU3VwZXJ2aXNvci5wb3B1cHMmJnBvcHVwU3VwZXJ2aXNvci5wb3B1cHMuZm9yRWFjaChmdW5jdGlvbihrKXtrJiZ0eXBlb2Ygay5pc0FjdGl2ZSgpJiZrLmNhbmNlbCgpfSk7JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIsCmUpO2QudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTtpZigiIiE9PWEubWFrZSYmbXVsdGlEZWFsZXJTZWxlY3QmJihiPW11bHRpRGVhbGVyU2VsZWN0LmZpbHRlcihmKSxiLmJ5TWFrZShhLm1ha2UpLGI9Yi5oYXNPbmx5T25lKCkpKXJldHVybiByKGIpLGMuZ290b05leHQoKTtoLmxlbmd0aCYmKGI9aC5maW5kKCJidXR0b24iKS50b0FycmF5KCksYi5sZW5ndGgmJihiPWZ1bmN0aW9uKGspe2ZvcihsZXQgdD1rLmxlbmd0aC0xOzA8dDt0LS0pe2NvbnN0IHU9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0KzEpKTtba1t0XSxrW3VdXT1ba1t1XSxrW3RdXX1yZXR1cm4ga30oYiksaC5maW5kKCJidXR0b24iKS5yZW1vdmUoKSxoLmFwcGVuZChiKSkpO2QucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwyIixjbG9zZW9uZXNjYXBlOiExfSk7CmU9MTExMjxlP2U6JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIpOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLHBhcnNlSW50KGQuY3NzKCJ6LWluZGV4IikpLTEpfSxzZXREZWFsZXJTZWxlY3RFbWFpbHM6ZnVuY3Rpb24oKXt2YXIgYj1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkZWFsZXJTZWxlY3RWYWx1ZXMiKTtpZihiJiYoYj1KU09OLnBhcnNlKGIpLGEuZGVhbGVyaWQ9Yi5kZWFsZXJpZCxiPSQoJyNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gc2VsZWN0W25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXSBvcHRpb25bdmFsdWU9IicrYi5vcHRpb25pZCsnIl0nKSkpe3ZhciBjPWEuZ2V0RGVwKCk7aWYoIkpvYk9mZmVyIj09YS5tYWlsSUQpc3dpdGNoKCQoIiNqb2JvZmZlcl9kZXBhcnRtZW50IikudmFsKCkpe2Nhc2UgIlNhbGVzbmV3IjpjPSJORVciO2JyZWFrO2Nhc2UgIlNhbGVzdXNlZCI6Yz0iVVNFRCI7YnJlYWs7Y2FzZSAiU2VydmljZSI6Yz0KIlNFUlZJQ0UiO2JyZWFrO2Nhc2UgIlBhcnRzIjpjPSJQQVJUUyI7YnJlYWs7ZGVmYXVsdDpjPSJORVcifXZhciBkPSIiLGY9IiI7c3dpdGNoKGMpe2Nhc2UgIlVTRUQiOmQ9Yi5kYXRhKCJlbWFpbHVzZWQiKTtmPWIuZGF0YSgiZW1haWxhZGZ1c2VkIik7YnJlYWs7Y2FzZSAiU0VSVklDRSI6ZD1iLmRhdGEoImVtYWlsc2VydmljZSIpO2Y9Yi5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTticmVhaztjYXNlICJQQVJUUyI6ZD1iLmRhdGEoImVtYWlscGFydHMiKXx8Yi5kYXRhKCJlbWFpbHNlcnZpY2UiKTtmPWIuZGF0YSgiZW1haWxhZGZwYXJ0cyIpfHxiLmRhdGEoImVtYWlsYWRmc2VydmljZSIpO2JyZWFrO2Nhc2UgIkZJTkFOQ0UiOmQ9Yi5kYXRhKCJlbWFpbGZpbmFuY2UiKSxmPWIuZGF0YSgiZW1haWxhZGZmaW5hbmNlIil9YS5zZW5kVG89ZHx8Yi5kYXRhKCJlbWFpbCIpfHxiLmRhdGEoImVtYWlsdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG89ZHx8Yi5kYXRhKCJlbWFpbCIpfHxiLmRhdGEoImVtYWlsdXNlZCIpOwphLnNlbmRUb0FERkZvcm1hdD1mfHxiLmRhdGEoImVtYWlsYWRmIil8fGIuZGF0YSgiZW1haWxhZGZ1c2VkIik7YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1mfHxiLmRhdGEoImVtYWlsYWRmIil8fGIuZGF0YSgiZW1haWxhZGZ1c2VkIik7YS5oYXNTZWxlY3RlZE11bHRpQWRkcmVzcz0hMH19LGhhbmRsZVNlbmRGYWlsdXJlOmZ1bmN0aW9uKGIsYyl7YS5sb2dGb3JtUmVxdWVzdCgiRm9ybVN1Ym1pdHRlZEVtYWlsTm90U2VudCIsYS5tYWlsSUQsYik7YS5wYXJ0aWFsPSExO2EubGFzdENoZWNrc3VtPSExO2I9IiI7dHJ5e2I9anNfZDJjX2dldF92YWwoIkVNQUlMX0ZBSUxfTUVTU0FHRSIpfWNhdGNoKGQpe31ifHwoYj0iVGhlcmUgd2FzIGEgcHJvYmxlbSBzZW5kaW5nIHlvdXIgbWVzc2FnZS4gUGxlYXNlIHRyeSBhZ2Fpbi4iKTthbGVydChjP2IrIlxuIitjOmIpO2pRdWVyeSgiYm9keSIpLnRyaWdnZXIoImVtYWlsSGFuZGxlci5lbWFpbFNlbnQiLHttYWlsSUQ6YS5tYWlsSUQsc3VjY2VzczohMSwKZXJyb3I6Y3x8IiJ9KTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5jYWxsYmFjayl0cnl7YS5jYWxsYmFjayghMSl9Y2F0Y2goZCl7fWEuY2FsbGJhY2s9bnVsbH0scmVhZHlUb1NlbmQ6ZnVuY3Rpb24oKXt2YXIgYj1hLmNyZWF0ZUNoZWNrc3VtKCk7aWYoYS5sYXN0Q2hlY2tzdW09PWIpImZ1bmN0aW9uIj09dHlwZW9mIGEub25EdXBsaWNhdGVTZW5kP2Eub25EdXBsaWNhdGVTZW5kLmNhbGwoKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkNSQyBNYXRjaCIsYS5sYXN0Q2hlY2tzdW0sYik7ZWxzZXthLmxhc3RDaGVja3N1bT1iOyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoJiYiIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpIT0KJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJihiPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkNvbmNlc3Npb24gb++\/vSBlc3Qgc2l0de+\/vSBsZSB277+9aGljdWxlOiAiOiJEZWFsZXIgd2hlcmUgdGhlIHZlaGljbGUgaXMgbG9jYXRlZDogIixiKz0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpLGEuYm9keT1hLmJvZHkucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsYikpOzA8JCgiI2lzbW9iaWxlIikubGVuZ3RoJiYoYS5pc21vYmlsZXNpdGU9IllFUyIpO2lmKDA9PWEuc3ViamVjdC5sZW5ndGh8fDA9PWEuYm9keS5sZW5ndGgpcmV0dXJuITE7YS5pbmplY3RDdGFDb21wbGV0ZWREYXRhKCk7anNvbk9iamVjdD1hLmdldEpzb25PYmplY3QoKTtiPW51bGw7Yj1KU09OLnN0cmluZ2lmeShqc29uT2JqZWN0KTt2YXIgYz1hLnBvcHVwT2ZmZXJUeXBlO2I9e2pzb246Yn07aWYoYS5wYXJ0aWFsKWIucGFydGlhbD0KITA7ZWxzZXsidW5kZWZpbmVkIiE9dHlwZW9mIGd0YWcmJndpbmRvdy5kMmNfYXdjSWQmJndpbmRvdy5kMmNfYXdjTGFiZWwmJigibGl2ZSI9PWRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCk\/Z3RhZygiZXZlbnQiLCJjb252ZXJzaW9uIix7c2VuZF90bzpkMmNfYXdjSWQrIi8iK2QyY19hd2NMYWJlbH0pOmNvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrIi8iK2QyY19hd2NMYWJlbCsiIH0pOyIpKTt2YXIgZD17bWFpbElEOmEubWFpbElELG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwseWVhcjphLnllYXIsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbixkZXBhcnRtZW50OmEuZGVwYXJ0bWVudCx0cmFkZWluOmEudHJhZGVpbixwb3B1cE9mZmVyVHlwZTphLnBvcHVwT2ZmZXJUeXBlLGJvZHlUeXBlOmEudmVoaWNsZVR5cGUsc2FsZXNEZXB0OmEuc2FsZXNEZXB0LHBvcHVwRGl2OmEucG9wdXBkaXYsaXNDVEE6YS5pc0NUQSwKYnV0dG9uVGV4dDphLmJ1dHRvblRleHR9O2pRdWVyeSgiYm9keSIpLnRyaWdnZXIoImVtYWlsSGFuZGxlci5zdWJtaXQiLGQpfSQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLnNob3coKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpfSw1RTMpOyQoJ2lucHV0W25hbWU9ImxlYWRfZGVwYXJ0bWVudCJdJykudmFsKGpzb25PYmplY3QuZGVwYXJ0bWVudCk7JCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLnN1YmplY3QucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7IiIhPWEubGVhZFRpdGxlVGV4dCYmKCQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoYS5sZWFkVGl0bGVUZXh0LnJlcGxhY2UoL1tcblxyXS9nLCIgIikpLGEubGVhZFRpdGxlVGV4dD0iIik7JCgnaW5wdXRbbmFtZT0icGFnZUlEIl0nKS52YWwoJCgiI1BBR0VJRCIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJjdXJyZW50VVJMIl0nKS52YWwod2luZG93LmxvY2F0aW9uLmhyZWYpOwokKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImJ1dHRvblBvc2l0aW9uIl0nKS52YWwoJCgiI25ld1ZEUEJ1dHRvblBvc2l0aW9uIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzQ29uZmlybVBvcHVwIl0nKS52YWwoMCk7ImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIj09YS5wb3B1cGRpdiYmJCgnaW5wdXRbbmFtZT0iaXNDb25maXJtUG9wdXAiXScpLnZhbCgxKTskKCdpbnB1dFtuYW1lPSJjb25maXJtX2VtYWlsIl0nKS52YWwoYS51c2VyRW1haWwpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSJdJykudmFsKGEudXNlckZpcnN0TmFtZSk7CiQoJ2lucHV0W25hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIl0nKS52YWwoYS51c2VyTGFzdE5hbWUpOyQoJ2lucHV0W25hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIl0nKS52YWwoYS51c2VyUGhvbmUpO2Zvcm1GaWxsLnNhdmUoe2VtYWlsOmEudXNlckVtYWlsLGZpcnN0TmFtZTphLnVzZXJGaXJzdE5hbWUsbGFzdE5hbWU6YS51c2VyTGFzdE5hbWUscGhvbmU6YS51c2VyUGhvbmUscG9zdGFsOmEudXNlclBvc3RhbH0pOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvbWFpbC9zZW5kTWFpbEV4LnBocCIsZGF0YTpiLGJlZm9yZVNlbmQ6ZnVuY3Rpb24oZil7ZiYmZi5vdmVycmlkZU1pbWVUeXBlJiZmLm92ZXJyaWRlTWltZVR5cGUoImFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD1VVEYtOCIpO3RyeXtsZXQgaD0kKCJtZXRhW25hbWU9J2NzcmYtZG9tYWluLWNoZWNrJ10iKTtoLmxlbmd0aCYmZi5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsaC5hdHRyKCJjb250ZW50IikpfWNhdGNoKGgpe2NvbnNvbGUuZXJyb3IoZil9fSwKc3VjY2VzczpmdW5jdGlvbihmKXthLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtU3VibWl0dGVkIixhLm1haWxJRCxjKTthLnBhcnRpYWw9ITE7YS5sYXN0Q2hlY2tzdW09ITE7dmFyIGg9e307dHJ5e2g9InN0cmluZyI9PXR5cGVvZiBmP0pTT04ucGFyc2UoZik6Zn1jYXRjaChtKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoImVtYWlsSGFuZGxlcjogbWFsZm9ybWVkIEpTT04gcmVzcG9uc2UiLGYsbSk7YS5oYW5kbGVTZW5kRmFpbHVyZShjLG0mJm0ubWVzc2FnZSk7cmV0dXJufWEuX19sYXN0UmV0dXJuPWg7aWYoIm9iamVjdCI9PXR5cGVvZiBofHwidW5kZWZpbmVkIiE9dHlwZW9mIGgubGVhZGlkKWEuX19sZWFkaWQ9aC5sZWFkaWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIGEuY2FsbGJhY2smJihhLmNhbGxiYWNrPWZ1bmN0aW9uKCl7fSk7alF1ZXJ5KCJib2R5IikudHJpZ2dlcigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIse21haWxJRDphLm1haWxJRCxtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLAp5ZWFyOmEueWVhcix2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLGRlcGFydG1lbnQ6YS5kZXBhcnRtZW50LHRyYWRlaW46YS50cmFkZWluLHN1Y2Nlc3M6IlNVQ0NFU1MiPT09aC5zdGF0dXMsZGV0YWlsOntjb25maXJtX2ZpcnN0X25hbWU6YS51c2VyRmlyc3ROYW1lLGNvbmZpcm1fbGFzdF9uYW1lOmEudXNlckxhc3ROYW1lLGNvbmZpcm1fZW1haWw6YS51c2VyRW1haWwsY29uZmlybV9waG9uZV9udW1iZXI6YS51c2VyUGhvbmUseWVhcjphLnllYXIsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCxpZDpoLmxlYWRpZCx2aW46YS52aW4sY29uZGl0aW9uOmEuY29uZGl0aW9uLHZlcnNpb246YS52ZXJzaW9ufHwiIixOSVY6YS52aW4sdHJpbTphLnRyaW0sbGVhZFR5cGU6YS5sZWFkVHlwZXx8IiIsbWFpbElkOmEubWFpbElEfX0pOyJTVUNDRVNTIj09aC5zdGF0dXM\/KGEuY2FsbGJhY2soITApLGEubWFpblByb21vJiYoZj1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIsCntkZXRhaWw6e3N0ZXBJZDoiTWFpblByb21vQnRuIn19KSxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGYpKSk6YS5jYWxsYmFjayghMSk7YS5jYWxsYmFjaz1udWxsfSxlcnJvcjpmdW5jdGlvbihmLGgsbSl7ZiYmNDA0PT09Zi5zdGF0dXN8fGEuaGFuZGxlU2VuZEZhaWx1cmUoYyxtfHxofHwiIil9LHN0YXR1c0NvZGU6ezQwNDpmdW5jdGlvbigpe2EuaGFuZGxlU2VuZEZhaWx1cmUoYywiNDA0Iil9fX0pO2EucG9wdXBPZmZlclR5cGU9IiJ9fSxpbmplY3RDdGFDb21wbGV0ZWREYXRhOmZ1bmN0aW9uKCl7bGV0IGI9IiIsYz0iIjt2YXIgZD0iIjt0cnl7dmFyIGY9InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZT9jbGllbnRTdG9yYWdlLmdldCgiYmFuZHBfY29uZmlnIiwibG9jYWwiKTpsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiYmFuZHBfY29uZmlnIil9Y2F0Y2gobSl7Zj1udWxsfXZhciBoPSJ1bmRlZmluZWQiIT09dHlwZW9mIGYmJm51bGwhPT1mP0pTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGYpKToKSlNPTi5wYXJzZSgie30iKTtmPShtLHIpPT57cj1yfHwhMTtsZXQgaz1tLm9wdGlvbnMucmVkdWNlKChBLHopPT5BK2Ake3p9PGJyPmAsIiIpLHQ9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IlZlaGljbGUgZGV0YWlscyI6IlbDqWhpY3VsZSBjb25maWd1csOpIix1PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJGaW5hbmNpbmcgZGV0YWlscyI6IkTDqXRhaWxzIGR1IGZpbmFuY2VtZW50IixsLHEsdztyPXI\/IiI6YAoJCQkJCQk8dT4ke3V9OjwvdT48YnI+CgkJCQkJCSR7bnVsbD09bT92b2lkIDA6bnVsbD09KGw9bS5wYXltZW50KT92b2lkIDA6bC50b3RhbH08YnI+CgkJCQkJCSR7bnVsbD09bT92b2lkIDA6bnVsbD09KHE9bS5wYXltZW50KT92b2lkIDA6cS5yYXRlfTxicj4KCQkJCQkJJHtudWxsPT1tP3ZvaWQgMDpudWxsPT0odz1tLnBheW1lbnQpP3ZvaWQgMDp3LmFtb3VudH08YnI+PGJyPgoJCQkJCWA7bGV0IHAsdjtyZXR1cm5gCgkJCQkJPHU+JHt0fTo8L3U+PGJyPgoJCQkJCSR7bnVsbD09bT92b2lkIDA6bS5tb2RlbH08YnI+CgkJCQkJRXh0OiAkeyhudWxsPT1tP3ZvaWQgMDpudWxsPT0ocD1tLmNvbG9ycyk\/dm9pZCAwOnAuZXh0KXx8IiJ9LCBJbnQ6ICR7KG51bGw9PW0\/dm9pZCAwOm51bGw9PSh2PW0uY29sb3JzKT92b2lkIDA6di5pbnQpfHwiIn08YnI+CgkJCQkJJHsobnVsbD09bT92b2lkIDA6bS5kcml2ZVRyYWluKXx8IiJ9PGJyPgoJCQkJCSR7a308YnI+CgkJCQkJJHtyfQoJCQkJYH07aC5iYW5kcCYmKGI9ZihoLmJhbmRwKS5yZXBsYWNlKC8oXHR8XG4pKi9nLCIiKSk7aWYoQ29va2llcy5nZXQoImN0YV9kYXRhX3ZhbGlkIikpe2Q9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpfHwie30iKTtoPSEhZC5wYXltZW50O2QuYmFuZHAmJihkLmJhbmRwLm9wdGlvbnM9ZC5iYW5kcC5vcHRpb25zfHxbXSxiPWYoZC5iYW5kcCxoKSk7aWYoaCl7bGV0IG0scixrO2M9YAoJCQkJCQk8dT4keyJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJWZWhpY2xlIGRldGFpbHMiOiJEw6l0YWlscyBkdSBmaW5hbmNlbWVudCJ9OjwvdT48YnI+CgkJCQkJCSR7bnVsbD09ZD92b2lkIDA6bnVsbD09KG09ZC5wYXltZW50KT92b2lkIDA6bS5saXN0UHJpY2V9PGJyPgoJCQkJCQkke251bGw9PWQ\/dm9pZCAwOm51bGw9PShyPWQucGF5bWVudCk\/dm9pZCAwOnIucmF0ZX08YnI+CgkJCQkJCSR7bnVsbD09ZD92b2lkIDA6bnVsbD09KGs9ZC5wYXltZW50KT92b2lkIDA6ay5wYXltZW50fTxicj4KCQkJCQlgfWQ9IlxuXHRcdFx0XHRcdDxicj5cblx0XHRcdFx0XHQ8YnI+XG5cdFx0XHRcdFx0PHU+PHN0cm9uZz5UcmFuc2FjdGlvbiBCdWlsZGVyOjwvc3Ryb25nPjwvdT5cblxuXHRcdFx0XHQifWlmKGJ8fGMpYS5ib2R5Kz0oZCtgCgkJCQkJPGJyPgoJCQkJCTxicj4KCQkJCQkke2J9CgkJCQkJJHtjfQoJCQkJYCkucmVwbGFjZSgvXHI\/XG58XHIvZywiIil9LGRlY29kZVVSTFJlY3Vyc2l2ZWx5OmZ1bmN0aW9uKGIpe3JldHVybi0xIT1iLmluZGV4T2YoIiUiKT9hLmRlY29kZVVSTFJlY3Vyc2l2ZWx5KGRlY29kZVVSSUNvbXBvbmVudCh1bmVzY2FwZShiKSkpOmJ9LHZhbGlkYXRlRW1haWw6ZnVuY3Rpb24oYil7cmV0dXJuICQuYWpheCh7dHlwZToiR0VUIix1cmw6Ii9hamF4L3ZhbGlkYXRlRW1haWxBY2NvdW50P3dzd2lkdGg9MCZlbWFpbD0iK2IsYXN5bmM6ITF9KX0sZ2V0VVVJRDpmdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRCYmbnVsbCE9d2luZG93LmFjdGl2ZVByb2ZpbGVJRD93aW5kb3cuYWN0aXZlUHJvZmlsZUlEOiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJm51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD9hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ6CiJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llcyYmInVuZGVmaW5lZCIhPUNvb2tpZXMuZ2V0KCJ1dWlkIikmJm51bGwhPUNvb2tpZXMuZ2V0KCJ1dWlkIik\/Q29va2llcy5nZXQoInV1aWQiKToiIn0sc2V0Q29udGFjdEluZm86ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiAkLmZuLmdvb2dsZVBsYWNlcyl7dmFyIGI9JCgnaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzPSJ0cnVlIl0nKTswIT1iLmxlbmd0aCYmKGI9Yi5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKSwiIiE9Yi5jaXR5JiYiIj09YS5jb250YWN0Q2l0eSYmKGEuY29udGFjdENpdHk9Yi5jaXR5LmxvbmdfbmFtZSksIiIhPWIuc3RyZWV0JiYiIiE9Yi5zdHJlZXRfbnVtYmVyJiYiIj09YS5jb250YWN0QWRkcmVzcyYmKGEuY29udGFjdEFkZHJlc3M9Yi5zdHJlZXRfbnVtYmVyLmxvbmdfbmFtZSsiICIrYi5zdHJlZXQubG9uZ19uYW1lKSwiIiE9Yi5wcm92aW5jZSYmIiI9PWEuY29udGFjdFByb3ZpbmNlJiYoYS5jb250YWN0UHJvdmluY2U9CmIucHJvdmluY2Uuc2hvcnRfbmFtZSksIiIhPWIucG9zdGFsJiYiIj09YS5jb250YWN0WmlwJiYoYS5jb250YWN0WmlwPWIucG9zdGFsLmxvbmdfbmFtZSkpfX0sZ2V0TG9uZ0RhdGVUb1Nob3J0Rm9ybWF0OmZ1bmN0aW9uKGIpe2lmKCIiPT1iKXJldHVybiBiO2I9Yi50b0xvd2VyQ2FzZSgpO3ZhciBjPXtqYW52aWVyOiJqYW51YXJ5IiwiZsOpdnJpZXIiOiJmZWJydWFyeSIsbWFyczoibWFyY2giLGF2cmlsOiJhcHJpbCIsbWFpOiJtYXkiLGp1aW46Imp1bmUiLGp1aWxsZXQ6Imp1bHkiLCJhb8O7dCI6ImF1Z3VzdCIsc2VwdGVtYnJlOiJzZXB0ZW1iZXIiLG9jdG9icmU6Im9jdG9iZXIiLG5vdmVtYnJlOiJub3ZlbWJlciIsImTDqWNlbWJyZSI6ImRlY2VtYmVyIn07Yj1iLnJlcGxhY2UoL1xiXFMrXGIvaWcsZnVuY3Rpb24oZCl7dmFyIGY9ZC50b0xvd2VyQ2FzZSgpO3JldHVybiBjW2ZdP2NbZl06ZH0pO3JldHVybihuZXcgRGF0ZShiKSkuZm9ybWF0KCJ5eXl5LU1NLWRkIil9LGdldEVtYWlsQ29uc2VudDpmdW5jdGlvbihiKXt2YXIgYz0KbmV3IERhdGU7YS5zZXRDb250YWN0SW5mbygpO3ZhciBkPWEuY29udGFjdEJpcnRoP2EuY29udGFjdEJpcnRoOmEuZ2V0TG9uZ0RhdGVUb1Nob3J0Rm9ybWF0KGEuYmlydGhkYXRlKTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5zaG93KCk7Z2V0RGF0YT17ZW1haWw6YS51c2VyRW1haWwscGhvbmU6YS51c2VyUGhvbmUsbmFtZTphLnVzZXJGaXJzdE5hbWUrIiAiK2EudXNlckxhc3ROYW1lLGFkZHI6YS5jb250YWN0QWRkcmVzcz9hLmNvbnRhY3RBZGRyZXNzOmEudXNlckFkZHJlc3MsY2l0eTphLmNvbnRhY3RDaXR5LHByb3ZpbmNlOmEuY29udGFjdFByb3ZpbmNlLHppcDphLmNvbnRhY3RaaXA\/YS5jb250YWN0WmlwOmEudXNlclBvc3RhbCxuYXM6YS5jb250YWN0TkFTLGJpcnRoOmQsc2l0ZUlEOiQoIiNzaXRlSUQiKS52YWwoKSxVVUlEOmEuZ2V0VVVJRCgpLHRzOmMuZ2V0VGltZSgpLGxhbmc6JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLHVwZGF0ZUltcGxpY2l0OiEwfTsKJC5hamF4KHt0eXBlOiJHRVQiLHVybDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAiLGRhdGE6Z2V0RGF0YSxkYXRhVHlwZToianNvbiJ9KS5hbHdheXMoZnVuY3Rpb24oZixoLG0pe2Y9Zj9mOntoYXNDb25zZW50OiExfTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCk7dHJ5eyJ1bmRlZmluZWQiPT10eXBlb2YgZiYmInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIqKioqIGVycm9yICoqKioiLHtlcnJvcjoiTm8gRGF0YSIsdGV4dFN0YXR1czpoLHJ2YWx1ZTpmLHY6Z2V0RGF0YSx0OiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCJ9KSxbWyJjb25zZW50VHlwZSIsImNvbnNlbnRUeXBlIl0sWyJjb25zZW50RXhwaXJhdGlvbiIsImV4cGlyYXRpb24iXSxbImNvbnNlbnREYXRlIiwiZGF0ZSJdLFsiY29uc2VudEZyZXF1ZW5jeSIsImZyZXF1ZW5jeSJdLApbImNvbnNlbnREZXRhaWxzRlIiLCJkZXRhaWxzRlJFTkNIIl0sWyJjb25zZW50RGV0YWlsc0VOIiwiZGV0YWlsc0VOR0xJU0giXSxbImRldGFpbHNEZWZhdWx0cyIsImRldGFpbHNEZWZhdWx0cyJdLFsiY29udGFjdElEIiwidWlkIl1dLm1hcChmdW5jdGlvbihyKXt2YXIgaz1yWzBdO3I9clsxXTtkZWxldGUgdm9pZCAwO2Fba109dm9pZCAwIT1mW3JdP2Zbcl06YVtrXX0pfWNhdGNoKHIpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiKioqKiBlcnJvciAqKioqIix7ZXJyb3I6cix0ZXh0U3RhdHVzOmgscnZhbHVlOmYsdjpnZXREYXRhLHQ6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIn0pfWIoZil9KX0sYmFuZHBMaW5rOmZ1bmN0aW9uKGIpe2I9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvLS9nLCJfIikucmVwbGFjZSgvJy9nLCIiKX07aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBDb29raWVzLmdldCgiYmFuZHBsaW5rIil8fApudWxsPT1Db29raWVzLmdldCgiYmFuZHBsaW5rIil8fCJ1bmRlZmluZWQiPT10eXBlb2YgQ29va2llcy5nZXQoInNlc3NpZCIpfHxudWxsPT1Db29raWVzLmdldCgic2Vzc2lkIikpcmV0dXJuIiI7dmFyIGM9Q29va2llcy5nZXQoImJhbmRwbGluayIpLGQ9Q29va2llcy5nZXQoInNlc3NpZCIpO2lmKDA+Yy5pbmRleE9mKCJ8fHwiKSlyZXR1cm4iIjt2YXIgZj1jLnNwbGl0KCJ8fHwiKTtpZig0PmYubGVuZ3RoKXJldHVybiIiO2M9KG5ldyBTdHJpbmcoZlswXSkpLnNwbGl0KCIvIik7dmFyIGg9bmV3IFN0cmluZyhmWzFdKSxtPW5ldyBTdHJpbmcoZlsyXSk7Zj1uZXcgU3RyaW5nKGZbM10pO3ZhciByPSQoIiNwb3B1cHRyaW0iKS5sZW5ndGgmJiJ7JFBPUFVQVFJJTX0iIT0kKCIjcG9wdXB0cmltIikudmFsKCk\/JCgiI3BvcHVwdHJpbSIpLnZhbCgpOiIiLGs9IjxhIGhyZWY9JyIrZDJjbWVkaWEuZ2V0SHR0cFRleHQoKSsiOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUrJCgiI3R4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIikudmFsKCk7CiJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyhwYXJzZUludChjWzJdKSwkKCIjVFhUTU9OVEgiK3BhcnNlSW50KGNbMV0pLnRvU3RyaW5nKCkpLnZhbCgpLGsrPWYrIi0iK2IoaCkrIi0iK2IobSkrIi5odG1sP3NpZD0iK2QrIicgdGFyZ2V0PSdfYmxhbmsnPiIrZisiICIraCsiICIrbSsiICIrcisiPC9hPiIpOigkKCIjVFhUTU9OVEgiK3BhcnNlSW50KGNbMV0pLnRvU3RyaW5nKCkpLnZhbCgpLGsrPWIoaCkrIi0iK2IobSkrIi0iK2YrIi5odG1sP3NpZD0iK2QrIicgdGFyZ2V0PSdfYmxhbmsnPiIraCsiICIrbSsiICIrcisiICIrZisiPC9hPiIpO3JldHVybiBrfSxsb2dGb3JtUmVxdWVzdDpmdW5jdGlvbihiLGMsZCl7dmFyIGY9TWF0aC5mbG9vcig5OTk5OTk5Kk1hdGgucmFuZG9tKCkpLGg9JCgiI3RvcHNpdGVpZCIpLmxlbmd0aD8kKCIjdG9wc2l0ZWlkIikudmFsKCk6IjAiLG09JCgiI3RvcGNhcmlkIikubGVuZ3RoJiYwPCQoIiN0b3BjYXJpZCIpLnZhbCgpLmxlbmd0aD8KJCgiI3RvcGNhcmlkIikudmFsKCk6IjAiLHI9Q29va2llcy5nZXQoInVpZCIpP0Nvb2tpZXMuZ2V0KCJ1aWQiKToiMCIsaz1Db29raWVzLmdldCgidXRtX3NvdXJjZSIpP0Nvb2tpZXMuZ2V0KCJ1dG1fc291cmNlIik6IjAiLHQ9Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbiIpP0Nvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ24iKToiMCIsdT1Db29raWVzLmdldCgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpP0Nvb2tpZXMuZ2V0KCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIik6IjAiLGw9Q29va2llcy5nZXQoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpP0Nvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKToiMCIscT0kKCIjdG9waXNtb2JpbGUiKS5sZW5ndGgmJjE9PSQoIiN0b3Bpc21vYmlsZSIpLnZhbCgpPyJZRVMiOiJOTyIsdz0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikubGVuZ3RoPyQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKToiRlJFTkNIIixwPXZvaWQgMCE9PQphJiZ2b2lkIDAhPT1hLnBob25lTWFuZGF0b3J5P2EucGhvbmVNYW5kYXRvcnk6MDsidW5kZWZpbmVkIiE9dHlwZW9mIGQmJmR8fChkPSIwIik7dD10LnJlcGxhY2UoL1x0L2csIiIpLnJlcGxhY2UoL1xuL2csIiIpLnJlcGxhY2UoL1xyL2csIiIpLnJlcGxhY2VBbGwoIiUwQSIsIiIpLnJlcGxhY2VBbGwoIiUwOSIsIiIpLnJlcGxhY2VBbGwoIiUwQiIsIiIpLnJlcGxhY2VBbGwoIiUwMCIsIiIpLnJlcGxhY2VBbGwoIiU1QyIsIiIpLnJlcGxhY2VBbGwoIiUwRCIsIiIpO2s9ay5yZXBsYWNlKC9cdC9nLCIiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC9cci9nLCIiKS5yZXBsYWNlQWxsKCIlMEEiLCIiKS5yZXBsYWNlQWxsKCIlMDkiLCIiKS5yZXBsYWNlQWxsKCIlMEIiLCIiKS5yZXBsYWNlQWxsKCIlMDAiLCIiKS5yZXBsYWNlQWxsKCIlNUMiLCIiKS5yZXBsYWNlQWxsKCIlMEQiLCIiKTtiPSIvcHJveHlfc2F1Yi9sb2dGb3JtUmVxdWVzdC8iK2VuY29kZVVSSUNvbXBvbmVudChoKSsKIi8iK2VuY29kZVVSSUNvbXBvbmVudChtKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIpKyIvIitlbmNvZGVVUklDb21wb25lbnQoaykrIi8iK2VuY29kZVVSSUNvbXBvbmVudCh0KSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHEpKyIvIitlbmNvZGVVUklDb21wb25lbnQodykrIi8iK2VuY29kZVVSSUNvbXBvbmVudCh1KSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGwpKyIvIitlbmNvZGVVUklDb21wb25lbnQoYykrIi8iK2VuY29kZVVSSUNvbXBvbmVudChiKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGQpKyIvIishIXArIi8iK2VuY29kZVVSSUNvbXBvbmVudChmKSsiLmdpZiI7JCgiYm9keSIpLmFwcGVuZCgiPGltZyBzdHlsZT0nd2lkdGg6MXB4O2hlaWdodDoxcHg7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowcHg7dG9wOjBweDsnIHNyYz0nIitiKyInIGFsdD0nJyAvPiIpfSxnZXRVc2VkRW1haWxGb3JNdWx0aXBsZURlYWxlcnM6ZnVuY3Rpb24oKXt2YXIgYj0iZnIiOyJFTkdMSVNIIj09CiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSYmKGI9ImVuIik7dXJpPSIvIitiKyIvcGhwL2dldERlYWxlcnNFbWFpbFRvLnBocD9tYWtlPSIrYS5tYWtlKyImbW9kZWw9IithLm1vZGVsKyImeWVhcj0iK2EueWVhcisiJmNiPSIrTWF0aC5mbG9vcig5OTk5OTk5Kk1hdGgucmFuZG9tKCkpOyQuYWpheCh7dXJsOnVyaSxhc3luYzohMSxzdWNjZXNzOmZ1bmN0aW9uKGMpe2M9Yy5zcGxpdCgifHx8Iik7InVuZGVmaW5lZCIhPXR5cGVvZiBjWzBdJiYwPGNbMF0ubGVuZ3RoJiYoYS5zZW5kVG89Y1swXSk7InVuZGVmaW5lZCIhPXR5cGVvZiBjWzFdJiYwPGNbMV0ubGVuZ3RoJiYoYS5zZW5kVG9BREZGb3JtYXQ9Y1sxXSl9fSl9LHByZVNlbmRJbXBsaWNpdDpmdW5jdGlvbigpe2lmKGEucGFydGlhbClyZXR1cm4hMTtqc29uT2JqZWN0PWEuZ2V0SnNvbk9iamVjdCgpO3ZhciBiPXtqc29uOkpTT04uc3RyaW5naWZ5KGpzb25PYmplY3QpLHBhcnRpYWw6ITB9OyQuYWpheCh7dHlwZToiUE9TVCIsCnVybDoiL21haWwvc2VuZE1haWxFeC5waHAiLGRhdGE6YixiZWZvcmVTZW5kOmZ1bmN0aW9uKGMpeyQoJ2lucHV0W25hbWU9ImxlYWRfZGVwYXJ0bWVudCJdJykudmFsKGpzb25PYmplY3QuZGVwYXJ0bWVudCk7JCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbChhLnN1YmplY3QucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7JCgnaW5wdXRbbmFtZT0icGFnZUlEIl0nKS52YWwoJCgiI1BBR0VJRCIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJjdXJyZW50VVJMIl0nKS52YWwod2luZG93LmxvY2F0aW9uLmhyZWYpOyQoJ2lucHV0W25hbWU9ImlzRnVsbFdpZHRoIl0nKS52YWwoJCgiI2lzRnVsbFdpZHRoUGFnZU5ld1ZEUCIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJkZWFsZXJOYW1lIl0nKS52YWwoJCgiI25ld1ZEUERlYWxlck5hbWUiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iaXNNb2JpbGVOZXdWRFAiXScpLnZhbCgkKCIjaXNtb2JpbGUiKS52YWwoKSk7CmMmJmMub3ZlcnJpZGVNaW1lVHlwZSYmYy5vdmVycmlkZU1pbWVUeXBlKCJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiKTt0cnl7bGV0IGQ9JCgibWV0YVtuYW1lPSdjc3JmLWRvbWFpbi1jaGVjayddIik7ZC5sZW5ndGgmJmMuc2V0UmVxdWVzdEhlYWRlcigiY3NyZi1kb21haW4tY2hlY2siLGQuYXR0cigiY29udGVudCIpKX1jYXRjaChkKXtjb25zb2xlLmVycm9yKGMpfX0sc3VjY2VzczpmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoYyl9LGVycm9yOmZ1bmN0aW9uKGMsZCxmKXthLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtU3VibWl0dGVkRW1haWxOb3RTZW50IixhLm1haWxJRCxhLnBvcHVwT2ZmZXJUeXBlKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoInByZVNlbmRJbXBsaWNpdCBmYWlsZWQiLGQsZil9fSl9LGxvZ0V2ZW50OmZ1bmN0aW9uKGIsYyl7Yz1jP2M6YS5tYWlsSUQ7aWYoIWJ8fCFjKXJldHVybiJ1bmRlZmluZWQiIT09CnR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGIsYyksITE7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50P2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYixjKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGIsYyl9LGJ1aWxkQ1JNS2V5OmZ1bmN0aW9uKCl7dmFyIGI9cGFyc2VJbnQoJCgiI3RvcHNpdGVpZCIpLnZhbCgpLDEwKSxjPWEuZ2V0VVVJRCgpLGQ9Z2V0Q29va2llKCJlbWFpbEZyb21BdXRvQW5zd2VyIik7aWYoIWlzTmFOKGIpJiYoIiIhPWR8fCIiIT1jKSYmIm51bWJlciI9PXR5cGVvZiBiJiYwPGIpe3ZhciBmPW5ldyBEYXRlLGg9Zi5nZXRNb250aCgpKzE7aD0kLmJhc2U2NC5lbmNvZGUoZi5nZXRGdWxsWWVhcigpKyItIisoMTA+aD8iMCIraDpoKSsKIi0iKygxMD5mLmdldERhdGUoKT8iMCIrZi5nZXREYXRlKCk6Zi5nZXREYXRlKCkpKTtmPWguc3Vic3RyKDAsOCk7aD1oLnN1YnN0cig4KTtyZXR1cm4gJC5iYXNlNjQuZW5jb2RlKGYrJC5iYXNlNjQuZW5jb2RlKGIrIjsiK2MrIjsiK2QpK2gpfXJldHVybiIifSxzZXRNYWtlTW9kZWxZZWFyRnJvbUxhc3RWaWV3ZWQ6ZnVuY3Rpb24oKXt2YXIgYj0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSxjPSQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSxkPSQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGImJiIiPT09YS5tYWtlJiYoYS5tYWtlPWIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGMmJiIiPT09YS5tb2RlbCYmKGEubW9kZWw9Yyk7InVuZGVmaW5lZCI9PT10eXBlb2YgZHx8IiIhPT1hLnllYXImJjAhPT1hLnllYXJ8fChhLnllYXI9ZCl9LGdldCByZWNhcHRjaGEoKXtyZXR1cm4gd2luZG93Lmdvb2dsZVJlY2FwdGNoYX0sc2FuaXRpemVIVE1MOmZ1bmN0aW9uKGIpe3JldHVybiBlbmNvZGVVUkkoYil9LApzaG91bGREaXNwbGF5UHVyY2hhc2VJbnRlbnRDb250YWN0OigpPT57aWYobnVsbD09PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50Iil8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpcmV0dXJuITE7bGV0IGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FzUHVyY2hhc2VJbnRlbnQgLnN0ZXBDb250YWN0IikuZGF0YXNldC5kZXBhcnRtZW50cztiPWIuc3BsaXQoIjsiKTtpZigtMTxiLmluZGV4T2YoYS5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkpKXJldHVybiEwO3ZhciBjPSJ1bmRlZmluZWQiIT10eXBlb2YgZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU\/ZG9jdW1lbnQubG9jYXRpb24ucGF0aG5hbWU6ZG9jdW1lbnQubG9jYXRpb24uaHJlZi5tYXRjaCgvW0Etel06XC9cL1teXC9dK1wvKFteXD9dKylcPz8uKi8pWzFdO2M9YS5zYW5pdGl6ZUhUTUwoYyk7CmxldCBkPU9iamVjdC52YWx1ZXMoT2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKHtuZXc6WyJuZXVmIiwibmV3Il0sdXNlZDpbIm9jY2FzaW9uIiwidXNlZCJdLHNlcnZpY2U6WyJzZXJ2aWNlIiwiZW50cmV0aWVuIiwibWFpbnRlbmFuY2UiLCJyZXBhaXIiXSxmaW5hbmNlOlsiZmluYW5jZW1lbnQiLCJmaW5hbmNlIiwiY3JlZGl0IiwibG9hbiJdfSkuZmlsdGVyKGY9PntbZl09ZjtyZXR1cm4tMTxiLmluZGV4T2YoZil9KSkpLmZsYXQoKTtyZXR1cm4obmV3IFJlZ0V4cCgiKCIrZC5qb2luKCJ8IikrIikiKSkudGVzdChjLnRvTG93ZXJDYXNlKCkpfX07alF1ZXJ5KGZ1bmN0aW9uKGIpe2I9anNfZDJjX2dldF92YWwoIklTVk0iKTt2YXIgYz1qc19kMmNfZ2V0X3ZhbCgiZmZkTDEiKSxkPWpzX2QyY19nZXRfdmFsKCJHUldMIikuc3BsaXQoIjsiKTthLmlnbm9yZUNhcHRjaGE9Ynx8LTEhPWQuaW5kZXhPZihjKTthLmlnbm9yZUNhcHRjaGF8fCh3aW5kb3cuZ29vZ2xlUmVjYXB0Y2hhPwphLnJlY2FwdGNoYS5pbml0KCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZ29vZ2xlUmVjYXB0Y2hhLnJlYWR5IixmdW5jdGlvbigpe2EucmVjYXB0Y2hhLmluaXQoKX0se29uY2U6ITB9KSl9KTthLnJlc2V0Q2FsbGJhY2tzKCk7YS5hc2tQdXJjaGFzZUludGVudD1mdW5jdGlvbihiKXt2YXIgYz0idW5kZWluZmVkIiE9dHlwZW9mIGIucGF0aG5hbWU\/Yi5wYXRobmFtZTpiLmhyZWYubWF0Y2goL1tBLXpdOlwvXC9bXlwvXStcLyhbXlw\/XSspXD8\/LiovKVsxXTt2YXIgZD1SZWdFeHAoIihkZW1vbnN0cmF0ZXVyc3xkZW1vfGxpcXVpZGF0aW9ufGNsZWFyYW5jZXxwcm9tb3Rpb25zfG5ldWZ8bmV3fG9jY2FzaW9ufHVzZWR8Y3JlZGl0fGZpbmFuY2VtZW50KSIpO2I9e2RlbW9uc3RyYXRldXJzOiJkZW1vIixjbGVhcmFuY2U6ImxpcXVpZGF0aW9uIiwibmV3IjoibmV1ZiIscHJvbW90aW9uczoicHJvbW8iLHVzZWQ6Im9jY2FzaW9uIixjcmVkaXQ6ImZpbmFuY2VtZW50In07cmV0dXJuIGQudGVzdChjLnRvTG93ZXJDYXNlKCkpPwooYz1jLm1hdGNoKGQpLG51bGwhPWMmJihhLnB1cmNoYXNlX2ludGVudF9zZWN0aW9uPSJ1bmRlZmluZWQiIT10eXBlb2YgYltjWzFdXT9iW2NbMV1dOmNbMV0pLCEwKTohMX0oZG9jdW1lbnQubG9jYXRpb24pO3JldHVybiBhfSgpLGVtYWlsVHJhY2tpbmc9ZnVuY3Rpb24oKXt2YXIgZT17YnJhbmQ6IiIsbW9kZWw6IiIseWVhcjoiIixpc3Byb21vOiExLGlzZXhwcmVzczohMSxpc2hvbWVwYWdlOiExLHNlY3Rpb246IiIsdGV4dENhclNlY3Rpb25UeXBlOiJVU0VEIixpc01vYmlsZU5ld1ZEUDohMSxpc0Z1bGxXaWR0aDohMSxidXR0b25Qb3NpdGlvbjoiIixkZWFsZXJOYW1lOiIifSxnPWZ1bmN0aW9uKGMpe3ZhciBkPVtdLGY9Yy5icmFuZD9jLmJyYW5kOmVtYWlsSGFuZGxlci5tYWtlLGg9Yy5tb2RlbD9jLm1vZGVsOmVtYWlsSGFuZGxlci5tb2RlbDtjPWMueWVhcj9jLnllYXI6ZW1haWxIYW5kbGVyLnllYXI7Zi5sZW5ndGgmJmQucHVzaChmKTtoLmxlbmd0aCYmZC5wdXNoKGgpO2MubGVuZ3RoJiYKZC5wdXNoKGMpO3JldHVybiBkLmpvaW4oIi0iKX0sbj1mdW5jdGlvbihjKXt2YXIgZD17ImhvbWVwYWdlLmh0bWwiOiJIb21lLVBhZ2UiLCJjb250YWN0dXMuaHRtbCI6IkNvbnRhY3RVcyIsIm5ld2NhcmRldGFpbC5odG1sIjoiTmV3LVZEUCIsIm5ld2NhcnMuaHRtbCI6Ik5ldy1TUlAiLCJidWlsZGFuZHByaWNlLmh0bWwiOiJOZXctQiZQIiwicmVzdW1lLWJ1aWxkYW5kcHJpY2UuaHRtbCI6Ik5ldy1CJlAtUmVzdW1lIiwiY29tcGFyZU5ld1ZlaGljbGVzLmh0bWwiOiJOZXctQ29tcGFyZSIsInVzZWRjYXJzLmh0bWwiOiJVc2VkLVNSUCIsImNhcmRldGFpbC5odG1sIjoiVXNlZC1WRFAiLCJjcmVkaXQuaHRtbCI6IkRlbWFuZGVzIC0gRmluYW5jZW1lbnQiLCJkZWFsZXJ0cmFjay5odG1sIjoiRGVtYW5kZXMgLSBGaW5hbmNlbWVudCIsInByb21vdGlvbi5odG1sIjoiUHJvbW90aW9ucyIsInByb21vdGlvbnNhbGVzLmh0bWwiOiJQcm9tb3Rpb25zIiwicHJvbW90aW9uc2VydmljZS5odG1sIjoiUHJvbW90aW9ucyIsCiJwYXJ0c1JlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUGnvv71jZXMiLCJzZXJ2aWNlcy5odG1sIjoiU2VydmljZSIsInNlcnZpY2VSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFJEViBTZXJ2aWNlIiwiYm9keVNob3AuaHRtbCI6IkRlbWFuZGVzIC0gUkRWIENhcm9zc2VyaWUiLCJ0aXJlc1JlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUG5ldXMiLCJvdXJ0ZWFtLmh0bWwiOiJUZWFtIiwidGVzdGRyaXZlLmh0bWwiOiJEZW1hbmRlcyAtIEVzc2Fpcy1Sb3V0aWVyLU9jY2FzaW9uIiwidGVzdGRyaXZlbmV3Lmh0bWwiOiJEZW1hbmRlcyAtIEVzc2Fpcy1Sb3V0aWVyLU5ldWYiLCJicm9jaHVyZXMuaHRtbCI6IkRlbWFuZGVzIC0gQnJvY2h1cmVzIiwiam9ib2ZmZXIuaHRtbCI6IkRlbWFuZGVzIC0gRW1wbG9pcyIsIm1ha2VvZmZlcm5ldy5odG1sIjoiRGVtYW5kZXMgLSBPZmZyZSAtIE5ldWYiLCJtYWtlb2ZmZXIuaHRtbCI6IkRlbWFuZGVzIC0gT2ZmcmUgLSBPY2Nhc2lvbiIsInByaWNlcmVxdWVzdG5ldy5odG1sIjoiRGVtYW5kZXMgLSBQcml4IC0gTmV1ZiIsCiJwcmljZXJlcXVlc3QuaHRtbCI6IkRlbWFuZGVzIC0gUHJpeCAtIE9jY2FzaW9uIiwiZmluZGNhci5odG1sIjoiRGVtYW5kZXMgLSBSZWNoZXJjaGUgT2NjYXNpb24iLCJ0cmFkZWlubmV3Lmh0bWwiOiJEZW1hbmRlcyAtIEVjaGFuZ2UgTmV1ZiIsInRyYWRlaW4uaHRtbCI6IkRlbWFuZGVzIC0gRWNoYW5nZSBPY2Nhc2lvbiJ9LGY9LTEhPShjLmN1cnJlbnRVUkx8fCIiKS5pbmRleE9mKCJzdGVwPXJlc3VtZSIpLGg9LTEhPShjLmN1cnJlbnRVUkx8fCIiKS5pbmRleE9mKCJzdGVwPW9wdGlvbnMiKTsiYnVpbGRhbmRwcmljZS5odG1sIj09Yy5wYWdlSUQmJihmfHxoKSYmKGMucGFnZUlEPSJyZXN1bWUtYnVpbGRhbmRwcmljZS5odG1sIik7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkW2MucGFnZUlEXT9kW2MucGFnZUlEXToiT3RoZXIifSxhPWZ1bmN0aW9uKGMpe3ZhciBkPSJEZW1hbmRlcyIsZj1jLmJyYW5kP2MuYnJhbmQ6ZW1haWxIYW5kbGVyLm1ha2UsaD1jLm1vZGVsP2MubW9kZWw6CmVtYWlsSGFuZGxlci5tb2RlbDtjLmlzcHJvbW8mJihkKz0iLVByb21vdGlvbiIpOzA8Zi5sZW5ndGgmJjA8aC5sZW5ndGgmJiFjLmlzaG9tZXBhZ2U\/ZD1jLmlzcHJvbW8\/ZCsoIi0iK2coYykpOmQrWyIiLGYsaCxjLnNlY3Rpb25dLmpvaW4oIi0iKTpjLmlzcHJvbW8mJmMuaXNob21lcGFnZSYmKGQrPSItSW5kZXgiKTsiMSI9PWMuaXNleHByZXNzJiYoYy50ZXh0Q2FyU2VjdGlvblR5cGUmJihkPSJEZW1hbmRlcy1FeHByZXNzIiksZCs9Ii0iK2coYyksZCs9Ii0iK2Muc2VjdGlvbik7cmV0dXJuIGR9LGI9ZnVuY3Rpb24oYyl7dmFyIGQ9MTIwMDx3aW5kb3cuc2NyZWVuLmF2YWlsV2lkdGg\/Ij4xMjAwcHggLSAiLmlzRnVsbFdpZHRoOiI8MTIwMHB4IC0gTm9ybWFsIFZEUCI7W2QsYy5idXR0b25Qb3NpdGlvbl0uam9pbigiLSIpO2M9W2MuZGVhbGVyTmFtZSxkLCJMZWFkIl0uam9pbigiLSIpO2dhVHJhY2soImMiLCJOZXctVkRQLURlc2t0b3AtTGF5b3V0LUNSIixhY3Rpb24sYywxKX07CnRoaXMudHJhY2s9ZnVuY3Rpb24oYyl7aWYoZ2V0Q29va2llKCJsZWFkU2VuZCIpKXJldHVybiBkZWJ1ZygibGVhZCBzZW50Iik7c2V0Q29va2llKCJsZWFkU2VuZCIsITAsMSk7Yz0kLmV4dGVuZCh7fSxlLGMpO2MuY3VycmVudFVSTD1jLmN1cnJlbnRVUkw\/Yy5jdXJyZW50VVJMOndpbmRvdy5sb2NhdGlvbi5ocmVmO2MuaXNwcm9tbz0iMSI9PWMuaXNwcm9tbztjLmlzaG9tZXBhZ2U9IjEiPT1jLmlzaG9tZXBhZ2U7dmFyIGQ9bihjKTtnYVRyYWNrKCIiLCJDb3VycmllbHMiLGMubGFiZWwsYShjKSwxKTtnYVRyYWNrKCJjIiwiQ291cnJpZWxzLWRlcHQiLGMuZGVwYXJ0bWVudCxnKGMpLDEpO2dhVHJhY2soImMiLCJDb3VycmllbHMtcGFnZSIsZCxjLmxlYWRUeXBlLDEpO2MuaXNNb2JpbGVOZXdWRFAmJiJOZXctVkRQIj09ZCYmYihjKTt0cnl7ZDJjX2dhQWNjb3VudHMuYWxsLm1hcChmdW5jdGlvbihmKXtndGFnKCJjb25maWciLGYse3BhZ2VfcGF0aDoiL2NvbmZpcm1hdGlvbi5odG1sIn0pfSksCmd0YWcoImNvbmZpZyIsIkctWjVROFo1QzdLRiIse3BhZ2VfcGF0aDoiL2NvbmZpcm1hdGlvbi5odG1sIn0pfWNhdGNoKGYpe2RlYnVnKGYpfX07cmV0dXJuIHRoaXN9KCksZ2V0TWFpbFNlbnRIYW5kbGVyPWZ1bmN0aW9uKGUpe3ZhciBnPXt0aW1lb3V0Q2FsbGJhY2s6bnVsbCx0aW1lb3V0Om51bGx9O2cuaWRUb0FkZD1lP2U6IiI7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuZGVmYXVsdFN1Y2Nlc3MiKS5zaG93KCk7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKS5maW5kKCIuc2VydmljZVN1Y2Nlc3MiKS5oaWRlKCk7JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UpLmxlbmd0aHx8KGU9IiIsZy5pZFRvQWRkPSIiLCJTRVJWSUNFIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQmJiJQQVJUUyIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50KXx8KCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLmRlZmF1bHRTdWNjZXNzIikuaGlkZSgpLCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLnNlcnZpY2VTdWNjZXNzIikuc2hvdygpKTsKZy5zaG93U3VjY2Vzcz1mdW5jdGlvbigpe2dldENvb2tpZSgicHJldmVudER1cGxpY2F0ZUNyZWRpdFNjb3JlIil8fGdldENvb2tpZSgiY3JlZGl0U2NvcmVDb25maXJtUG9wdXBTaG93biIpfHxnZXRDb29raWUoImNyZWRpdFNjb3JlRW1iZWRkZWRGaWxsZWQiKXx8IiIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJiIiIT1lbWFpbEhhbmRsZXIudXNlckFkZHJlc3MmJiIiIT1lbWFpbEhhbmRsZXIuYmlydGhkYXRlfHwibmV3IiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSYmInVzZWQiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpfHwhJCgiI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIikubGVuZ3RofHwiVHJhZGVJbkJhclBvcHVwQ29udGFpbmVyIj09ZW1haWxIYW5kbGVyLnBvcHVwZGl2PygkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkucGFyZW50KCkuaXMoImJvZHkiKXx8JCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiKwplKS5hcHBlbmRUbygiYm9keSIpLCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9KSwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSsiIC5jb25maXJtX3N1Y2Nlc3NDb250aW51ZSIpLm9uKCJjbGljayIsZy5jbG9zZVN1Y2Nlc3MpKTokKCIjY3JlZGl0U2NvcmVDb25maXJtUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigxKTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCk7JCgiI2VtYWlsbXNnZnJtIitnLmlkVG9BZGQpLnRyaWdnZXIoInN1Ym1pdCIpfTtnLmNsb3NlU3VjY2Vzcz1mdW5jdGlvbigpeyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitnLmlkVG9BZGQpLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO251bGwhPWcudGltZW91dENhbGxiYWNrJiYKZy50aW1lb3V0Q2FsbGJhY2soKTtyZXR1cm4hMX07Zy5zaG93RmFpbD1mdW5jdGlvbigpeyQoIiNlbWFpbEZhaWxNZXNzYWdlIitnLmlkVG9BZGQpLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsIn0pOyQoIiNlbWFpbEZhaWxNZXNzYWdlIitlKyIgLmNvbmZpcm1fZmFpbENvbnRpbnVlIikub24oImNsaWNrIixmdW5jdGlvbigpeyQoIiNlbWFpbEZhaWxNZXNzYWdlIitlKS50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pOyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKX07cmV0dXJuIGd9LG1haWxTZW50SGFuZGxlcj1uZXcgZ2V0TWFpbFNlbnRIYW5kbGVyKCIiKTsKZnVuY3Rpb24gc3RvcmFnZUF2YWlsYWJsZShlKXt0cnl7dmFyIGc9d2luZG93W2VdO2cuc2V0SXRlbSgiX19zdG9yYWdlX3Rlc3RfXyIsIl9fc3RvcmFnZV90ZXN0X18iKTtnLnJlbW92ZUl0ZW0oIl9fc3RvcmFnZV90ZXN0X18iKTtyZXR1cm4hMH1jYXRjaChuKXtyZXR1cm4gbiBpbnN0YW5jZW9mIERPTUV4Y2VwdGlvbiYmKDIyPT09bi5jb2RlfHwxMDE0PT09bi5jb2RlfHwiUXVvdGFFeGNlZWRlZEVycm9yIj09PW4ubmFtZXx8Ik5TX0VSUk9SX0RPTV9RVU9UQV9SRUFDSEVEIj09PW4ubmFtZSkmJmcmJjAhPT1nLmxlbmd0aH19CnZhciBmb3JtRmlsbD1mdW5jdGlvbigpe3ZhciBlPXRoaXMsZz1zdG9yYWdlQXZhaWxhYmxlKCJsb2NhbFN0b3JhZ2UiKSxuPW51bGwsYT0hMCxiPVtdLGM9e25hbWU6WyJpbnB1dC5uYW1lIiwnaW5wdXRbbmFtZT0ibmFtZSJdJ10scG9zdGFsOlsiaW5wdXQucG9zdGFsIiwnaW5wdXRbbmFtZT0icG9zdGFsIl0nXSxmaXJzdE5hbWU6J2lucHV0LmZpcnN0TmFtZSBpbnB1dC5maXJzdG5hbWUgaW5wdXRbbmFtZT0iZmlyc3RuYW1lIl0gaW5wdXRbbmFtZT0iZmlyc3ROYW1lIl0gaW5wdXQjZmlyc3RuYW1lIGlucHV0I2ZpcnN0TmFtZSBpbnB1dCNtaW5pX2ZuYW1lJy5zcGxpdCgiICIpLGxhc3ROYW1lOidpbnB1dC5sYXN0TmFtZSBpbnB1dC5sYXN0bmFtZSBpbnB1dFtuYW1lPSJsYXN0bmFtZSJdIGlucHV0W25hbWU9Imxhc3ROYW1lIl0gaW5wdXQjbGFzdG5hbWUgaW5wdXQjbGFzdE5hbWUgaW5wdXQjbWluaV9sbmFtZScuc3BsaXQoIiAiKSxwaG9uZTpbImlucHV0LnBob25lIiwnaW5wdXRbbmFtZT0icGhvbmUiXScsCidpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJywiaW5wdXQjbWluaV9waG9uZSIsJ1t0eXBlPSJ0ZWwiXSddLGVtYWlsOlsiaW5wdXQuZW1haWwiLCdpbnB1dFtuYW1lPSJlbWFpbCJdJywnaW5wdXRbbmFtZT0iZW1haWxBZGRyZXNzIl0nLCJpbnB1dCNtaW5pX2VtYWlsIl19LGQ9ZnVuY3Rpb24obCl7aWYoIWcpcmV0dXJuITE7dmFyIHE9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImZvcm1GaWxsRGF0YSIpO2lmKG51bGw9PT1xKXJldHVybiExOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvcHJveHlfc2QyYy9zZXJ2aWNlL2QyYy5lbmNyeXB0aW9uLmdldCIsZGF0YTp7ZGF0YTpxfX0pLmRvbmUoZnVuY3Rpb24odyl7aWYodyYmImZ1bmN0aW9uIj09PXR5cGVvZiBsKXRyeXtsKEpTT04ucGFyc2Uody5kYXRhKSl9Y2F0Y2gocCl7Y29uc29sZS5sb2cocCl9fSl9LGY9ZnVuY3Rpb24oKXthPSEwO249bnVsbDtiLmZvckVhY2goZnVuY3Rpb24obCl7bC5maWxsZWQ9ITF9KX0saD1mdW5jdGlvbihsKXt1KCJ1c2VyLmxvYWRlZCIsCmZ1bmN0aW9uKCl7aWYoIW0obCkpe2IucHVzaCh7c2NvcGU6bCxmaWxsZWQ6ITB9KTtmb3IodmFyIHEgaW4gYyluLmhhc093blByb3BlcnR5KHEpJiZsLmZpbmQoJChjW3FdLmpvaW4oIiwiKSkpLnZhbChuW3FdKTtrKCJmb3JtLmZpbGxlZCIpfX0pO251bGw9PT1uJiZhPyhhPSExLGQoZnVuY3Rpb24ocSl7cS5wb3N0YWw9cS5wb3N0YWwudG9VcHBlckNhc2UoKTtxLmZpcnN0TmFtZT1xLmZpcnN0TmFtZS50cmltKCk7cS5sYXN0TmFtZT1xLmxhc3ROYW1lLnRyaW0oKTtlbWFpbEhhbmRsZXIudXNlclBvc3RhbD1xLnBvc3RhbDtlbWFpbEhhbmRsZXIudXNlckVtYWlsPXEuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9cS5maXJzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1xLmxhc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9cS5waG9uZTtxLm5hbWU9KHEuZmlyc3ROYW1lKyIgIitxLmxhc3ROYW1lKS50cmltKCk7bj1xO2soInVzZXIubG9hZGVkIil9KSk6Cm4mJmsoInVzZXIubG9hZGVkIil9LG09ZnVuY3Rpb24obCl7cmV0dXJuKF9zY29wZT1iLmZpbmQoZnVuY3Rpb24ocSl7aWYocS5zY29wZS5pcyhsKSlyZXR1cm4gcX0pKT9fc2NvcGUuZmlsbGVkOiExfSxyPVtdLGs9ZnVuY3Rpb24obCl7dmFyIHE9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSk7aWYocltsXSl7dmFyIHc9cltsXS5zbGljZSgpO3ZhciBwPXcubGVuZ3RoO2ZvcihpPTA7aTxwO2krKyl3W2ldLmFwcGx5KHRoaXMscSl9fSx0PWZ1bmN0aW9uKGwscSl7cltsXXx8KHJbbF09W10pO3JbbF0ucHVzaChxKX0sdT1mdW5jdGlvbihsLHEpe3QobCxmdW5jdGlvbiBwKCl7cltsXS5zcGxpY2UocltsXS5pbmRleE9mKHApLDEpO3EuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9OyQoZnVuY3Rpb24oKXtnJiYoJChkb2N1bWVudCkub24oInBvcHVwaXplci5vbk9wZW4iLGZ1bmN0aW9uKGwscSl7bD1xLnRhcmdldD9xLnRhcmdldDokKHEpO2gobCl9KSwkKGRvY3VtZW50KS5vbigicG9wdXBpemVyLm9uQ2xvc2UiLApmdW5jdGlvbihsLHEpe30pLCQoImZvcm0iKS5lYWNoKGZ1bmN0aW9uKGwscSl7aCgkKHEpKX0pKX0pO3JldHVybiBlPXtzYXZlOmZ1bmN0aW9uKGwpe2lmKCFnKXJldHVybiExO24mJiIiPT09bC5wb3N0YWwmJihsLnBvc3RhbD1uLnBvc3RhbCk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Ii9wcm94eV9zZDJjL3NlcnZpY2UvZDJjLmVuY3J5cHRpb24uc2V0IixkYXRhOntkYXRhOkpTT04uc3RyaW5naWZ5KGwpfX0pLmRvbmUoZnVuY3Rpb24ocSl7cSYmKGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmb3JtRmlsbERhdGEiLHEuZGF0YSksZigpKX0pfX19KCk7Ci8qKiAvbS9qcy9qaGFzaHRhYmxlLmpzICoqLwp2YXIgX19fZDJjX2poYXNodGFibGVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA3OjA3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNToxOSI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMy0wMS0xMiAxMTozMzo0OSI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0MzozMyI7InVzZSBzdHJpY3QiO19fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0MDoxMyI7InVzZSBzdHJpY3QiOwp2YXIgSGFzaHRhYmxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdShhKXtpZigic3RyaW5nIj09dHlwZW9mIGEpcmV0dXJuIGE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuaGFzaENvZGUpcmV0dXJuIGE9YS5oYXNoQ29kZSgpLCJzdHJpbmciPT10eXBlb2YgYT9hOnUoYSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEudG9TdHJpbmcpcmV0dXJuIGEudG9TdHJpbmcoKTt0cnl7cmV0dXJuIFN0cmluZyhhKX1jYXRjaChjKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfX1mdW5jdGlvbiBCKGEsYyl7cmV0dXJuIGEuZXF1YWxzKGMpfWZ1bmN0aW9uIEMoYSxjKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgYy5lcXVhbHM\/Yy5lcXVhbHMoYSk6YT09PWN9ZnVuY3Rpb24gdihhKXtyZXR1cm4gZnVuY3Rpb24oYyl7aWYobnVsbD09PWMpdGhyb3cgRXJyb3IoIm51bGwgaXMgbm90IGEgdmFsaWQgIithKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGMpdGhyb3cgRXJyb3IoYSsKIiBtdXN0IG5vdCBiZSB1bmRlZmluZWQiKTt9fWZ1bmN0aW9uIHEoYSxjLGgsZCl7dGhpc1swXT1hO3RoaXMuZW50cmllcz1bXTt0aGlzLmFkZEVudHJ5KGMsaCk7bnVsbCE9PWQmJih0aGlzLmdldEVxdWFsaXR5RnVuY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gZH0pfWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2Zvcih2YXIgaD10aGlzLmVudHJpZXMubGVuZ3RoLGQsaz10aGlzLmdldEVxdWFsaXR5RnVuY3Rpb24oYyk7aC0tOylpZihkPXRoaXMuZW50cmllc1toXSxrKGMsZFswXSkpc3dpdGNoKGEpe2Nhc2UgMDpyZXR1cm4hMDtjYXNlIDE6cmV0dXJuIGQ7Y2FzZSAyOnJldHVybltoLGRbMV1dfXJldHVybiExfX1mdW5jdGlvbiB3KGEpe3JldHVybiBmdW5jdGlvbihjKXtmb3IodmFyIGg9Yy5sZW5ndGgsZD0wLGs9dGhpcy5lbnRyaWVzLmxlbmd0aDtkPGs7KytkKWNbaCtkXT10aGlzLmVudHJpZXNbZF1bYV19fWZ1bmN0aW9uIG0oYSxjKXtyZXR1cm4oYT1hW2NdKSYmCmEgaW5zdGFuY2VvZiBxP2E6bnVsbH1mdW5jdGlvbiB4KGEsYyl7dmFyIGg9dGhpcyxkPVtdLGs9e30sbj0iZnVuY3Rpb24iPT10eXBlb2YgYT9hOnUsRD0iZnVuY3Rpb24iPT10eXBlb2YgYz9jOm51bGw7dGhpcy5wdXQ9ZnVuY3Rpb24oYixlKXtwKGIpO3koZSk7dmFyIGY9bihiKSxnLGw9bnVsbDsoZz1tKGssZikpPyhmPWcuZ2V0RW50cnlGb3JLZXkoYikpPyhsPWZbMV0sZlsxXT1lKTpnLmFkZEVudHJ5KGIsZSk6KGc9bmV3IHEoZixiLGUsRCksZFtkLmxlbmd0aF09ZyxrW2ZdPWcpO3JldHVybiBsfTt0aGlzLmdldD1mdW5jdGlvbihiKXtwKGIpO3ZhciBlPW4oYik7aWYoZT1tKGssZSkpaWYoYj1lLmdldEVudHJ5Rm9yS2V5KGIpKXJldHVybiBiWzFdO3JldHVybiBudWxsfTt0aGlzLmNvbnRhaW5zS2V5PWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKTtyZXR1cm4oZT1tKGssZSkpP2UuY29udGFpbnNLZXkoYik6ITF9O3RoaXMuY29udGFpbnNWYWx1ZT1mdW5jdGlvbihiKXt5KGIpOwpmb3IodmFyIGU9ZC5sZW5ndGg7ZS0tOylpZihkW2VdLmNvbnRhaW5zVmFsdWUoYikpcmV0dXJuITA7cmV0dXJuITF9O3RoaXMuY2xlYXI9ZnVuY3Rpb24oKXtkLmxlbmd0aD0wO2s9e319O3RoaXMuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiFkLmxlbmd0aH07dmFyIHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBlPVtdLGY9ZC5sZW5ndGg7Zi0tOylkW2ZdW2JdKGUpO3JldHVybiBlfX07dGhpcy5rZXlzPXQoImtleXMiKTt0aGlzLnZhbHVlcz10KCJ2YWx1ZXMiKTt0aGlzLmVudHJpZXM9dCgiZ2V0RW50cmllcyIpO3RoaXMucmVtb3ZlPWZ1bmN0aW9uKGIpe3AoYik7dmFyIGU9bihiKSxmPW51bGwsZz1tKGssZSk7aWYoZyYmKGY9Zy5yZW1vdmVFbnRyeUZvcktleShiKSxudWxsIT09ZiYmIWcuZW50cmllcy5sZW5ndGgpKXthOntmb3IoYj1kLmxlbmd0aDtiLS07KWlmKGc9ZFtiXSxlPT09Z1swXSlicmVhayBhO2I9bnVsbH16KGQsYik7ZGVsZXRlIGtbZV19cmV0dXJuIGZ9Owp0aGlzLnNpemU9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MCxlPWQubGVuZ3RoO2UtLTspYis9ZFtlXS5lbnRyaWVzLmxlbmd0aDtyZXR1cm4gYn07dGhpcy5lYWNoPWZ1bmN0aW9uKGIpe2Zvcih2YXIgZT1oLmVudHJpZXMoKSxmPWUubGVuZ3RoLGc7Zi0tOylnPWVbZl0sYihnWzBdLGdbMV0pfTt0aGlzLnB1dEFsbD1mdW5jdGlvbihiLGUpe2I9Yi5lbnRyaWVzKCk7Zm9yKHZhciBmLGcsbCxBPWIubGVuZ3RoLEU9ImZ1bmN0aW9uIj09dHlwZW9mIGU7QS0tOylmPWJbQV0sZz1mWzBdLGY9ZlsxXSxFJiYobD1oLmdldChnKSkmJihmPWUoZyxsLGYpKSxoLnB1dChnLGYpfTt0aGlzLmNsb25lPWZ1bmN0aW9uKCl7dmFyIGI9bmV3IHgoYSxjKTtiLnB1dEFsbChoKTtyZXR1cm4gYn19dmFyIHo9ImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5LnByb3RvdHlwZS5zcGxpY2U\/ZnVuY3Rpb24oYSxjKXthLnNwbGljZShjLDEpfTpmdW5jdGlvbihhLGMpe3ZhciBoO2lmKGM9PT1hLmxlbmd0aC0xKWEubGVuZ3RoPQpjO2Vsc2V7dmFyIGQ9YS5zbGljZShjKzEpO2EubGVuZ3RoPWM7dmFyIGs9MDtmb3IoaD1kLmxlbmd0aDtrPGg7KytrKWFbYytrXT1kW2tdfX0scD12KCJrZXkiKSx5PXYoInZhbHVlIik7cS5wcm90b3R5cGU9e2dldEVxdWFsaXR5RnVuY3Rpb246ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGEuZXF1YWxzP0I6Q30sZ2V0RW50cnlGb3JLZXk6cigxKSxnZXRFbnRyeUFuZEluZGV4Rm9yS2V5OnIoMikscmVtb3ZlRW50cnlGb3JLZXk6ZnVuY3Rpb24oYSl7cmV0dXJuKGE9dGhpcy5nZXRFbnRyeUFuZEluZGV4Rm9yS2V5KGEpKT8oeih0aGlzLmVudHJpZXMsYVswXSksYVsxXSk6bnVsbH0sYWRkRW50cnk6ZnVuY3Rpb24oYSxjKXt0aGlzLmVudHJpZXNbdGhpcy5lbnRyaWVzLmxlbmd0aF09W2EsY119LGtleXM6dygwKSx2YWx1ZXM6dygxKSxnZXRFbnRyaWVzOmZ1bmN0aW9uKGEpe2Zvcih2YXIgYz1hLmxlbmd0aCxoPTAsZD10aGlzLmVudHJpZXMubGVuZ3RoO2g8ZDsrK2gpYVtjKwpoXT10aGlzLmVudHJpZXNbaF0uc2xpY2UoMCl9LGNvbnRhaW5zS2V5OnIoMCksY29udGFpbnNWYWx1ZTpmdW5jdGlvbihhKXtmb3IodmFyIGM9dGhpcy5lbnRyaWVzLmxlbmd0aDtjLS07KWlmKGE9PT10aGlzLmVudHJpZXNbY11bMV0pcmV0dXJuITA7cmV0dXJuITF9fTtyZXR1cm4geH0oKTsKLyoqIC9tL2pzL25ld2NhcnMuanMgKiovCnZhciBfX19kMmNfbmV3Y2Fyc2pzX2Nfb249IjIwMjYtMDYtMTIgMTI6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGUpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWUudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGU9YVtiXTtpZihlJiZlLk1hdGg9PU1hdGgpcmV0dXJuIGV9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBlPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWUpcmV0dXJuIGFbYl07ZT1hW2VdO3JldHVybiB2b2lkIDAhPT1lP2U6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsZSxnKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGUsZyk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGUsZykpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGUsZyl7ZT0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZz0wO2c8YS5sZW5ndGgtMTtnKyspe3ZhciBoPWFbZ107aWYoIShoIGluIGUpKXJldHVybjtlPWVbaF19YT1hW2EubGVuZ3RoLTFdO2c9ZVthXTtiPWIoZyk7YiE9ZyYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShlLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGUsZyl7dmFyIGg9YS5zcGxpdCgiLiIpO2E9MT09PWgubGVuZ3RoO2c9aFswXTtnPSFhJiZnIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgbj0wO248aC5sZW5ndGgtMTtuKyspe3ZhciB0PWhbbl07aWYoISh0IGluIGcpKXJldHVybjtnPWdbdF19aD1oW2gubGVuZ3RoLTFdO2U9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWU\/Z1toXTpudWxsO2I9YihlKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWUmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSYmKGU9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGgpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2UrIiQiK2gpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZywkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChlKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGU9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZSk7aWYoZS5kb25lKXRoaXMueWllbGRSZXN1bHQ9ZS52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoZS52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsZSl7ZT90aGlzLmZpbmFsbHlDb250ZXh0c19bZV09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGUpe3JldHVybnt2YWx1ZTplLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixlKXt0cnl7dmFyIGc9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZyk7aWYoIWcuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGc7dmFyIGg9Zy52YWx1ZX1jYXRjaChuKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKG4pLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2UuY2FsbCh0aGlzLmNvbnRleHRfLGgpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGcpe3JldHVybiBhLm5leHQoZyl9ZnVuY3Rpb24gZShnKXtyZXR1cm4gYS50aHJvdyhnKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZyxoKXtmdW5jdGlvbiBuKHQpe3QuZG9uZT9nKHQudmFsdWUpOlByb21pc2UucmVzb2x2ZSh0LnZhbHVlKS50aGVuKGIsZSkudGhlbihuLGgpfW4oYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpsZXQgJGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDA7Cm5ld0NhcnM9e2lzTW9iaWxlOiIxIj09PShudWxsPT0oJGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlzTW9iaWxlIikpP3ZvaWQgMDokanNjb21wJG9wdGNoYWluJHRtcDE5MzczODk4NTkkMC52YWx1ZSksY29udGFpbmVyOmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXdjYXJDb250YWluZXIiKSxyZXNpemVNYWluV2luZG93OmZ1bmN0aW9uKCl7aWYoIW5ld0NhcnMuaXNNb2JpbGUpe3ZhciBhPSQoIiNyaWdodFNpZGUiKS5oZWlnaHQoKS0zNSxiPSQoIiNuZXdjYXJDb250YWluZXIiKS5oZWlnaHQoKTshaXNOYU4oYSkmJiFpc05hTihiKSYmYT5iJiYoJCgiI25ld2NhckNvbnRhaW5lciIpLmhlaWdodChhKSwkKCIjZm9vdGVyRGl2IikuY3NzKCJwYWRkaW5nIiwiMHB4IikpfX0sc2V0UGF5bWVudFRvb2x0aXBzOigpPT57bmV3Q2Fycy5pc01vYmlsZT8kKCIuZGl2Q2Fyc0JveFdyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXIgLnBheW1lbnRJbmZvQnViYmxlIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGE9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKTsKJCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDphLGdyYXZpdHk6ImVhc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiY2xpY2siLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGIpe319KX0pOiQoIi5kaXZDYXJzQm94V3JhcHBlciIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmZpbmQoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGEpe3RyeXtpZigkKHRoaXMpLmRhdGEoInRvb2x0aXBDcmVhdGVkIikpcmV0dXJuITE7JCh0aGlzKS5kYXRhKCJ0b29sdGlwQ3JlYXRlZCIsMSk7JCh0aGlzKS5maW5kKCIuZGl2Q2FyUGF5bWVudENvbnRhaW5lclRvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToid2VzdCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goYil7fX0pfSl9LG5ld0NhcnNGaWx0ZXI6KCk9PntmdW5jdGlvbiBhKCl7dmFyIGM9JCgiLmRpdkNhdGVnb3J5Qm94V3JhcHBlciIpLm1hcChmdW5jdGlvbihkLApmKXtyZXR1cm4gcGFyc2VJbnQoJChmKS5hdHRyKCJuYlZpc2libGUiKSl9KS5nZXQoKS5yZWR1Y2UoZnVuY3Rpb24oZCxmKXtyZXR1cm4gZCtmfSwwKTtyZXR1cm57ZmlsdGVyczp7c3RhdHVzOiJOZXciLGJvZHlTdHlsZTokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmNhdGVnb3J5IikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikudmFsKCl9KS5nZXQoKSxmdWVsVHlwZTokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmZ1ZWx0eXBlIikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikuZGF0YSgiZXNzZW5jZSIpfSkuZ2V0KCksZHJpdmVUcmFpbjokKCJpbnB1dDpjaGVja2VkLmZpbHRlckNoZWNrLmRyaXZldHJhaW4iKS5tYXAoZnVuY3Rpb24oZCxmKXtyZXR1cm4gJChmKS5kYXRhKCJkcml2ZXRyYWluIil9KS5nZXQoKSxtYXhQcmljZTpwLm1heCxtaW5QcmljZTpwLm1pbn0sdmVoaWNsZUNvdW50OmN9fXZhciBiPSExO3RyeXsidW5kZWZpbmVkIj09alF1ZXJ5LmJyb3dzZXIubXNpZT8KYj0hMDo5PD1wYXJzZUludChqUXVlcnkuYnJvd3Nlci52ZXJzaW9uLDEwKSYmKGI9ITApfWNhdGNoKGMpe31pZigidW5kZWZpbmVkIj09dHlwZW9mIGJveEJsb2Nrc3x8MT5ib3hCbG9ja3MubGVuZ3RoKWI9ITE7LTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY2FtaW9ucy1jb21tZXJjaWF1eCIpJiYoYj0hMSk7aWYoYil7dmFyIGU9bmV3Q2Fycy5nZXRGaWx0ZXIoKTtiPWdldFVybFZhcnMoKTt2YXIgZz1iLmhhc093blByb3BlcnR5KCJib2R5IiksaD1iLmhhc093blByb3BlcnR5KCJmdWVsIik7bmV3Q2Fycy5jb250YWluZXIucXVlcnlTZWxlY3RvckFsbCgiLmZpbHRlckNoZWNrIikuZm9yRWFjaChjPT57ZyYmYy5jbGFzc0xpc3QuY29udGFpbnMoImNhdGVnb3J5Iil8fGgmJmMuY2xhc3NMaXN0LmNvbnRhaW5zKCJmdWVsdHlwZSIpfHwoYy5jaGVja2VkPSFlLmhhc093blByb3BlcnR5KGMuaWQpfHwhMD09PWVbYy5pZF0pfSk7JCgiI2ZpbHRlck1haW5Cb3giKS5zaG93KCk7CmZvcih2YXIgbiBpbiBib3hCbG9ja3Mpe2I9MDtmb3IodmFyIHQgaW4gYm94QmxvY2tzW25dKWIrKzskKCIjY2xhc3MiK24rIl9jb250YWluZXIiKS5hdHRyKCJuYlZpc2libGUiLGIpfSQoIi5maWx0ZXJDaGVjayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYz0kKHRoaXMpO25ld0NhcnMuc2V0RmlsdGVyKGMuYXR0cigiaWQiKSxjLmlzKCI6Y2hlY2tlZCIpKTtzZXRUaW1lb3V0KHgsMTAwKTtpZihjLmhhc0NsYXNzKCJjYXRlZ29yeSIpKXt2YXIgZD1jLnZhbCgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtCKGQpfSwxMDApfX0pOyQoIi5yYWRpb1NvcnQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7QygkKHRoaXMpLnZhbCgpKX0pOyQoIi5maWx0ZXJTcGFuIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBjPSQodGhpcyk7bmV3Q2Fycy5zZXRGaWx0ZXIoImZpbHRlclNwYW4iLGMuYXR0cigicmVsIikpO2M9IiMiK2MuYXR0cigicmVsIik7JChjKS50cmlnZ2VyKCJjbGljayIpfSk7CnZhciB5PSIiLHc9IiIsRz1mdW5jdGlvbihjLGQpe3JldHVybiBjLmNvbnNvPT1kLmNvbnNvPzA6Yy5jb25zbz5kLmNvbnNvPzE6LTF9LEg9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jb25zbz09ZC5jb25zbz8wOmMuY29uc28+ZC5jb25zbz8tMToxfSxJPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMucHJpY2U9PWQucHJpY2U\/MDpjLnByaWNlPmQucHJpY2U\/MTotMX0sSj1mdW5jdGlvbihjLGQpe3JldHVybiBjLnByaWNlPT1kLnByaWNlPzA6Yy5wcmljZT5kLnByaWNlPy0xOjF9LEs9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jYXJNb2RlbD09ZC5jYXJNb2RlbD9jLnllYXI+ZC55ZWFyPy0xOmMueWVhcjxkLnllYXI\/MTowOmMuY2FyTW9kZWw+ZC5jYXJNb2RlbD8xOi0xfSxDPWZ1bmN0aW9uKGMsZCl7dz0idW5kZWZpbmVkIiE9PXR5cGVvZiBkP2Q6eT09Yz8iQXNjIj09dz8iRGVzYyI6IkFzYyI6IkFzYyI7eT1jO25ld0NhcnMuc2V0RmlsdGVyKCJzb3J0QnkiLHkpO25ld0NhcnMuc2V0RmlsdGVyKCJzb3J0RGlyIiwKdyk7Zm9yKHZhciBmIGluIGJveEJsb2Nrcyl7Yz0xO2Q9W107Zm9yKHZhciBtIGluIGJveEJsb2Nrc1tmXSl7dmFyIGw9Ym94QmxvY2tzW2ZdW21dO2wudmlzaWJsZSYmKGRbZC5sZW5ndGhdPWwpfXN3aXRjaCh5KXtjYXNlICJwcmljZSI6IkFzYyI9PXc\/ZC5zb3J0KEkpOmQuc29ydChKKTticmVhaztjYXNlICJtb2RlbCI6ZC5zb3J0KEspO2JyZWFrO2Nhc2UgImNvbnNvIjoiQXNjIj09dz9kLnNvcnQoRyk6ZC5zb3J0KEgpfWQuc29ydChmdW5jdGlvbihrLHUpe3JldHVybiBrLnNwZWNpYWxPcmRlcj09dS5zcGVjaWFsT3JkZXI\/MDprLnNwZWNpYWxPcmRlcj51LnNwZWNpYWxPcmRlcj8xOi0xfSk7Zm9yKGw9MDtsPGQubGVuZ3RoO2wrKylkW2xdLnZpc2libGUmJihkW2xdLnBvc2l0aW9uIT1sKzEmJihkW2xdLnBvc2l0aW9uPWwrMSxBKGYsImZieF8iK2YrIl8iK2RbbF0uaWQsIm1vdmUiLGwrMSkpLGMrKyl9fSxMPWZ1bmN0aW9uKCl7Zm9yKHZhciBjIGluIGJveEJsb2Nrcyl7dmFyIGQ9CjEsZjtmb3IoZiBpbiBib3hCbG9ja3NbY10pe3ZhciBtPWJveEJsb2Nrc1tjXVtmXTttLnZpc2libGUmJm0ucG9zaXRpb24hPWQmJihtLnBvc2l0aW9uPWQsQShjLGYsIm1vdmUiLGQpKTtBKGMsZixtLnZpc2libGU\/InNob3ciOiJoaWRlIik7bS52aXNpYmxlJiZkKyt9JCgiI2NsYXNzIitjKyJfY29udGFpbmVyIikuYXR0cigibmJWaXNpYmxlIixkLTEpfX0sRD1mdW5jdGlvbihjLGQpe2Zvcih2YXIgZj0wLG09MTttPGQ7bSsrKXt2YXIgbD0kKCIjIitjK20pOzA8bC5sZW5ndGgmJmwucHJvcCgiY2hlY2tlZCIpJiYoZis9TWF0aC5wb3coMixtLTEpKX1yZXR1cm4gZn0seD1mdW5jdGlvbigpe3ZhciBjPUQoImZpbHRlckVzc2VuY2VDaGVjayIsNiksZD1EKCJmaWx0ZXJEcml2ZVRyYWluQ2hlY2siLDQpLGY9W10sbT1bXTskKCIuZmlsdGVyQ2hlY2suY2F0ZWdvcnkiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKSYmZi5wdXNoKCQodGhpcykudmFsKCkpfSk7dmFyIGw9CiExOzA8JCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5sZW5ndGgmJigkKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpJiZtLnB1c2goJCh0aGlzKS52YWwoKSl9KSxsPSEwKTtmb3IodmFyIGsgaW4gYm94QmxvY2tzKXt2YXIgdT0wLHE7Zm9yKHEgaW4gYm94QmxvY2tzW2tdKXt2YXIgTT1wYXJzZUludChib3hCbG9ja3Nba11bcV0uZnVlbCwxMCksdj0hMTt2PSh2PSh2PSh2PSh2PSEocGFyc2VJbnQoYm94QmxvY2tzW2tdW3FdLmRyaXZldHJhaW4sMTApJmQpKXx8IShNJmMpKXx8ISghYm94QmxvY2tzW2tdW3FdLmNhckNhdGVnb3J5fHwtMTwkLmluQXJyYXkoYm94QmxvY2tzW2tdW3FdLmNhckNhdGVnb3J5LGYpKSl8fCEoITE9PT1sfHwtMTwkLmluQXJyYXkoYm94QmxvY2tzW2tdW3FdLmNhck1ha2UsbSkmJmwpKXx8ISgwPT1ib3hCbG9ja3Nba11bcV0ucHJpY2V8fGJveEJsb2Nrc1trXVtxXS5wcmljZTw9cC5tYXgmJgpib3hCbG9ja3Nba11bcV0ucHJpY2U+PXAubWluKTtib3hCbG9ja3Nba11bcV0udmlzaWJsZT0hdjtib3hCbG9ja3Nba11bcV0udmlzaWJsZSYmdSsrfSQoIiNjbGFzcyIraysiX2NvbnRhaW5lciIpLmF0dHIoIm5iVmlzaWJsZSIsdSk7QihrKX1MKCk7IjEiPT09JCgiYm9keSIpLmRhdGEoImZpbHRlcnM6bG9hZCIpJiYkKCJib2R5IikudHJpZ2dlcigkLmV4dGVuZCh7dHlwZToiZmlsdGVyczpjaGFuZ2UifSxhKCkpKX0sQj1mdW5jdGlvbihjKXt2YXIgZD0kKCIjY2xhc3MiK2MrIl9jb250YWluZXIiKTtpZigwPGQubGVuZ3RoKXt2YXIgZj0kKCIjc2hvd0NsYXNzXyIrYyk7MD09PWYubGVuZ3RoJiYoZj0kKCdpbnB1dFtkYXRhLWVzc2VuY2U9IicrYysnIl0nKSk7Zj0wPT09Zi5sZW5ndGg\/ITA6Zi5pcygiOmNoZWNrZWQiKTswPHBhcnNlSW50KGQuYXR0cigibmJWaXNpYmxlIiksMTApPyhmJiYoZC5hdHRyKCJzdGF0ZSIsIm9wZW4iKSxkLmZhZGVJbig2MDApLG5ld0NhcnMuaXNNb2JpbGV8fAooZj1NYXRoLmNlaWwocGFyc2VJbnQoZC5hdHRyKCJuYlZpc2libGUiKSwxMCkvMyksJCgiLkNMQVNTXyIrYykuYW5pbWF0ZSh7aGVpZ2h0OnIuaGVpZ2h0KmYrInB4In0sNjAwKSksZj0hMCksZnx8RShkKSk6RShkKX19LEU9ZnVuY3Rpb24oYyl7Yy5hdHRyKCJzdGF0ZSIsImNsb3NlIik7Yy5mYWRlT3V0KDYwMCk7cmV0dXJuITB9LEE9ZnVuY3Rpb24oYyxkLGYsbSxsKXtpZigiaGlkZSI9PWYpJCgiIyIrZCkuYW5pbWF0ZSh7b3BhY2l0eTowfSw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoImlzLWJveC12aXNpYmxlIiwwKS5jc3MoInZpc2liaWxpdHkiLCJoaWRkZW4iKX0pLGJveEJsb2Nrc1tjXVtkXS52aXNpYmxlPSExLHNpdGVQYWdlLmlzTW9iaWxlJiYobmV3Q2Fycy5jb250YWluZXIucXVlcnlTZWxlY3RvcihgIyR7ZH1gKS5oaWRkZW49ITApO2Vsc2UgaWYoInNob3ciPT1mKSQoIiMiK2QpLmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKS5hbmltYXRlKHtvcGFjaXR5OjF9LAo2MDAsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoImlzLWJveC12aXNpYmxlIiwxKX0pLGJveEJsb2Nrc1tjXVtkXS52aXNpYmxlPSEwLHNpdGVQYWdlLmlzTW9iaWxlJiYobmV3Q2Fycy5jb250YWluZXIucXVlcnlTZWxlY3RvcihgIyR7ZH1gKS5oaWRkZW49ITEpO2Vsc2UgaWYoIXNpdGVQYWdlLmlzTW9iaWxlKXt2YXIgaz0kKCIuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIiKS53aWR0aCgpO2M9TWF0aC5mbG9vcihrL3Iud2lkdGgpO2Y9Ym94UG9zaXRpb25zW2RdO2s9TWF0aC5mbG9vcihrL2MpO2M9e2xlZnQ6Iis9IisoKG0tMSklYyprLShmLTEpJWMqaykrInB4Iix0b3A6Iis9IisoTWF0aC5mbG9vcigobS0xKS9jKSpyLmhlaWdodC1NYXRoLmZsb29yKChmLTEpL2MpKnIuaGVpZ2h0KSsicHgifTt2b2lkIDA9PWw\/JCgiIyIrZCkuYWRkQ2xhc3MoIk1vdmluZ0JveCIpLmFuaW1hdGUoYyw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJNb3ZpbmdCb3giKX0pOiQoIiMiKwpkKS5hZGRDbGFzcygiTW92aW5nQm94IikuYW5pbWF0ZShjLDYwMCxmdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoIk1vdmluZ0JveCIpO2V2YWwobCl9KTtib3hQb3NpdGlvbnNbZF09bX19LEY9ZnVuY3Rpb24oKXt2YXIgYz17d2lkdGg6MCxoZWlnaHQ6MH07JCgnLmRpdkNhclNpbmdsZU91dGVyQm94W2lzLWJveC12aXNpYmxlPSIxIl06Zmlyc3QnKS5lYWNoKGZ1bmN0aW9uKCl7Yy53aWR0aD0kKHRoaXMpLm91dGVyV2lkdGgoITApO2MuaGVpZ2h0PSQodGhpcykub3V0ZXJIZWlnaHQoITApfSk7cmV0dXJuIGN9LHo9OTYwOyQoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpLmF0dHIoImlzLWJveC12aXNpYmxlIiwxKTt2YXIgcj1GKCk7MDwkKCJCT0RZLmlzRnVsbFdpZHRoUGFnZSIpLmxlbmd0aCYmMDwkKCJCT0RZLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQiKS5sZW5ndGgmJigxMzAwPHdpbmRvdy5pbm5lcldpZHRoJiYoej0xMjAwKSwkKHdpbmRvdykub24oInJlc2l6ZSIsZnVuY3Rpb24oKXt2YXIgYz0Kejt6PTEzMDA8d2luZG93LmlubmVyV2lkdGg\/MTIwMDo5NjA7YyE9eiYmc2V0VGltZW91dChmdW5jdGlvbigpe04oKX0pfSkpO3ZhciBOPWZ1bmN0aW9uKCl7dmFyIGM9cjtyPUYoKTskKCIuZGl2Q2Fyc0JveFdyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9MDskKHRoaXMpLmZpbmQoIi5kaXZDYXJTaW5nbGVPdXRlckJveCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZj1wYXJzZUludCgkKHRoaXMpLmNzcygidG9wIikpLG09cGFyc2VJbnQoJCh0aGlzKS5jc3MoImxlZnQiKSk7MD09PWYmJjA9PT1tfHwkKHRoaXMpLmNzcyh7dG9wOnIuaGVpZ2h0KihmL3BhcnNlSW50KGMuaGVpZ2h0KSkrInB4In0pLmNzcyh7bGVmdDpyLndpZHRoKihtL3BhcnNlSW50KGMud2lkdGgpKSsicHgifSk7MT09PXBhcnNlSW50KCQodGhpcykuYXR0cigiaXMtYm94LXZpc2libGUiKSkmJmQrK30pO2QmJiQodGhpcykuY3NzKHtoZWlnaHQ6TWF0aC5mbG9vcihkLzMpKnIuaGVpZ2h0KyhkJTM\/ci5oZWlnaHQ6CjApKyJweCJ9KX0pfSxwPXttaW46MCxtYXg6MUU2fTsoZnVuY3Rpb24oKXt2YXIgYz0kKCIjcHJpY2VSYW5nZVNsaWRlckZpbHRlckNvbnRhaW5lciIpO2lmKDA8Yy5sZW5ndGgpe3ZhciBkPWMuZmluZCgiZGl2LnJhbmdlLXNsaWRlciIpO2lmKDA8ZC5sZW5ndGgpe3ZhciBmPW51bGwsbT1mdW5jdGlvbihsLGspe3A9e21pbjpEMkNVdGlscy5OdW1iZXIucm91bmREb3duKGsudmFsdWVzWzBdLDFFMyksbWF4OkQyQ1V0aWxzLk51bWJlci5yb3VuZFVwKGsudmFsdWVzWzFdLDFFMyl9O251bGwhPT1sJiZuZXdDYXJzLnNldEZpbHRlcigic2V0U2hvd2VkVmFsdWVzIixwLm1pbisiOiIrcC5tYXgpO2MuZmluZCgic3Bhbi5wcmljZS1taW4iKS50ZXh0KHAubWluLnRvTG9jYWxlU3RyaW5nKCkpO2MuZmluZCgic3Bhbi5wcmljZS1tYXgiKS50ZXh0KHAubWF4LnRvTG9jYWxlU3RyaW5nKCkpO2NsZWFyVGltZW91dChmKTtmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt4KCl9LDUwMCl9O3A9e21pbjpEMkNVdGlscy5OdW1iZXIucm91bmREb3duKGQuYXR0cigiYXR0ci1wcmljZS1taW4iKSksCm1heDpEMkNVdGlscy5OdW1iZXIucm91bmREb3duKGQuYXR0cigiYXR0ci1wcmljZS1tYXgiKSl9O2Quc2xpZGVyKHtyYW5nZTohMCxtaW46cC5taW4sbWF4OnAubWF4LHNsaWRlOm0sY2hhbmdlOm0sY3JlYXRlOmZ1bmN0aW9uKGwsayl7bD1uZXdDYXJzLmdldEZpbHRlcigpO2s9W3AubWluLHAubWF4XTsic3RyaW5nIj09PXR5cGVvZiBsLnNldFNob3dlZFZhbHVlcyYmKGs9bC5zZXRTaG93ZWRWYWx1ZXMuc3BsaXQoIjoiKSk7ZC5zbGlkZXIoInZhbHVlcyIsayk7bShudWxsLHt2YWx1ZXM6a30pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCJib2R5IikudHJpZ2dlcigkLmV4dGVuZCh7dHlwZToiZmlsdGVyczpsb2FkIn0sYSgpKSl9LDNFMyl9fSl9fX0pKCk7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBjPSQoIiNzb3J0QnkiKTt2YXIgZD0kKCIjc29ydERpciIpLGY9Im1vZGVsIjt2YXIgbT0iQXNjIjt2YXIgbD17bW9kZWw6InJhZGlvTW9kbGUiLHByaWNlOiJyYWRpb1ByaWNlIiwKY29uc286InJhZGlvQ29uc28ifTtjLmxlbmd0aCYmZC5sZW5ndGgmJihmPWMudmFsKCksbT1kLnZhbCgpKTtlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBsW2Uuc29ydEJ5XT8oYz1lLnNvcnRCeSxtPWUuc29ydERpcik6Yz1mO3RyeXt2YXIgaz0kKCIjIitsW2NdKTtrLmxlbmd0aCYmay5wcm9wKCJjaGVja2VkIiwiY2hlY2tlZCIpO0MoYyxtKX1jYXRjaCh1KXt9fSw1MDApO2lmKCQoIiN0b2dnbGVGaWx0ZXJCdG4iKS5sZW5ndGgpJCgiI3RvZ2dsZUZpbHRlckJ0biIpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKCl7JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikubGVuZ3RoJiYoJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikuaGFzQ2xhc3MoIm9wZW4iKT8kKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5yZW1vdmVDbGFzcygib3BlbiIpOiQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmFkZENsYXNzKCJvcGVuIikpfSk7aWYoJCgiI2Nsb3NlU2lkZWJhckJ0biIpLmxlbmd0aCkkKCIjY2xvc2VTaWRlYmFyQnRuIikub24oImNsaWNrIHRhcCIsCmZ1bmN0aW9uKCl7JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikubGVuZ3RoJiYkKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5oYXNDbGFzcygib3BlbiIpJiYkKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5yZW1vdmVDbGFzcygib3BlbiIpfSk7JCgiLnNlbGVjdFRvZ2dsZVdyYXBwZXJDYXJNYWtlIikubGVuZ3RoJiYoJCgiI3NlbGVjdEFsbEJ0bkNhck1ha2UiKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikucHJvcCgiY2hlY2tlZCIsITApO3NldFRpbWVvdXQoeCwxMDApfSksJCgiI3Vuc2VsZWN0QWxsQnRuQ2FyTWFrZSIpLm9uKCJjbGljayB0YXAiLGZ1bmN0aW9uKCl7JCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5wcm9wKCJjaGVja2VkIiwhMSk7c2V0VGltZW91dCh4LDEwMCl9KSl9fSxzZXRGaWx0ZXI6KGEsYik9Pnt2YXIgZT17fSxnPV9sb2NhbFN0b3JhZ2VHZXQoIm5ld1N2cEZpbHRlciIpO251bGwhPWcmJiJvYmplY3QiIT10eXBlb2YgZyYmCihlPUpTT04ucGFyc2UoZykpO2c9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO3ZvaWQgMD09ZVtnXSYmKGVbZ109e30pO2VbZ11bYV09YjtfbG9jYWxTdG9yYWdlU2V0KCJuZXdTdnBGaWx0ZXIiLEpTT04uc3RyaW5naWZ5KGUpKX0sZ2V0RmlsdGVyOigpPT57bGV0IGE9ITE7dmFyIGI9X2xvY2FsU3RvcmFnZUdldCgibmV3U3ZwRmlsdGVyIik7bGV0IGU9e307bnVsbCE9YiYmIm9iamVjdCIhPXR5cGVvZiBiJiYoZT1KU09OLnBhcnNlKGIpKTtiPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTt2b2lkIDAhPWVbYl0mJihhPWVbYl0pO3JldHVybiBhfSxzZXRQcmljZVRvb2xUaXBzOigpPT57bmV3Q2Fycy5pc01vYmlsZXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIikuZm9yRWFjaChhPT57bGV0IGI9YS5kYXRhc2V0LnRvb2x0aXA7JChhKS5kYXJrVG9vbHRpcCh7Y29udGVudDpiLGdyYXZpdHk6Indlc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLAphbmltYXRpb246ImZsaXBJbiJ9KX0pfSxzZXRFdmVudHM6KCk9PntuZXdDYXJzLmlzTW9iaWxlfHwoJCgiaW1nW2Vycm9yaW1nXSIpLm9uKCJlcnJvciIsZnVuY3Rpb24oKXt0aGlzLnNyYz0kKHRoaXMpLmF0dHIoImVycm9yaW1nIil9KSwkKCJpbWdbbXVsdGlpbWc9dHJ1ZV0iKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5vbigibW91c2VvdmVyIixmdW5jdGlvbigpeyQodGhpcykuYXR0cigic3JjIiwkKHRoaXMpLmF0dHIoImNvbG9yaW1nIikpfSk7JCh0aGlzKS5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJzcmMiLCQodGhpcykuYXR0cigiYmxhY2tpbWciKSl9KX0pKX0sZ2V0SW52ZW50b3J5RGF0YTooKT0+e2NvbnN0IGE9KGIsZSk9PntsZXQgZz0iRlJFTkNIIj09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbHVlPyJmciI6ImVuIjtmZXRjaChgLyR7Z30vYWpheC9nZXRJbnZlbnRvcnlEYXRhYCx7bWV0aG9kOiJQT1NUIiwKaGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIiwiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyIsY2hhcnNldDoiVVRGLTgifSxib2R5Om5ldyBVUkxTZWFyY2hQYXJhbXMoYil9KS50aGVuKGg9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGgmJiEwPT09aC5vayYmMjAwPT1oLnN0YXR1cylyZXR1cm4gaC5qc29uKCl9KS50aGVuKGg9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGguc3RhdHVzJiYic3VjY2VzcyI9PWguc3RhdHVzKXtsZXQgbj1oLmNvdW50O2g9aC51cmw7bGV0IHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2luU3RvY2tMYWJlbCIpLnZhbHVlOzA8biYmKGUucGFyZW50Tm9kZS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsYDxhIGhyZWY9IiR7aH0iPiR7bn0gJHt0fTwvYT5gKSxlLnBhcmVudE5vZGUuaGlkZGVuPSExKX19KS5jYXRjaChmdW5jdGlvbihoKXt9KX07ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbZGF0YS10eXBlPSJpbnZkYXRhIl0nKS5mb3JFYWNoKGI9Pgp7YSh7bWFrZTpiLmRhdGFzZXQubWFrZSxtb2RlbDpiLmRhdGFzZXQubW9kZWwseWVhcjpiLmRhdGFzZXQueWVhcixzdHlsZWlkczpiLmRhdGFzZXQuc3R5bGVpZHMsaHlicmlkOmIuZGF0YXNldC5oeWJyaWR9LGIpfSl9LGdldFBheW1lbnREYXRhOigpPT57Y29uc3QgYT0oYixlLGcpPT4kanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXt0cnl7Y29uc3QgaD15aWVsZCh5aWVsZCBmZXRjaChgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGcpfS9hamF4L2dldFNob3dyb29tUGF5bWVudEh0bWxgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsiLGNoYXJzZXQ6IlVURi04In0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKGIpfSkpLmpzb24oKTtlLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLWJsb2NrIikuaGlkZGVuPQohMDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGguc3RhdHVzJiYic3VjY2VzcyI9PWguc3RhdHVzKXtsZXQgbj1oLmNvbnRlbnQ7MDxuLmxlbmd0aCYmKGUucGFyZW50Tm9kZS5pbnNlcnRBZGphY2VudEhUTUwoImJlZm9yZWVuZCIsbiksZS5wYXJlbnROb2RlLmhpZGRlbj0hMSl9fWNhdGNoKGgpe319KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dFtkYXRhLXR5cGU9InBheW1lbnRkYXRhIl0nKS5mb3JFYWNoKGI9PntsZXQgZT0iRlJFTkNIIj09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbHVlPyJmciI6ImVuIjthKHtzdHlsZWlkOmIuZGF0YXNldC5zdHlsZWlkLHRpdGxlOmIuZGF0YXNldC50aXRsZSxocmVmOmIuZGF0YXNldC5ocmVmLGxpbmtTdHlsZTpiLmRhdGFzZXQubGlua3N0eWxlLGxpbmtDbGFzczpiLmRhdGFzZXQubGlua2NsYXNzLGNvbnRhaW5lckNsYXNzOmIuZGF0YXNldC5jb250YWluZXJjbGFzcyxwcm9tb1RleHQ6Yi5kYXRhc2V0LnByb21vdGV4dCwKbGFuZzplfSxiLGUpfSl9fTskKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7bmV3Q2Fycy5yZXNpemVNYWluV2luZG93KCl9KTtkb2NSZWFkeUFyci5wdXNoKCgpPT57bmV3Q2Fycy5nZXRQYXltZW50RGF0YSgpO25ld0NhcnMuc2V0UGF5bWVudFRvb2x0aXBzKCk7bmV3Q2Fycy5zZXRFdmVudHMoKTtuZXdDYXJzLm5ld0NhcnNGaWx0ZXIoKTtuZXdDYXJzLnNldFByaWNlVG9vbFRpcHMoKTtuZXdDYXJzLmdldEludmVudG9yeURhdGEoKX0pOwovKiogL20vanMvanF1ZXJ5LnVpLnRvdWNoLXB1bmNoLm1pbi5qcyAqKi8KLyohCiAqIGpRdWVyeSBVSSBUb3VjaCBQdW5jaCAwLjIuMwogKgogKiBDb3B5cmlnaHQgMjAxMeKAkzIwMTQsIERhdmUgRnVyZmVybwogKiBEdWFsIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgb3IgR1BMIFZlcnNpb24gMiBsaWNlbnNlcy4KICoKICogRGVwZW5kczoKICogIGpxdWVyeS51aS53aWRnZXQuanMKICogIGpxdWVyeS51aS5tb3VzZS5qcwogKi8KIWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGYoYSxiKXtpZighKGEub3JpZ2luYWxFdmVudC50b3VjaGVzLmxlbmd0aD4xKSl7YS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBjPWEub3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlc1swXSxkPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpO2QuaW5pdE1vdXNlRXZlbnQoYiwhMCwhMCx3aW5kb3csMSxjLnNjcmVlblgsYy5zY3JlZW5ZLGMuY2xpZW50WCxjLmNsaWVudFksITEsITEsITEsITEsMCxudWxsKSxhLnRhcmdldC5kaXNwYXRjaEV2ZW50KGQpfX1pZihhLnN1cHBvcnQudG91Y2g9Im9udG91Y2hlbmQiaW4gZG9jdW1lbnQsYS5zdXBwb3J0LnRvdWNoKXt2YXIgZSxiPWEudWkubW91c2UucHJvdG90eXBlLGM9Yi5fbW91c2VJbml0LGQ9Yi5fbW91c2VEZXN0cm95O2IuX3RvdWNoU3RhcnQ9ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczshZSYmYi5fbW91c2VDYXB0dXJlKGEub3JpZ2luYWxFdmVudC5jaGFuZ2VkVG91Y2hlc1swXSkmJihlPSEwLGIuX3RvdWNoTW92ZWQ9ITEsZihhLCJtb3VzZW92ZXIiKSxmKGEsIm1vdXNlbW92ZSIpLGYoYSwibW91c2Vkb3duIikpfSxiLl90b3VjaE1vdmU9ZnVuY3Rpb24oYSl7ZSYmKHRoaXMuX3RvdWNoTW92ZWQ9ITAsZihhLCJtb3VzZW1vdmUiKSl9LGIuX3RvdWNoRW5kPWZ1bmN0aW9uKGEpe2UmJihmKGEsIm1vdXNldXAiKSxmKGEsIm1vdXNlb3V0IiksdGhpcy5fdG91Y2hNb3ZlZHx8ZihhLCJjbGljayIpLGU9ITEpfSxiLl9tb3VzZUluaXQ9ZnVuY3Rpb24oKXt2YXIgYj10aGlzO2IuZWxlbWVudC5vbih7dG91Y2hzdGFydDphLnByb3h5KGIsIl90b3VjaFN0YXJ0IiksdG91Y2htb3ZlOmEucHJveHkoYiwiX3RvdWNoTW92ZSIpLHRvdWNoZW5kOmEucHJveHkoYiwiX3RvdWNoRW5kIil9KSxjLmNhbGwoYil9LGIuX21vdXNlRGVzdHJveT1mdW5jdGlvbigpe3ZhciBiPXRoaXM7Yi5lbGVtZW50Lm9mZih7dG91Y2hzdGFydDphLnByb3h5KGIsIl90b3VjaFN0YXJ0IiksdG91Y2htb3ZlOmEucHJveHkoYiwiX3RvdWNoTW92ZSIpLHRvdWNoZW5kOmEucHJveHkoYiwiX3RvdWNoRW5kIil9KSxkLmNhbGwoYil9fX0oalF1ZXJ5KTsvKkVPRiovOwovKiogL20vanMvcGF5bWVudENhbGN1bGF0b3IuanMgKiovCnZhciBfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDE2OjMwOjMzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMTU6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDE0OjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxMzozMDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMTI6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDExOjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxMDozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDk6MzA6MzQiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwODozMDozMSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDc6MzA6MjciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDA2OjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwNTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDQ6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDAzOjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwMjozMDoyNiI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDAxOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwMDozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMjM6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDIyOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAyMTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMjA6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDE5OjMwOjI1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTg6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDE3OjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxNjozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTU6MzA6MzUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDE0OjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxMzozMDozMCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTI6MzA6MzMiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxMTozMDozNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTA6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDA5OjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwODozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDc6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDA2OjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwNTozMDoyNiI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDA0OjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwMzozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDI6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDAxOjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwMDozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMjM6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDIyOjMwOjI0IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMjE6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDIwOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxOTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTg6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDE3OjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxNjozMDozMiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTU6MzA6MzQiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxNDozMDozMCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTM6MzA6MzIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDEyOjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxMTozMDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTA6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDA5OjMwOjMxIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwODozMDoyOSI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDA3OjMwOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwNjozMDoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDU6MzA6MjQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDA0OjMwOjI0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwMzozMDoyNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDI6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDAxOjMwOjIzIjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDA6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDIzOjMwOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAyMjozMDoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMjE6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDIwOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxOTozMDoyNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTg6MzA6MjQiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxNzozMDozNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTY6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDE1OjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxNDozMDozMSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTM6MzA6MjkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDEyOjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxMTozMDozMiI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDEwOjMwOjI4IjsidXNlIHN0cmljdCI7CmZ1bmN0aW9uIHBvcHVwQ2FsY3VsYXRvckluaXRpYWxpemVkKCl7ZnVuY3Rpb24gYSgpe2ImJmIuYWJvcnQoKTtjYWxjVXBkYXRlUGF5bWVudFhociYmKGNhbGNVcGRhdGVQYXltZW50WGhyLmFib3J0KCksY2FsY1VwZGF0ZVBheW1lbnRYaHI9bnVsbCk7dmFyIGQ9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudERhdGFGb3JTdHlsZUlEP3dzd2lkdGg9MCIsYz1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxmPWdldE9wdGlvbnNBbW91bnQoYyksdT1nZXRBY2Nlc3Nvcmllc0Ftb3VudChjKTtsZXQgbT1nZXRTZWxlY3RlZEFjY2Vzc29yaWVzKGMpO3ZhciBuPWdldFByb3RlY3Rpb25QbGFuc0Ftb3VudChjKSxwPWMuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYoITA9PT1jLm5vVHJpbVNlbGVjdHx8InRydWUiPT09Yy5ub1RyaW1TZWxlY3QpfHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8CiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSx4PWMuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/Yy5zdG9ja051bWJlcjoiIix5PWMuaGFzT3duUHJvcGVydHkoInZpbiIpP2MudmluOiIiLHI9cGFyc2VJbnQoJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoKXx8MCk7aWYocCYmIXgpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaG9uZXN0b2NrbnVtYmVyIik7dCYmKHg9dC52YWx1ZXx8IiIpfXAmJiF5JiYodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmV2aW4iKSkmJih5PXQudmFsdWV8fCIiKTtwJiYhYy5zdHlsZWlkJiYodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3R5bGVJRCIpKSYmKGMuc3R5bGVpZD10LnZhbHVlfHxjLnN0eWxlaWQpO2lmKCJjYXNoIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIikpZW5hYmxlQ2FzaE9wdGlvbigpOwplbHNle3Q9cGFyc2VJbnQoJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCl8fDApK3I7dmFyIEE9W107ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbmRpdGlvbmFsLXJlYmF0ZS1jaGVja2JveCIpLmZvckVhY2goZnVuY3Rpb24ocSl7cS5jaGVja2VkJiYocT1xLmdldEF0dHJpYnV0ZSgiZGF0YS1jb25kaXRpb25hbC1yZWJhdGUtaWQiKSkmJkEucHVzaChxKX0pO3ZhciB3PW51bGw7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJih3PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIikpO3ZhciBCPSQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCk7IUImJncmJndbM10mJihCPXdbM10pO3ZhciBnPSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyFnJiZ3JiYKd1swXSYmKGc9d1swXSk7ISQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKCkmJncmJndbMl0mJiQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKHdbMl0pO2I9JC5hamF4KHt1cmw6ZCx0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDpjLnN0eWxlaWQscGF5bWVudFR5cGU6Zyxkb3ducGF5bWVudDp0LG9wdGlvbnNBbW91bnQ6ZixwYXltZW50RnJlcXVlbmN5OiQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKCksa21BbGxvd2FuY2U6QixvcHRpb25zOmYsaXNJbnZlbnRvcnk6cCxzbjp4LHZpbjp5LGNvbmRpdGlvbmFsUmViYXRlSWRzOkEuam9pbigiLCIpLGFjY2Vzc29yaWVzOnUsc2VsZWN0ZWRBY2Nlc3NvcmllczptLHByb3RlY3Rpb25QbGFuczpufSxzdWNjZXNzOmZ1bmN0aW9uKHEpe3EuY3VycmVudFBheW1lbnQmJnEuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwociksCmc9ImxlYXNlIj09PWc\/ImxlYXNpbmciOiJmaW5hbmNlIj09PWc\/ImZpbmFuY2luZyI6ZywiY2FzaCI9PT1nJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpKSxxLmN1cnJlbnRQYXltZW50JiYwIT09cS5jdXJyZW50UGF5bWVudC5sZW5ndGh8fCJjYXNoIj09PWc\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckVycm9yTWVzc2FnZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwKITEpLHEuY3VycmVudFBheW1lbnQmJjA8cS5jdXJyZW50UGF5bWVudC5sZW5ndGgmJigkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbChxLmN1cnJlbnRQYXltZW50WzBdLmludGVydmFsKSxnPWd8fCgibGVhc2UiPT09cS5jdXJyZW50UGF5bWVudFswXS50eXBlPyJsZWFzaW5nIjoiZmluYW5jaW5nIikpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5zaG93KCkpLHNob3dIaWRlUGF5bWVudFNlY3Rpb24ocSxnKSwwPj0kKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSBvcHRpb24iKS5sZW5ndGgmJgpwb3B1bGF0ZUxlYXNlS01BbGxvd2FuY2VEcm9wZG93bihxKSwibGVhc2luZyI9PWc\/JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk6JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCksZ2V0Q2FzaFByaWNlQmxvY2socSksImNhc2giPT09Zz9lbmFibGVDYXNoT3B0aW9uKCk6KHEuY3VycmVudFBheW1lbnQmJnEuY3VycmVudFBheW1lbnQubGVuZ3RoJiZzaG93UGF5bWVudHMocS5jdXJyZW50UGF5bWVudCxxLnBheW1lbnRGZWVzLHEubWFrZWlkLHEpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgej0kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il06Y2hlY2tlZCcpO3oubGVuZ3RoJiYiTkVXQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJVU0VEQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJih6PXtjdXJyZW50UGF5bWVudDp6LmF0dHIoImRhdGEtcmVhbHBheW1lbnQiKSwKY3VycmVudFJhdGU6ei5hdHRyKCJkYXRhLXJhdGUiKSxwYXltZW50VGVybTp6LnZhbCgpLHBheW1lbnRUeXBlOiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpLHBheW1lbnRJbnRlcnZhbDokKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLHBheW1lbnREb3duUGF5bWVudDpwYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8MCkrcGFyc2VJbnQoJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoKXx8MCksdG90YWxJbnRlcmVzdDp6LmF0dHIoImRhdGEtdG90YWxpbnRlcmVzdCIpLGx1eGVUYXhBbW91bnQ6ei5hdHRyKCJkYXRhLWx1eGVUYXhBbW91bnQiKSxyYXRlVHlwZTp6LmF0dHIoImRhdGEtcmF0ZXR5cGUiKSxlZmZlY3RpdmVSYXRlOnouYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIiksdG90YWxDb3N0OnouYXR0cigiZGF0YS10b3RhbENvc3QiKX0sCmNoYW5nZVBhZ2VQYXltZW50VmFsdWUoeikpfSwyNTApKSl9LGVycm9yOmZ1bmN0aW9uKHEseixEKXtjb25zb2xlLmVycm9yKCJsb2FkUGF5bWVudHM6OiBQYXltZW50IGNhbGN1bGF0aW9uIGVycm9yOiIseixEKX19KX19dmFyIGI9bnVsbDskKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YSgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGQpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7dmFyIGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5jYWxjLXBheW1lbnQtY2FzaCIpOyQodGhpcykuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7c3dpdGNoKCEwKXtjYXNlICJsZWFzaW5nIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6Yy5oaWRkZW49CiEwOyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOyQoIi5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyIikuc2hvdygpO3Nob3dEaXNjbGFpbWVyTGluaygpO2JyZWFrO2Nhc2UgImZpbmFuY2luZyI9PT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOmMuaGlkZGVuPSEwOyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyIikuc2hvdygpO3Nob3dEaXNjbGFpbWVyTGluaygpO2JyZWFrO2Nhc2UgImNhc2giPT09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTpoaWRlRGlzY2xhaW1lckxpbmsoKSxjLmhpZGRlbj0hMSwkKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksCm51bGwhPT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGM9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxjWzBdPSJjYXNoIixDb29raWVzLnNldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiLGMuam9pbigiLSIpLG51bGwsIi8iKSksd2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSEwLCJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLnNldEJOUFZpZXcmJm1vZGVsQ29uZmlnLnNldEJOUFZpZXcoITAsImNhc2giKX1sZXQgZjsxIT0obnVsbD09ZD92b2lkIDA6bnVsbD09KGY9ZC5kZXRhaWwpP3ZvaWQgMDpmLmlzRmlyc3RSdW4pJiYkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnRyaWdnZXIoImJsdXIiKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikub24oImNoYW5nZSIsCmZ1bmN0aW9uKCl7YSgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXtsZXQgZD1wYXJzZUludCgkKHRoaXMpLnZhbCgpLnJlcGxhY2UoL1teXGRdL2csIiIpKXx8MDt2YXIgYz0ibGVhc2luZyI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKT9wYXJzZUludCgkKCIjbWF4RG93blBheW1lbnRGb3JUcmltIikudmFsKCkpfHwwOnBhcnNlSW50KCQoIiNtYXhEb3duUGF5bWVudEZpbmFuY2VGb3JUcmltIikudmFsKCkpfHwwOzA8YyYmZD5jJiYoZD1jKTskKHRoaXMpLnZhbChkKTthKCl9KTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXtsZXQgZD1wYXJzZUludCgkKHRoaXMpLmF0dHIoIm1heCIpKXx8MCxjPXBhcnNlSW50KCQodGhpcykudmFsKCkpfHwwO2M9Yz5kP2Q6YzskKHRoaXMpLnZhbChjKTsKX2xvY2FsU3RvcmFnZVNldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIixKU09OLnN0cmluZ2lmeSh7dmFsdWU6Y30pLDEpO2EoKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5oaWRlKCkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZUluY2x1ZGVkIikuaGlkZSgpLAokKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5zaG93KCkpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2V0UG9wQ29udGFpblNldHRpbmdzKCkuYWxyZWFkeUluaXQ9ITA7d2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkJiYod2luZG93LnRlbXBQYXltZW50U2VsZWN0Q2hhbmdlZD0hMCk7d2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSExO3ZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuY2hhbmdlUGF5bWVudFBsYW5Qb3B1cCgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5jbG9zZSgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIgLmNsb3NlLXJldmVhbC1tb2RhbCIpLm9uKCJjbGljayIsCmZ1bmN0aW9uKCl7dm9pZCAwIT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIikmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZGVsQ29uZmlnJiYobW9kZWxDb25maWcuY2hhbmdlUGF5bWVudFBsYW5Qb3B1cCgpLCQoIiNkckNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIikubGVuZ3RoJiYkKCIjZHJDYWxjdWxhdG9yRGlzY2xhaW1lckRyYXdlciIpLmlzKCI6dmlzaWJsZSIpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIiKS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIiksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIiKS5zdHlsZS5kaXNwbGF5PSJub25lIikpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGQ9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7ZC5zdHlsZWlkPSQodGhpcykudmFsKCk7CiQoIiNhY3RpdmVTdHlsZUlEIikubGVuZ3RoJiYkKCIjYWN0aXZlU3R5bGVJRCIpLnZhbChkLnN0eWxlaWQpO3BheW1lbnRDYWxjdWxhdG9yUG9wdXBJbml0KCk7dXBkYXRlVXJsKGQpfSk7JCgiYm9keSIpLm9uKCJjbGljayB0YXAiLCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmZpbmFuY2luZy1vcHRpb24ucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAqIixmdW5jdGlvbigpeyQodGhpcykuZmluZCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nKS5wcm9wKCJjaGVja2VkIiwiY2hlY2tlZCIpLnRyaWdnZXIoImNoYW5nZSIpfSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGQ9JCh0aGlzKS52YWwoKSxjPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInKwpkKyciXVtkYXRhLXJhdGV0eXBlPSInK2MrJyJdJykucHJvcCgiY2hlY2tlZCIsITApOyQoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbiIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2QrJyJdW2RhdGEtcmF0ZXR5cGU9IicrYysnIl0nKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOyQodGhpcykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIiwnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyxmdW5jdGlvbigpe3ZhciBkPSQodGhpcykudmFsKCksYz0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJysKZCsnIl1bZGF0YS1yYXRldHlwZT0iJytjKyciXScpLnByb3AoImNoZWNrZWQiLCEwKS50cmlnZ2VyKCJjaGFuZ2UiKX0pO3ZhciBlPSExOyQoImJvZHkiKS5vbigiY2hhbmdlIiwnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJyxmdW5jdGlvbigpe3ZhciBkPWdldFBvcENvbnRhaW5TZXR0aW5ncygpLGM9JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIiksZj0kKHRoaXMpLnZhbCgpLHU9JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSxtPSQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCksbj0kKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpPyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCk6MCxwPSQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpPwokKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKTowO249cGFyc2VJbnQobikrcGFyc2VJbnQocCk7bj1uLnRvRml4ZWQoMCk7cD1jKyItIitmKyItIit1KyItIittKyItIituO3AhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiZudWxsIT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKHdpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMCx2b2lkIDAhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIilbMF0mJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJnZvaWQgMCE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpJiYoZT0hMCxtb2RlbENvbmZpZy5zZXRCTlBWaWV3KGUsYykpLG51bGwhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYKQ29va2llcy5zZXQoInByZXZpb3VzcGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiLENvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLG51bGwsIi8iKSk7ZXx8InVuZGVmaW5lZCI9PXR5cGVvZiBtb2RlbENvbmZpZ3x8InVuZGVmaW5lZCI9PT10eXBlb2YgbW9kZWxDb25maWd8fHZvaWQgMD09ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnZlaGljbGVDb25maWd1cmF0b3JEUiIpfHxtb2RlbENvbmZpZy5zaG91bGRSZWxvYWRCTlBWaWV3T25QYXltZW50Q2hhbmdlKGUsYyk7Q29va2llcy5zZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixwLG51bGwsIi8iKTt2YXIgeD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8ibW9udGhzIjoibW9pcyIseT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iJCIrbisiIGRvd24gcGF5bWVudCI6bisiICQgY29tcHRhbnQiO3A9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/CiJwZXIgd2VlayBmb3IiOiJwYXIgc2VtYWluZSBwb3VyIjtzd2l0Y2godSl7Y2FzZSAid2Vla2x5IjpwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJwZXIgd2VlayBmb3IiOiJwYXIgc2VtYWluZSBwb3VyIjticmVhaztjYXNlICJiaXdlZWtseSI6cD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8icGVyIDIgd2Vla3MgZm9yIjoicGFyIDIgc2VtYWluZXMgcG91ciI7YnJlYWs7Y2FzZSAic2VtaW1vbnRobHkiOnA9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InR3aWNlIGEgbW9udGggZm9yIjoiMiBmb2lzIHBhciBtb2lzIHBvdXIiO2JyZWFrO2Nhc2UgIm1vbnRobHkiOnA9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciBtb250aCBmb3IiOiJwYXIgbW9pcyBwb3VyIn1tPSJsZWFzaW5nIj09PWM\/bSsia20iOiIiO3ZhciByPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJsZWFzaW5nIj09PWM\/IkxlYXNpbmciOiJGaW5hbmNpbmciOgoibGVhc2luZyI9PT1jPyJMb2NhdGlvbiI6IkZpbmFuY2VtZW50IjtkLnZlaGljbGVJbmZvJiYoZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlPWQudmVoaWNsZUluZm8ubWFrZSsiICIrKGQudmVoaWNsZUluZm8ubW9kZWx8fGQudmVoaWNsZUluZm8uQ0ZNb2RlbE5hbWUpKyIgIitkLnZlaGljbGVJbmZvLkNGU3R5bGVOYW1lLGVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT9kLnZlaGljbGVJbmZvLnllYXIrIiAiK2VtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZTplbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGUrIiAiK2QudmVoaWNsZUluZm8ueWVhcixlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGUrPSIoIityKyIgIitwKyIgIitmKyIgIit4KyIuICIreSsiLiAiK20rIikiLGVtYWlsSGFuZGxlci5tYWtlPWQudmVoaWNsZUluZm8ubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9ZC52ZWhpY2xlSW5mby5tb2RlbHx8ZC52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSwKZW1haWxIYW5kbGVyLnRyaW09ZC52ZWhpY2xlSW5mby5DRlN0eWxlTmFtZSxlbWFpbEhhbmRsZXIueWVhcj1kLnZlaGljbGVJbmZvLnllYXIpO2lmKCJORVdDQVJTIiE9PSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJVU0VEQ0FSUyIhPT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpKXttPSQodGhpcykuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpO2Q9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGUiKTtwPSQodGhpcykuYXR0cigiZGF0YS10b3RhbGludGVyZXN0Iik7eD0kKHRoaXMpLmF0dHIoImRhdGEtbHV4ZVRheEFtb3VudCIpO3k9JCh0aGlzKS5hdHRyKCJkYXRhLWVmZmVjdGl2ZVJhdGUiKTtyPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpO3ZhciB0PSQodGhpcykuYXR0cigiZGF0YS10b3RhbENvc3QiKTtjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHtjdXJyZW50UGF5bWVudDptLGN1cnJlbnRSYXRlOmQscGF5bWVudFRlcm06ZixwYXltZW50VHlwZTpjLHBheW1lbnRJbnRlcnZhbDp1LApwYXltZW50RG93blBheW1lbnQ6bix0b3RhbEludGVyZXN0OnAsbHV4ZVRheEFtb3VudDp4LHJhdGVUeXBlOnIsZWZmZWN0aXZlUmF0ZTp5LHRvdGFsQ29zdDp0fSl9cj0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpOiIrdHgiOyQoIiNkZWFsZXJQcm92aW5jZUNvZGUiKS5sZW5ndGgmJiJBQiI9PSQoIiNkZWFsZXJQcm92aW5jZUNvZGUiKS52YWwoKSYmKHI9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK0dTVCIpO2lmKCQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5sZW5ndGgpe3g9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwiRlJFTkNIIjttPSQodGhpcykuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpO2Q9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGUiKTtwPSIxIj09JCgiI3JvdW5kUGF5bWVudCIpLnZhbCgpPzA6MjsKdD1wYXJzZUZsb2F0KG0pLnRvRml4ZWQocCk7dD10LnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKEEsdyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK3crIjwvc3VwPiJ9KTt5PSQodGhpcykuYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIik7cD0kKCIjSU5URVJWQUxfU0hPUlRfV0VFS0xZIikudmFsKCk7bT01Mjtzd2l0Y2godSl7Y2FzZSAid2Vla2x5IjpwPSQoIiNJTlRFUlZBTF9TSE9SVF9XRUVLTFkiKS52YWwoKTttPTUyO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjpwPSQoIiNJTlRFUlZBTF9TSE9SVF9CSVdFRUtMWSIpLnZhbCgpO209MjY7YnJlYWs7Y2FzZSAic2VtaW1vbnRobHkiOnA9JCgiI0lOVEVSVkFMX1NIT1JUX1NFTUlNT05USExZIikudmFsKCk7bT0yNDticmVhaztjYXNlICJtb250aGx5IjpwPSQoIiNJTlRFUlZBTF9TSE9SVF9NT05USExZIikudmFsKCksbT0xMn11PXIrIi8iK3A7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJgoiYmx1ciI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCkmJih0PSc8c3BhbiBjbGFzcz0iYmx1ci1wcmljZSI+Jyt0KyI8L3NwYW4+Iik7cD1EMkNVdGlscy5Gb3JtYXQudG9QcmljZSh0KTtuPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKG4pKygiRU5HTElTSCI9PT14PyIgZG93biI6IiBjb21wdGFudCIpO2M9ImZpbmFuY2luZyI9PT1jPyJFTkdMSVNIIj09PXg\/ZisiIG1vbnRocyBmaW4uIjoiRmluLiAiK2YrIiBtb2lzIjoiRU5HTElTSCI9PT14P2YrIiBtb250aHMgbGVhc2UiOiJMb2MuICIrZisiIG1vaXMiO2Q9cGFyc2VGbG9hdChkKS50b0ZpeGVkKDIpKyIlIjt4PWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KHksZCwiIiwiIiwhMSk7eT1jKyIgLyAiK24rIiBAICIrZCt4KyI6IjsxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJihmPXBhcnNlSW50KHBhcnNlSW50KGYpLzEyKm0pLG09c3RvcmUuZ2V0KCJpMThuIikuUEFZTUVOVFMudG9Mb3dlckNhc2UoKSwKITA9PT1zdG9yZS5nZXQoImZpZWxkcy5WV19EUl9QUF9FTkFCTEVEIikmJihuKz0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMiICBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy03LWRpdiIgZGF0YS1kaXNjbGFpbWVyLWlkPSI3Ij48c3VwIGRhdGEtZGlzY2xhaW1lci1pZD0iNyI+Nzwvc3VwPjwvYT4nLHArPSc8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTMtZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjMiPjxzdXAgZGF0YS1kaXNjbGFpbWVyLWlkPSIzIj4zPC9zdXA+PC9hPicpLHk9YysiIC8gIitmKyIgIittKyIgLyAiK24rIiBAICIrZCt4KyI6Iik7JCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtcGF5bWVudC1kZXNjIikuaHRtbCh5KTsKJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtcGF5bWVudC1hbW91bnQiKS5odG1sKHApOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIgLmJwLXRheC10eHQiKS50ZXh0KHUpO2Y9JCh0aGlzKS5jbG9zZXN0KCIucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpOyIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkmJihmPSQodGhpcykuY2xvc2VzdCgiLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKSk7Zj1mLmF0dHIoImRhdGEtdG9vbHRpcCIpO2Y9U3RyaW5nKGYpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpO2NoYW5nZUJuUFRvb2xUaXBNZXNzYWdlKGYpOyJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZGVsQ29uZmlnJiYobW9kZWxDb25maWcuc2F2ZUNvbmZpZygpLG1vZGVsQ29uZmlnLmNhbGN1bGF0ZUFjY1BheW1lbnRzKCkpfX0pOwokKCJib2R5Iikub24oImNoYW5nZSIsIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giLGZ1bmN0aW9uKCl7aWYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5pcygiOnZpc2libGUiKXx8JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIikuaXMoIjp2aXNpYmxlIikpImNhc2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik\/Y2FsY1VwZGF0ZVBheW1lbnRJbmZvKCk6YSgpfSl9ZnVuY3Rpb24gZXNjYXBlSFRNTChhKXtyZXR1cm4gU3RyaW5nKGEpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKX0KdmFyIGN0YVBheW1lbnRUZXh0RnI9W10sY3RhUGF5bWVudFRleHRFbj1bXSxjYWxjQ3VyUGF5bWVudD17fSxjdGFQYXltZW50VmFsdWVzPVtdLGNhc2hQcmljZUZvclBhZ2U9bnVsbCxjYWxjVXBkYXRlUGF5bWVudFhocj1udWxsOwpmdW5jdGlvbiB1cGRhdGVVcmwoYSl7dHJ5e2lmKCFhLnZlaGljbGVJbmZvKXJldHVybjt2YXIgYj1hLnZlaGljbGVJbmZvLGU9InVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzP25ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc3R5bGVzOmIubW9kZWxKU09OLnN0eWxlcyxkPXdpbmRvdy5wYXJlbnQubG9jYXRpb24uaHJlZi5zcGxpdCgiLyIpLnNsaWNlKDAsLTEpLmpvaW4oIi8iKSxjPWUuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybiBmLmlkPT1hLnN0eWxlaWR9KS5wb3AoKX1jYXRjaChmKXtjb25zb2xlLmVycm9yKGYpO3JldHVybn1jJiYoZT1jLmVuZ2xpc2hUcmltfHwiIixiPWdldEN1cnJlbnRWZWhpY2xlUGF0aChiKSsiLSIrZS5yZXBsYWNlKC9cc3wtL2csIiAiKSxlLmxlbmd0aCYmd2luZG93LnBhcmVudC5oaXN0b3J5LnB1c2hTdGF0ZSh7fSwiIixkKyIvIitiKyIuaHRtbCIpKX0KZnVuY3Rpb24gY2hhbmdlQm5QVG9vbFRpcE1lc3NhZ2UoYSl7YT0nPHNwYW4gY2xhc3M9InBheW1lbnRUb29sdGlwIGZhbCBmYS1pbmZvLWNpcmNsZSIgZGF0YS10b29sdGlwPSInK2ErJyI+PC9zcGFuPic7JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIikuaHRtbChhKTt0cnl7dmFyIGI9JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIC5wYXltZW50VG9vbHRpcCIpLmF0dHIoImRhdGEtdG9vbHRpcCIpOyQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCAucGF5bWVudFRvb2x0aXAiKS5kYXJrVG9vbHRpcCh7Y29udGVudDpiLGdyYXZpdHk6InNvdXRoIix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZhZGVJbiJ9KX1jYXRjaChlKXt9fQpmdW5jdGlvbiBwb3B1cGl6ZXJPbkNsb3NlKGEsYil7InBheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiIT09YS5jdXJyZW50VGFyZ2V0LnBhcmVudEVsZW1lbnQuaWQmJih3aW5kb3cudGVtcFBheW1lbnRTZWxlY3RDaGFuZ2VkJiYod2luZG93LnRlbXBQYXltZW50U2VsZWN0Q2hhbmdlZD0hMSx3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITApLCQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5vcGVuKDEpLCQoIi5yZXZlYWwtbW9kYWwiKS5vZmYoInBvcHVwaXplci5jbG9zZSIscG9wdXBpemVyT25DbG9zZSkpfQpmdW5jdGlvbiBnZXRQb3BDb250YWluU2V0dGluZ3MoKXt2YXIgYT0kKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLmRhdGEoInBvcHVwU2V0dGluZ3MiKTthLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSExO2Eubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0hMTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBhKXJldHVybiExOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRGV0YWlscyYmc2VhcmNoRGV0YWlscy52ZWhpY2xlPyhhLnBheW1lbnRUeXBlPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50c3x8ITEpPyJmaW5hbmNlIjphLnBheW1lbnRUeXBlLGEucGF5bWVudFR5cGU9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRQYXltZW50fHwhMSk\/ImxlYXNlIjphLnBheW1lbnRUeXBlLGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHM9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzfHwKITEpPyEwOiExLGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodFBheW1lbnR8fCExKT8hMDohMSk6KGEucGF5bWVudFR5cGU9IjEiPT0oYS5ub0xlYXNlfHwhMSk\/ImZpbmFuY2UiOmEucGF5bWVudFR5cGUsYS5wYXltZW50VHlwZT0iMSI9PShhLm5vRmluYW5jZXx8ITEpPyJsZWFzZSI6YS5wYXltZW50VHlwZSxhLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzPSIxIj09KGEubm9MZWFzZXx8ITEpPyEwOiExLGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cz0iMSI9PShhLm5vRmluYW5jZXx8ITEpPyEwOiExKTtyZXR1cm4gYX0KZnVuY3Rpb24gY2hhbmdlUGFnZVBheW1lbnRWYWx1ZShhKXt2YXIgYj1hLmN1cnJlbnRQYXltZW50LGU9YS5jdXJyZW50UmF0ZSxkPWEucGF5bWVudFRlcm0sYz1hLnBheW1lbnRUeXBlLGY9YS5wYXltZW50SW50ZXJ2YWwsdT1hLnBheW1lbnREb3duUGF5bWVudCxtPWEudG90YWxJbnRlcmVzdCxuPWEubHV4ZVRheEFtb3VudCxwPWEucmF0ZVR5cGUseD1hLmVmZmVjdGl2ZVJhdGUseT1hLnRvdGFsQ29zdCxyPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJFTkdMSVNIIjoiRlJFTkNIIix0PWdldFBvcENvbnRhaW5TZXR0aW5ncygpLEE9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JSb3VuZFBheW1lbnQiKS52YWwoKT8wOjIsdz0yPT1BP01hdGguZmxvb3IocGFyc2VGbG9hdChiKSkudG9GaXhlZCgwKTpwYXJzZUZsb2F0KGIpLnRvRml4ZWQoMCk7Yj1wYXJzZUZsb2F0KGIpLnRvRml4ZWQoQSk7QT1iLnNwbGl0KCIuIilbMV18fCIiO2I9Yi5yZXBsYWNlKC9cLihbMC05XSopLywKZnVuY3Rpb24oQyxGKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRisiPC9zdXA+In0pOyIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpJiYiYmx1ciI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCkmJihiPSc8c3BhbiBjbGFzcz0iYmx1ci1wcmljZSI+JytiKyI8L3NwYW4+Iik7dmFyIEI9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UoYiksZz1iKyIkIixxPSIkIitiLHo9ImxlYXNpbmciPT09Yz8iTG9jYXRpb24iOiJGaW5hbmNlbWVudCIsRD0ibGVhc2luZyI9PT1jPyJMZWFzaW5nIjoiRmluYW5jaW5nIix2PWUrIiUiLGg9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKToiK3R4IjskKCIjZGVhbGVyUHJvdmluY2VDb2RlIikubGVuZ3RoJiYiQUIiPT0kKCIjZGVhbGVyUHJvdmluY2VDb2RlIikudmFsKCkmJihoPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPwokKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpOiIrR1NUIik7dmFyIGs9aCsiL21vaXMiLGw9aCsiL210aCI7c3dpdGNoKGYpe2Nhc2UgIndlZWtseSI6az1oKyIvc2VtIjtsPWgrIi93ZWVrIjticmVhaztjYXNlICJiaXdlZWtseSI6az1oKyIvMnNlbSI7bD1oKyIvMndlZWsiO2JyZWFrO2Nhc2UgInNlbWltb250aGx5IjprPWgrIi9iaW1lbnN1ZWwiO2w9aCsiL3NlbWltb250aGx5IjticmVhaztkZWZhdWx0Oms9aCsiL21vaXMiLGw9aCsiL21vbnRoIn1sZXQgRz1oPSIiOzE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmITA9PT1zdG9yZS5nZXQoImZpZWxkcy5WV19EUl9QUF9FTkFCTEVEIikmJihHPSc8c3Bhbj48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTMtZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjMiPjxzdXAgZGF0YS1kaXNjbGFpbWVyLWlkPSIzIj4zPC9zdXA+PC9hPjwvc3Bhbj4nLApoPSc8c3Bhbj48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTctZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjciPjxzdXAgZGF0YS1kaXNjbGFpbWVyLWlkPSI3Ij43PC9zdXA+PC9hPjwvc3Bhbj4nKTt2YXIgSD0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKT8ic2NyYXRjaCI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50T3B0aW9uIikudmFsKCk\/InN0cmlrZS1wcmljZS1ibGFjayI6IiI6IiIsRT1EMkNVdGlscy5Gb3JtYXQudG9QcmljZSh1KSsiIGNvbXB0YW50IixMPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHUpKyIgZG93biBwYXltZW50Ijt1PXorIiAiK2QrIiBtb2lzIjtEPUQrIiAiK2QrIiBtb250aHMiO0I9JzxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCAnK0grJyI+JysKQisiPC9zcGFuPiAiK0crJyBAIDxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCI+Jyt2KyI8L3NwYW4+Iitmb3JtYXRFZmZlY3RpdmVSYXRlVGV4dCh4LGUsJyBjbGFzcz0idHh0LXBheW1lbnQiICcpO2g9KCJFTkdMSVNIIj09PXI\/bDprKSsiICIrKCJFTkdMSVNIIj09PXI\/TDpFKStoKygiMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpPyIiOicgPHNwYW4gc3R5bGU9ImZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDAwOyIgY2xhc3M9InZkcEluZm9Ub29sdGlwIGZhciBmYS1pbmZvLWNpcmNsZSI+PC9zcGFuPicpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUyLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMSIpLmh0bWwoIkVOR0xJU0giPT09cj9EOnUpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUxLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMiIpLmh0bWwoQik7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTMsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUzIikuaHRtbChoKTsKRT1CPSIiO2NhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50JiZjYWxjQ3VyUGF5bWVudC5jdXJyZW50UGF5bWVudC5sZW5ndGgmJihFPWNhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50WzBdLnRvdGFsLEI9YEFmZmljaMOpIMOgICR7RX0kYCxFPWBMaXN0ZWQgYXQgJCR7RX1gKTtjdGFQYXltZW50VGV4dEZyPVtgJHtnfSAke2t9YCxgJHt1fSBAICR7dn1gLGAke0J9YF07Y3RhUGF5bWVudFRleHRFbj1bYCR7cX0gJHtsfWAsYCR7RH0gQCAke3Z9YCxgJHtFfWBdO2N0YVBheW1lbnRWYWx1ZXM9W2EuY3VycmVudFBheW1lbnQsZSxkLGZdO3dpbmRvdy5wYXJlbnQuQU1QJiZ3aW5kb3cucGFyZW50LkFNUC5zZXRTdGF0ZSh7U1NSX1NUQVRFOntsZWFzZVRlcm1UZXh0OiJFTkdMSVNIIj09PXI\/RDp1LGxlYXNlUGF5bWVudFR4dDp3LGxlYXNlUGF5bWVudERlY2ltYWw6QSxsZWFzZVJhdGU6dixsZWFzZVRheFRleHQ6aH19KTtjYWxjQ3VyUGF5bWVudC5jdXJUZXJtPWQ7Y2FsY0N1clBheW1lbnQuY3VyUmF0ZT0KZTtjYWxjQ3VyUGF5bWVudC5jdXJJbnRlcnZhbD1mO2NhbGNDdXJQYXltZW50LnRheFRleHRGcj1rO2NhbGNDdXJQYXltZW50LnRheFRleHRFbj1sO2E9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudFRvb2x0aXBCeVN0eWxlSUQ\/d3N3aWR0aD0wIjtjPSJsZWFzaW5nIj09Yz8ibGVhc2UiOiJmaW5hbmNlIjtyPWdldE9wdGlvbnNBbW91bnQodCk7dz10Lmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmKCEwPT09dC5ub1RyaW1TZWxlY3R8fCJ0cnVlIj09PXQubm9UcmltU2VsZWN0KXx8InVzZWRjYXJzLmh0bWwiPT09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT09JCgiI1BBR0VJRCIpLnZhbCgpO0E9dC5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT90LnN0b2NrTnVtYmVyOiIiO2c9dC5oYXNPd25Qcm9wZXJ0eSgidmluIik\/dC52aW46IiI7cT1nZXRBY2Nlc3Nvcmllc0Ftb3VudCh0KTsKdj1nZXRTZWxlY3RlZEFjY2Vzc29yaWVzKHQpO2s9Z2V0UHJvdGVjdGlvblBsYW5zQW1vdW50KHQpO2xldCBOPVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKEMpe0MuY2hlY2tlZCYmKEM9Qy5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZOLnB1c2goQyl9KTt3JiYhQSYmKGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25lc3RvY2tudW1iZXIiKSkmJihBPWwudmFsdWV8fCIiKTt3JiYhZyYmKGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoZz1sLnZhbHVlfHwiIik7JC5hamF4KHt1cmw6YSx0eXBlOiJQT1NUIixkYXRhVHlwZToiSFRNTCIsZGF0YTp7c3R5bGVpZDp0LnN0eWxlaWQsdHlwZTpjLHBheW1lbnQ6cGFyc2VGbG9hdChiKSx0ZXJtOnBhcnNlSW50KGQpLHJhdGU6cGFyc2VGbG9hdChlKSxpbnRlcnZhbDpmLG9wdGlvbnM6ciwKdG90YWxJbnRlcmVzdDptLGlzSW52ZW50b3J5Oncsc246QSx2aW46ZyxsdXhlVGF4QW1vdW50Om4scmF0ZV90eXBlOnAsdG90YWxDb3N0OnksY29uZGl0aW9uYWxSZWJhdGVJZHM6Ti5qb2luKCIsIiksYWNjZXNzb3JpZXM6cSxzZWxlY3RlZEFjY2Vzc29yaWVzOnYscHJvdGVjdGlvblBsYW5zOmssZWZmZWN0aXZlUmF0ZTp4fSxiZWZvcmVTZW5kOmZ1bmN0aW9uKEMpe3RyeXtsZXQgRj0kKCJtZXRhW25hbWU9J2NzcmYtZG9tYWluLWNoZWNrJ10iKTtGLmxlbmd0aCYmQy5zZXRSZXF1ZXN0SGVhZGVyKCJjc3JmLWRvbWFpbi1jaGVjayIsRi5hdHRyKCJjb250ZW50IikpfWNhdGNoKEYpe2NvbnNvbGUuZXJyb3IoQyl9fSxzdWNjZXNzOmZ1bmN0aW9uKEMpeyQoIiNkYXJrdG9vbHRpcC1wYXltZW50V3JhcHBlciwgI2Rhcmt0b29sdGlwLXZkcFBheW1lbnRUb29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwSW5mb1Rvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBVc2VkSW5mb1Rvb2x0aXAiKS5yZW1vdmUoKTsKdmFyIEY9JCgiLm5ld1ZkcEFjdGlvbnMiKS5oYXNDbGFzcygid2VzdCIpPyJ3ZXN0IjokKCIudXNlZFZkcEFjdGlvbnMiKS5oYXNDbGFzcygid2VzdCIpPyJ3ZXN0IjoiZWFzdCI7JCgiLnZkcFBheW1lbnRUb29sdGlwLCAucGF5bWVudFdyYXBwZXIgLnZkcEluZm9Ub29sdGlwLCAucGF5bWVudFdyYXBwZXIgLnZkcFVzZWRJbmZvVG9vbHRpcCIpLmRhcmtUb29sdGlwKHtjb250ZW50OkMsZ3Jhdml0eTpGLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmxpcEluIn0pfX0pfQpmdW5jdGlvbiBnZXRDdXJyZW50VmVoaWNsZVBhdGgoYSl7dmFyIGI9W2QyY21lZGlhLnVybC5zYW5pdGl6ZShhLm1ha2UpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLm1vZGVsKSxkMmNtZWRpYS51cmwuc2FuaXRpemUoYS55ZWFyKV0uam9pbigiLSIpOyJFTkdMSVNIIj09PSgkKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giKSYmKGI9W2QyY21lZGlhLnVybC5zYW5pdGl6ZShhLm1ha2UpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLm1vZGVsKSxkMmNtZWRpYS51cmwuc2FuaXRpemUoYS55ZWFyKV0uam9pbigiLSIpKTtyZXR1cm4gYn0KZnVuY3Rpb24gc2hvd1BheW1lbnRzKGEsYixlLGQpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5odG1sKCIiKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaHRtbCgiIik7dmFyIGM9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JSb3VuZFBheW1lbnQiKS52YWwoKT8wOjI7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJiQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKTt2YXIgZj1bXSx1PSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCl8fDA7ImZpbmFuY2UiPT1hWzBdLnR5cGUmJmFbMF0uZG93bnBheW1lbnQ+ZC5tYXhEb3duRmluYW5jZT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuc2hvdygpLAokKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCEwKSk6ImxlYXNlIj09YVswXS50eXBlJiZhWzBdLmRvd25wYXltZW50PmQubWF4RG93bj8oJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLAokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCEwKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpLCQoIiNwYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLmlzKCI6Y2hlY2tlZCIpPygkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCkpKTsKNTxhLmxlbmd0aD9hLmZvckVhY2goZnVuY3Rpb24odil7KDA9PXYudGVybSUxMnx8NjQ9PXYudGVybXx8NDA9PWUmJjUxPT12LnRlcm18fDIwPT1lJiZbMjcsMzAsMzksNDJdLmluY2x1ZGVzKHYudGVybSl8fFsxNiwyMV0uaW5jbHVkZXMoZSl8fDQyPT12LnRlcm0mJjEwMTQ9PXV8fFszMCw0Ml0uaW5jbHVkZXModi50ZXJtKSYmWzQ3MTU2Miw0NzE1NjMsNDcxNTY0XS5pbmNsdWRlcyhwYXJzZUludChzZXR0aW5ncy5zdHlsZWlkKSl8fFsxNiwxXS5pbmNsdWRlcyhlKSYmWzI4LDQwXS5pbmNsdWRlcyh2LnRlcm0pfHwyNz09di50ZXJtJiYyNz09ZXx8NTI9PXYudGVybSYmMzk9PWUpJiZmLnB1c2godil9KTpmPWE7ImRlc2MiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JUZXJtT3JkZXIiKS52YWwoKSYmKGY9Zi5yZXZlcnNlKCkpO3ZhciBtPXt9LG49ITE7Zi5mb3JFYWNoKGZ1bmN0aW9uKHYsaCl7T2JqZWN0Lmhhc093bihtLHYudGVybSk\/bj0hMDptW3YudGVybV09e307bVt2LnRlcm1dW3YucmF0ZV90eXBlXT0KaH0pO3ZhciBwPVtdLHg9ITEseT0hMSxyPXBhcnNlSW50KHNldHRpbmdzLmRlZmF1bHRUZXJtLDEwKXx8MDtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKT8oeD1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpWzFdfHwhMSx5PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIilbMF18fCExKTowPHImJih4PXIscj1zZXR0aW5ncy5wYXltZW50VHlwZSx5PSJsZWFzZSI9PT1yPyJsZWFzaW5nIjoiZmluYW5jZSI9PT1yPyJmaW5hbmNpbmciOnIpO2FbMF0mJiJsZWFzZSI9PWFbMF0udHlwZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYVswXS5rbV9hbGxvd2FuY2UmJihyPTA8ZC5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U\/ZC5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U6MkU0LCQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKHIpKTsKbGV0IHQ9ZC50b3RhbEluY2VudGl2ZSxBPW4\/JCgiI0xPV0VTVFBBWU1FTlRfTEFCRUwiKS52YWwoKToiIix3PW4\/JCgiI0xPV0VTVFJBVEVfTEFCRUwiKS52YWwoKToiIjt2YXIgQj0wOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciAuanMtdGVtcEttQWxsb3dlZCIpLnJlbW92ZSgpO2xldCBnPSIiLHE9IiI7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYhMD09PXN0b3JlLmdldCgiZmllbGRzLlZXX0RSX1BQX0VOQUJMRUQiKSYmKGc9JzxzcGFuPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyAiIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iY2FsY3VsYXRvci1kaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtMy1kaXYiICBkYXRhLWRpc2NsYWltZXItaWQ9IjMiPjxzdXA+Mzwvc3VwPjwvYT48L3NwYW4+JyxxPSc8c3Bhbj48YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyBjYWxjRGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgIiBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImNhbGN1bGF0b3ItZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTItZGl2IiAgZGF0YS1kaXNjbGFpbWVyLWlkPSIyIj48c3VwPjI8L3N1cD48L2E+PC9zcGFuPicpOwokLmVhY2goZixmdW5jdGlvbih2LGgpe2lmKCFwLmluY2x1ZGVzKGgudGVybSkpe3AucHVzaChoLnRlcm0pO3ZhciBrPSJzdGFuZGFyZCI9PWgucmF0ZV90eXBlfHwyPk9iamVjdC5rZXlzKG1baC50ZXJtXSkubGVuZ3RoP2g6ZlttW2gudGVybV0uc3RhbmRhcmRdLGw9Mj09T2JqZWN0LmtleXMobVtoLnRlcm1dKS5sZW5ndGg\/ZlttW2gudGVybV0uc3VidmVudGVkXTohMSxHPTI9PU9iamVjdC5rZXlzKG1baC50ZXJtXSkubGVuZ3RoP21baC50ZXJtXS5zdWJ2ZW50ZWQ6ITEsSD1oLnRlcm0sRT1oLmRvd25wYXltZW50LnRvRml4ZWQoMCksTD1rLnBheW1lbnQudG9GaXhlZChjKSxOPWsucGF5bWVudC50b0ZpeGVkKGMpO0w9TC5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihPLE0pe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytNKyI8L3N1cD4ifSk7dmFyIEM9ay5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoYyksRj1rLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChjKTtDPUMucmVwbGFjZSgvXC4oWzAtOV0qKS8sCmZ1bmN0aW9uKE8sTSl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK00rIjwvc3VwPiJ9KTt2YXIgVT1rLnJhdGUsZmE9InBheW1lbnQiK3Y7dj0icGF5bWVudCIrdisid2l0aFRheGVzIjtIPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyI8c3Bhbj4iK0grIjwvc3Bhbj4gbW9udGgiOiI8c3Bhbj4iK0grIjwvc3Bhbj4gbW9pcyI7RT1gPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHtFfTwvc3Bhbj5gKygkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iIGRvd24gcGF5bWVudCI6IiBjb21wdGFudCIpO3ZhciBQPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyI8ZGl2PiIrJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKSsiPC9kaXY+IjoiK3R4IjskKCIjZGVhbGVyUHJvdmluY2VDb2RlIikubGVuZ3RoJiYiQUIiPT0kKCIjZGVhbGVyUHJvdmluY2VDb2RlIikudmFsKCkmJihQPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPwoiPGRpdj4iKyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCkrIjwvZGl2PiI6IitHU1QiKTt2YXIgUT1rLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2suY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxWPWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KFEsay5yYXRlLCIiLCdjbGFzcz0iLWZzMTAiJyksVz1rLnRvdGFsT2JsaWdhdGlvbkFtb3VudD9rLnRvdGFsT2JsaWdhdGlvbkFtb3VudDowLFg9J2RhdGEtdG9vbHRpcD0iJytrLnRvb2x0aXArJyInLFk9J2RhdGEtdG9vbHRpcD0iJytrLnRvb2x0aXBXaXRoVGF4ZXMrJyInLEksaGE9bnVsbCE9KEk9ay5tMmRfZmluYW5jZSk\/STp0O0k9InNpbmdsZS1jb2x1bW4iO2g9cGFyc2VJbnQoaC50ZXJtKTtoPXgmJng9PWgmJnkmJnk9PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpPyJjaGVja2VkIjoiIjt2YXIgUj0ic21hbGwtYm94IixKPSIiLEs9IiI7aWYobCl7ST0KImxlZnQtc2VjdGlvbiI7Uj0iIjtKPWwucGF5bWVudC50b0ZpeGVkKGMpO2xldCBPPWwucGF5bWVudC50b0ZpeGVkKGMpO0o9Si5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihpYSxTKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrUysiPC9zdXA+In0pO0s9bC5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoYyk7bGV0IE09bC5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoYyk7Sz1LLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGlhLFMpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytTKyI8L3N1cD4ifSk7dmFyIFo9bC5yYXRlLnRvRml4ZWQoMiksamE9InBheW1lbnQiK0c7Rz0icGF5bWVudCIrRysid2l0aFRheGVzIjtsZXQgVD1sLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2wuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6MCxhYT1mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dChULGwucmF0ZSwiIiwnY2xhc3M9Ii1mczEwIicpLGJhPWwudG90YWxPYmxpZ2F0aW9uQW1vdW50PwpsLnRvdGFsT2JsaWdhdGlvbkFtb3VudDowLGNhPSdkYXRhLXRvb2x0aXA9IicrbC50b29sdGlwKyciJyxkYT0nZGF0YS10b29sdGlwPSInK2wudG9vbHRpcFdpdGhUYXhlcysnIicsZWE9bC5tMmRfZmluYW5jZTtKPSdcdDxkaXYgaWQ9IicramErJyIgY2xhc3M9InJpZ2h0LXNlY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytjYSsnPlx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytKKyI8L3NwYW4+IitnKycgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgcmlnaHRUb29sdGlwIiAnK2NhKyc+PC9pPjwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJkZXRhaWxzVGF4Ij4nK1ArJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytaKyIlICIrYWErJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50Ilx0XHRcdFx0XHR2YWx1ZT0iJysKbC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrbC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrbC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrbC5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK08rJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytsLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytsLnRvdGFsSW50ZXJlc3QrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2wubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrVCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytiYSsnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrbC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2wucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJysKZWErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHQ8bGFiZWw+Jyt3KyI8L2xhYmVsPlx0XHQ8L2Rpdj5cdDwvZGl2PiI7Sz0nXHQ8ZGl2IGlkPSInK0crJyIgY2xhc3M9InJpZ2h0LXNlY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytkYSsnPlx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytLKyI8L3NwYW4+IitxKycgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgcmlnaHRUb29sdGlwIiAnK2RhKyc+PC9pPjwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytaKyIlICIrYWErJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJysKbC50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrbC5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrbC5wYXltZW50V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrbC5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK00rJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytsLnJlc2lkdWFsV2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytsLnRvdGFsSW50ZXJlc3RXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2wubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrVCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytiYSsnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrbC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2wucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJysKZWErJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2wuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytsLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrbC5wc3QrJyJcdFx0XHRcdD5cdFx0XHQ8bGFiZWw+Jyt3KyI8L2xhYmVsPlx0XHQ8L2Rpdj5cdDwvZGl2PiJ9bD0nPGRpdiBjbGFzcz0iZmluYW5jaW5nLW9wdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICcrUisnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrSCsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJkb3duLXBheW1lbnQiPicrRSsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJzZXBhcmF0b3JQYXkiPjwvZGl2Plx0PGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPlx0XHQ8ZGl2IGlkPSInK2ZhKyciIGNsYXNzPSInK0krJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1grJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JysKTCsiPC9zcGFuPiIrZysnIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1grJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JytQKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcmF0ZSI+JytVKyIlICIrVisnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdCcraCsnXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9Iicray50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9Iicray5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9Iicray5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9Iicray5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK04rJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJysKay5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9Iicray50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytrLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK1ErJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrVysnIlx0XHRcdFx0XHRkYXRhLXJhdGU9Iicray5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2sucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJytoYSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsPicrQSsiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+IitKKyJcdDwvZGl2PjwvZGl2PiI7Qz0nPGRpdiBjbGFzcz0iZmluYW5jaW5nLW9wdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICcrClIrJyI+XHQ8ZGl2IGNsYXNzPSJ0ZXJtIj4nK0grJzwvZGl2Plx0PGRpdiBjbGFzcz0iZG93bi1wYXltZW50Ij4nK0UrJzwvZGl2Plx0PGRpdiBjbGFzcz0ic2VwYXJhdG9yUGF5Ij48L2Rpdj5cdDxkaXYgY2xhc3M9ImNvbnRlbnQtY29udGFpbmVyIj5cdFx0PGRpdiBpZD0iJyt2KyciIGNsYXNzPSInK0krJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1krJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytDKyI8L3NwYW4+IitxKycgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrWSsnPjwvaT48L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcmF0ZSI+JytVKyIlICIrVisnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIj5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdCcrCmgrJ1x0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInK2sudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2sucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2sucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2sucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytGKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9Iicray5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9Iicray50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytrLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK1ErJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrVysnIlx0XHRcdFx0XHRkYXRhLXJhdGU9Iicray5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInKwprLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9Iicray5nc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSInK2suaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytrLnBzdCsnIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsPicrQSsiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+IitLKyJcdDwvZGl2PjwvZGl2PiI7MD09ay5wYXltZW50V2l0aFRheGVzJiYoQz0iIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmFwcGVuZChsKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuYXBwZW5kKEMpO0IrK319KTtyPSQoJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVtjaGVja2VkXScpLmxlbmd0aD8kKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il1bY2hlY2tlZF0nKVswXToKJCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdJykubGFzdCgpWzBdOyQocikucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKTtyPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGFbMF0udG90YWwudG9GaXhlZCgwKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlVG90YWwiKS50ZXh0KHIpOyJsZWFzZSI9PWFbMF0udHlwZT8ocj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhWzBdLmttX2FsbG93YW5jZS50b0ZpeGVkKDApKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VLTSIpLnRleHQociksJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITApLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUxlYXNlIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUZpbmFuY2UiKS5oaWRlKCkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VMZWFzZSIpLmhpZGUoKSwKJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ2FzaCIpLnByb3AoImhpZGRlbiIsITApLCQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUZpbmFuY2UiKS5zaG93KCkpOyQoIi5wYXltZW50Q2FsY3VsYXRvckNvbW1vbk5vdGljZSIpLnNob3coKTskKCIjcGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2siKS5pcygiOmNoZWNrZWQiKT8oJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZUluY2x1ZGVkIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVOb3RJbmNsdWRlZCIpLmhpZGUoKSk6KCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVJbmNsdWRlZCIpLmhpZGUoKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlTm90SW5jbHVkZWQiKS5zaG93KCkpOzA8Yj8oYj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihiLnRvRml4ZWQoMCkpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUZlZXMiKS50ZXh0KGIpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLnNob3coKSk6CiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzICNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXNMaXN0IikuZW1wdHkoKTtsZXQgej0kKCI8dWw+Iik7ZC5jdXN0b21GZWVzLmxlbmd0aCYmJC5lYWNoKGQuY3VzdG9tRmVlcyxmdW5jdGlvbih2LGgpe3Y9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGguZGVzY0VuKSxrPT5rLmNoYXJDb2RlQXQoMCkpKToobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoaC5kZXNjRnIpLGs9PmsuY2hhckNvZGVBdCgwKSkpO2g9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoaC5hbW91bnQudG9GaXhlZCgwKSk7aD1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShoKTtoPSQoIjxsaT4iKS50ZXh0KHYrIiA6ICIpLmFwcGVuZChoKTt2LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImFkbWluIikmJgoxPT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmITA9PT1zdG9yZS5nZXQoImZpZWxkcy5WV19EUl9QUF9FTkFCTEVEIikmJmguYXBwZW5kKCQoIjxhPiIse2hyZWY6ImphdmFzY3JpcHQ6dm9pZCgwKSIsImNsYXNzIjoiZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzIiwiZGF0YS1kaXNjbGFpbWVyLWRpdmlkIjoiY2FsY3VsYXRvci1kaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtNC1kaXYiLCJkYXRhLWRpc2NsYWltZXItaWQiOiI0In0pLmFwcGVuZCgkKCI8c3VwPiIpLnRleHQoIjQiKSkpO3ouYXBwZW5kKGgpfSk7bnVsbCE9PWFbMF0ubHV4dXJ5VGF4JiZ2b2lkIDAhPT1hWzBdLmx1eHVyeVRheCYmMDxhWzBdLmx1eHVyeVRheCYmei5hcHBlbmQoZ2V0THV4dXJ5VGF4TGFiZWwoYVswXSkpO3ouY2hpbGRyZW4oKS5sZW5ndGg\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMgI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlc0xpc3QiKS5hcHBlbmQoeiksCiQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMiKS5zaG93KCkpOiQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMiKS5oaWRlKCk7Yj0ibGVhc2UiPT1hWzBdLnR5cGU\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckxlYXNlVGV4dCIpLnZhbCgpfHwiIikudG9Mb3dlckNhc2UoKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yRmluYW5jZVRleHQiKS52YWwoKXx8IiIpLnRvTG93ZXJDYXNlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlVHlwZSIpLnRleHQoYik7MDxhWzBdLnJlYmF0ZT8oYT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iJCIrYVswXS5yZWJhdGU6YVswXS5yZWJhdGUrIiAkIiwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VSZWJhdGUiKS50ZXh0KGEpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkUmViYXRlcyIpLnNob3coKSk6JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRSZWJhdGVzIikuaGlkZSgpO2lmKGQuY29uZGl0aW9uYWxSZWJhdGVzJiYKMDxkLmNvbmRpdGlvbmFsUmViYXRlcy5sZW5ndGgpe3ZhciBEPSIiO2QuY29uZGl0aW9uYWxSZWJhdGVzLmZvckVhY2goZnVuY3Rpb24odil7dmFyIGg9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIodi5hbW91bnQudG9TdHJpbmcoKSk7RCs9IjxsaT4iK3YubmFtZSsiOiAtIitEMkNVdGlscy5Gb3JtYXQudG9QcmljZShoKSsiPC9saT4ifSk7RCYmJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRSZWJhdGVzIikuYWZ0ZXIoJzxkaXYgaWQ9InBheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29uZGl0aW9uYWxSZWJhdGVzIiBjbGFzcz0icGF5bWVudENhbGN1bGF0b3JOb3RpY2VTZWN0aW9uIj48c3Ryb25nPicrKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJTZWxlY3RlZCBDb25kaXRpb25hbCBSZWJhdGVzOiI6IlJhYmFpcyBjb25kaXRpb25uZWxzIHPDqWxlY3Rpb25uw6k6IikrIjwvc3Ryb25nPjx1bD4iK0QrIjwvdWw+PC9kaXY+Iil9ZWxzZSAkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb25kaXRpb25hbFJlYmF0ZXMiKS5yZW1vdmUoKTsKc2V0UGF5bWVudENhbGN1bGF0b3JQb3B1cFRvb2x0aXAoKX0KZnVuY3Rpb24gc2V0UGF5bWVudENhbGN1bGF0b3JQb3B1cFRvb2x0aXAoKXtpZigiMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpKSQoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciAucGF5bWVudFRvb2x0aXAiKS5lYWNoKGZ1bmN0aW9uKGIpe3RyeXt2YXIgZT0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpLGQ9JCh0aGlzKS5oYXNDbGFzcygibGVmdFRvb2x0aXAiKT8id2VzdCI6ImVhc3QiOyQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6ZSxncmF2aXR5OmQsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJjbGljayIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goYyl7fX0pO2Vsc2V7Zm9yKHZhciBhPTA7NT5hO2ErKykkKCIjZGFya3Rvb2x0aXAtcGF5bWVudCIrYSkubGVuZ3RoJiYoJCgiI2Rhcmt0b29sdGlwLXBheW1lbnQiK2EpLnJlbW92ZSgpLAokKCIjZGFya3Rvb2x0aXAtcGF5bWVudCIrYSsid2l0aFRheGVzIikucmVtb3ZlKCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpLmVhY2goZnVuY3Rpb24oKXt0cnl7dmFyIGI9JCh0aGlzKS5hdHRyKCJkYXRhLXRvb2x0aXAiKSxlPSQodGhpcykuZmluZCgiLnBheW1lbnRUb29sdGlwIiksZD0iZWFzdCI7ZS5oYXNDbGFzcygibGVmdFRvb2x0aXAiKT9kPSJ3ZXN0IjplLmhhc0NsYXNzKCJyaWdodFRvb2x0aXAiKSYmKGQ9ImVhc3QiKTskKHRoaXMpLmRhcmtUb29sdGlwKHtjb250ZW50OmIsZ3Jhdml0eTpkLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIifSl9Y2F0Y2goYyl7fX0pfX0KZnVuY3Rpb24gc2V0UGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyhhKXt2YXIgYj1nZXRQb3BDb250YWluU2V0dGluZ3MoKTtiLnZlaGljbGVJbmZvPWE7JCgiI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm9ZZWFyIikudGV4dChhLnllYXIpO3ZhciBlPWEuQ0ZNb2RlbE5hbWV8fGEubW9kZWwsZD1hLm1ha2UudG9VcHBlckNhc2UoKSsiICIrZS50b1VwcGVyQ2FzZSgpOyJNRVJDRURFUy1CRU5aIiE9YS5tYWtlLnRvVXBwZXJDYXNlKCl8fC9cYnNwcmludGVyXGIvaS50ZXN0KGUpfHwoZD1hLm1ha2UudG9VcHBlckNhc2UoKSk7aWYoImJ1aWxkYW5kcHJpY2UuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8Yi5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJighMD09PWIubm9UcmltU2VsZWN0fHwidHJ1ZSI9PT1iLm5vVHJpbVNlbGVjdCl8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkpZCs9CiIgIithLkNGU3R5bGVOYW1lLnRvVXBwZXJDYXNlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mb01ha2VNb2RlbFRyaW0iKS50ZXh0KGQpO2U9YS5tYWtlKyJ8fHwiK2UrInx8fCIrYS55ZWFyO2IuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIikmJihlKz0ifHx8KFN0b2NrOiIrYi5zdG9ja051bWJlcisiKSIpO0Nvb2tpZXMuc2V0KCJsYXN0dmlld2VkdmVoaWNsZSIsZSxudWxsLCIvIik7YS5pbWFnZXNbMF0mJihlPShhLmltYWdlc1swXSsiIikucmVwbGFjZSgvaHR0cChzPyk6XC9cL21lZGlhLihjaHJvbWVkYXRhfGNhcmJvb2spLmNvbVwvTWVkaWFHYWxsZXJ5XC9tZWRpYVwvLywiLy9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2Fycy9jYiVDQi8lTUFLRS8lTU9ERUwvJVlFQVIvIikucmVwbGFjZSgiJUNCIixNYXRoLnJvdW5kKDk5Kk1hdGgucmFuZG9tKCkpKzFFNSkucmVwbGFjZSgiJU1BS0UiLAphLm1ha2UucmVwbGFjZSgiLSIsIl8iKSkucmVwbGFjZSgiJU1PREVMIixhLm1vZGVsLnJlcGxhY2UoIi0iLCJfIikpLnJlcGxhY2UoIiVZRUFSIixhLnllYXIpLCQoIiNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZURpdiIpLmh0bWwoJzxpbWcgaWQ9InBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUltYWdlIiBzcmM9IicrZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjMDM5OyIpKyciIGNsYXNzPSJwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZSI+JykpOyQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3Qgb3B0aW9uIikucmVtb3ZlKCk7KCJ1bmRlZmluZWQiIT10eXBlb2YgbmV3Y2FyRGV0YWlscz9uZXdjYXJEZXRhaWxzLmFsbFN0eWxlczphLm1vZGVsSlNPTi5zdHlsZXMpLmZvckVhY2goZnVuY3Rpb24oYyl7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLmFwcGVuZChuZXcgT3B0aW9uKGMuQ0ZTdHlsZU5hbWUsCmMuaWQpKX0pOyQoIiNwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiKS52YWwoYi5zdHlsZWlkKTtjYWxjVXBkYXRlUGF5bWVudEluZm8oKX0KZnVuY3Rpb24gY2FsY1VwZGF0ZVN0eWxlSW5mbyhhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5ld2NhckRldGFpbHMmJm5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwpe3ZhciBiPW5ld2NhckRldGFpbHMuYWxsU3R5bGVzLmZpbHRlcihmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09YX0pWzBdO2I9Ynx8bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5zdHlsZXNbMF07Yi5tYWtlPW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwubWFrZTtiLm1vZGVsPW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwubW9kZWw7Yi5pbWFnZXM9bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5pbWFnZXM7c2V0UGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyhiKX1lbHNle2I9c2V0dGluZ3MuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/c2V0dGluZ3Muc3RvY2tOdW1iZXI6IiI7dmFyIGU9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0VmVoaWNsZUpzb25CeVN0eWxlSUQ\/d3N3aWR0aD0wIjsKJC5hamF4KHt1cmw6ZSx0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDphLHZlaGljbGVpZDpifSxzdWNjZXNzOmZ1bmN0aW9uKGQpe3NldFBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8oZCl9fSl9fQpmdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvclBvcHVwSW5pdCgpe3ZhciBhPWdldFBvcENvbnRhaW5TZXR0aW5ncygpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCgiI3BheW1lbnRDYWxjdWxhdG9ySXNOZXdQb3B1cEVuYWJsZWQiKS52YWwoKTsiIiE9YS5wcm9tb0J1dHRvblRleHQmJiIxIiE9PUNvb2tpZXMuZ2V0KCJwb3B1cEZvcm1GaWxsZWQiKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9ySXNOZXdQb3B1cEVuYWJsZWQiKS52YWwoKT8oLTEhPT1hLnByb21vQnV0dG9uVGV4dC5pbmRleE9mKCI8YnIiKSYmKGEucHJvbW9CdXR0b25UZXh0PWEucHJvbW9CdXR0b25UZXh0LnN1YnN0cigwLGEucHJvbW9CdXR0b25UZXh0LmluZGV4T2YoIjxiciIpKSksJCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIGEiKS5odG1sKGEucHJvbW9CdXR0b25UZXh0KSwkKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKS5zaG93KCkpOgokKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKS5oaWRlKCk7bGV0IGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSJsZWFzaW5nIl0nKSxlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0iZmluYW5jaW5nIl0nKSxkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0iY2FzaCJdJyk7Yi5oaWRkZW49IjEiPT0oYS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50c3x8ITEpO2UuaGlkZGVuPSIxIj09KGEubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50c3x8ITEpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY2FsYy1wYXltZW50LWNhc2giKS5oaWRkZW49ITA7c2V0VGltZW91dCgoKT0+e2lmKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiKSYmCiIiPT0kKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpKXt2YXIgYz1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInRyYWRlaW5fc3VibWl0X2RhdGEiKSk7JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoYy52YWx1ZSk7X2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikmJihjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikpLCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikuYXR0cigiZGF0YS1jdXJyZW50IixjLnZhbHVlKSl9aWYoIiIhPSQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkmJjA8JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSl7Yz1wYXJzZUludCgkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpKXx8MDt2YXIgZj1wYXJzZUludCgkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLmF0dHIoImRhdGEtY3VycmVudCIpKXx8YzskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoZik7CiQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLmF0dHIoIm1heCIsYyk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkJ1dHRvbiIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS5zaG93KCl9ZWxzZSAkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoIiIpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5CdXR0b24iKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnRyaWdnZXIoImJsdXIiKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIEN0YVRyYWNrJiZDdGFUcmFjay5nZXRUcmFja1N0ZXAoIlBheW1lbnRDYWxjdWxhdG9yQWN0aW9uQm94Iikpe2xldCB1PW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IlBheW1lbnRDYWxjdWxhdG9yQWN0aW9uQm94Iixmb3JjZVVwZGF0ZTohMCwKb25Db21wbGV0ZTpuPT57bi5kYXRhc2V0LmNvbXBsX3R4dF9mcj1uLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZnIucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RnJbMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLGN0YVBheW1lbnRUZXh0RnJbMV0pO24uZGF0YXNldC5jb21wbF90eHRfZW49bi5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2VuLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEVuWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IixjdGFQYXltZW50VGV4dEVuWzFdKTtuPXtwYXltZW50Ont9fTtfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpJiYobj1KU09OLnBhcnNlKF9sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIikpKTtsZXQgcD0iRlJFTkNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT9jdGFQYXltZW50VGV4dEZyOmN0YVBheW1lbnRUZXh0RW47bi5wYXltZW50PXtsaXN0UHJpY2U6cFsyXXx8CiIiLHBheW1lbnQ6cFswXXx8IiIscmF0ZTpwWzFdfHwiIixwYXltZW50VmFsdWU6Y3RhUGF5bWVudFZhbHVlc3x8W119O19sb2NhbFN0b3JhZ2VTZXQoInJldGFpbF90cmFja19kYXRhIixKU09OLnN0cmluZ2lmeShuKSwzMCk7Q29va2llcy5zZXQoImN0YV9kYXRhX3ZhbGlkIiwxLDEsIi8iKX19fSk7Yz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYSIpO2Y9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29uZmlybSIpO251bGwhPWYmJihmLmhpZGRlbiYmKGYuaGlkZGVuPSExKSxudWxsIT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKSYmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLmNsYXNzTGlzdC5yZW1vdmUoImZsZXgtY2VudGVyIiksCmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLmNsYXNzTGlzdC5hZGQoImZsZXgtZW5kIiwiLW1yNSIpKSxjPWYucXVlcnlTZWxlY3RvcigiYSIpKTtjLmlubmVyVGV4dD0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iQ29uZmlybSI6IkNvbmZpcm1lciI7Yy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbj0+e24ucHJldmVudERlZmF1bHQoKTtuPSJjYXNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYhbnx8ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudCh1KTskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuY2xvc2UoKX0pO2Y9bj0+e249ImNhc2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik7CiQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5pcygiOmhpZGRlbiIpJiYhbnx8ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudCh1KX07bGV0IG09YS5wYXltZW50VHlwZTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKGM9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxtPSJ1bmRlZmluZWQiIT1jWzBdP2NbMF06bSxtPSJsZWFzaW5nIj09PW0\/ImxlYXNlIjoiZmluYW5jaW5nIj09PW0\/ImZpbmFuY2UiOm0pOyJsZWFzZSI9PW0mJmI\/Yi5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2siLHtkZXRhaWw6e2lzRmlyc3RSdW46ITB9fSkpOiJmaW5hbmNlIj09bSYmZT9lLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGljayIse2RldGFpbDp7aXNGaXJzdFJ1bjohMH19KSk6ZC5kaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgiY2xpY2siLAp7ZGV0YWlsOntpc0ZpcnN0UnVuOiEwfX0pKTskKCIucmV2ZWFsLW1vZGFsIikub2ZmKCJwb3B1cGl6ZXIuY2xvc2UiLGYpLm9uKCJwb3B1cGl6ZXIuY2xvc2UiLGYpOyQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLnNob3coKX19LDEwMCk7Y2FsY1VwZGF0ZVN0eWxlSW5mbyhhLnN0eWxlaWQpfQpmdW5jdGlvbiBjYWxjVXBkYXRlUGF5bWVudEluZm8oKXt2YXIgYT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxiPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiLGU9YS5wYXltZW50VHlwZSxkPTAsYz1wYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8MCksZj1udWxsLHU9bnVsbCxtPWdldE9wdGlvbnNBbW91bnQoYSksbj1nZXRBY2Nlc3Nvcmllc0Ftb3VudChhKSxwPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoYSkseD1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYSkseT1hLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmKCEwPT09YS5ub1RyaW1TZWxlY3R8fCJ0cnVlIj09PWEubm9UcmltU2VsZWN0KXx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PQokKCIjUEFHRUlEIikudmFsKCkscj0hMSx0PWEuaGFzT3duUHJvcGVydHkoInN0b2NrTnVtYmVyIik\/YS5zdG9ja051bWJlcjoiIixBPWEuaGFzT3duUHJvcGVydHkoInZpbiIpP2EudmluOiIiO2lmKHkmJiF0KXt2YXIgdz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpO3cmJih0PXcudmFsdWV8fCIiKX15JiYhQSYmKHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25ldmluIikpJiYoQT13LnZhbHVlfHwiIik7eSYmIWEuc3R5bGVpZCYmKHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGl2ZVN0eWxlSUQiKSkmJihhLnN0eWxlaWQ9dy52YWx1ZXx8YS5zdHlsZWlkKTtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKHU9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSxlPSJ1bmRlZmluZWQiIT11WzBdP3VbMF06ZSxyPXVbMV0sZD1wYXJzZUludCh1WzRdKS0KYyxkPTA+ZD8wOmQsZj11WzJdLHU9dVszXSk7YS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cyYmImxlYXNlIj09ZSYmKGU9ImZpbmFuY2UiLHI9ITEsZD0wLHU9Zj1udWxsKTthLm5vTW90b2luc2lnaHRGaW5hbmNlUGF5bWVudHMmJlsiZmluYW5jZSIsImZpbmFuY2luZyJdLmluY2x1ZGVzKGUpJiYoZT0ibGVhc2UiLHI9ITEsZD0wLHU9Zj1udWxsKTtsZXQgQj1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihnKXtnLmNoZWNrZWQmJihnPWcuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmQi5wdXNoKGcpfSk7Y2FsY1VwZGF0ZVBheW1lbnRYaHI9JC5hamF4KHt1cmw6Yix0eXBlOiJQT1NUIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7c3R5bGVpZDphLnN0eWxlaWQscGF5bWVudFR5cGU6ZSxkb3ducGF5bWVudDpjK2Qsb3B0aW9uc0Ftb3VudDptLHBheW1lbnRGcmVxdWVuY3k6ZiwKa21BbGxvd2FuY2U6dSxpc0ludmVudG9yeTp5LG9wdGlvbnM6bSxzbjp0LHZpbjpBLGNvbmRpdGlvbmFsUmViYXRlSWRzOkIuam9pbigiLCIpLGFjY2Vzc29yaWVzOm4sc2VsZWN0ZWRBY2Nlc3NvcmllczpwLHByb3RlY3Rpb25QbGFuczp4fSxzdWNjZXNzOmZ1bmN0aW9uKGcpe2cuc2VsZWN0ZWRUZXJtPXI7JCgiI21heERvd25QYXltZW50Rm9yVHJpbSIpLnZhbChnLm1heERvd24pOyQoIiNtYXhEb3duUGF5bWVudEZpbmFuY2VGb3JUcmltIikudmFsKGcubWF4RG93bkZpbmFuY2UpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKGQpO2U9ImxlYXNlIj09PWU\/ImxlYXNpbmciOiJmaW5hbmNlIj09PWU\/ImZpbmFuY2luZyI6ZTsiY2FzaCI9PT1lJiYoJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpKTsKZy5jdXJyZW50UGF5bWVudCYmMCE9PWcuY3VycmVudFBheW1lbnQubGVuZ3RofHwiY2FzaCI9PT1lPygkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpLGcuY3VycmVudFBheW1lbnQmJjA8Zy5jdXJyZW50UGF5bWVudC5sZW5ndGgmJigkKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbChnLmN1cnJlbnRQYXltZW50WzBdLmludGVydmFsKSxlPWV8fCgibGVhc2UiPT09CmcuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyIpKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuc2hvdygpKTtzaG93SGlkZVBheW1lbnRTZWN0aW9uKGcsZSk7cG9wdWxhdGVMZWFzZUtNQWxsb3dhbmNlRHJvcGRvd24oZyk7ImxlYXNpbmciPT1lPyQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoIi5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpO2dldENhc2hQcmljZUJsb2NrKGcpOwoiY2FzaCI9PT1lP2VuYWJsZUNhc2hPcHRpb24oKTpnLmN1cnJlbnRQYXltZW50JiZnLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKGNhbGNDdXJQYXltZW50PWcsc2hvd1BheW1lbnRzKGcuY3VycmVudFBheW1lbnQsZy5wYXltZW50RmVlcyxnLm1ha2VpZCxnKSl9LGVycm9yOmZ1bmN0aW9uKGcscSx6KXsiYWJvcnQiIT09cSYmY29uc29sZS5lcnJvcigiY2FsY1VwZGF0ZVBheW1lbnRJbmZvOjogUGF5bWVudCBjYWxjdWxhdGlvbiBlcnJvcjoiLHEseil9fSl9CmZ1bmN0aW9uIGVuYWJsZUNhc2hPcHRpb24oKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nY2FzaCddIikuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUxlYXNlIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUZpbmFuY2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JDb21tb25Ob3RpY2UiKS5oaWRlKCk7CiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUluY2x1ZGVkRmVlcyIpLmhpZGUoKTskKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDYXNoIikucHJvcCgiaGlkZGVuIiwhMSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLnNob3coKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIikuaGlkZGVuPSExOyQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITEpOwoxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJigkKCIjZHJDYWxjdWxhdG9yVmlld0Rpc2NsYWltZXJMaW5rIikuaGlkZSgpLGNoYW5nZVBhZ2VDYXNoVmFsdWUoKSl9CmZ1bmN0aW9uIGNoYW5nZVBhZ2VDYXNoVmFsdWUoKXtpZihudWxsIT09Y2FzaFByaWNlRm9yUGFnZSl7dmFyIGE9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkVOR0xJU0giOiJGUkVOQ0giLGI9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoY2FzaFByaWNlRm9yUGFnZS50b1N0cmluZygpKSxlPXN0b3JlLmdldCgiaTE4biIpLkRFRkFVTFRfUEFZTUVOVF9DQVNILGQ9JzxzcGFuIGNsYXNzPSJ0eHQtcGF5bWVudCBmb3JtYXQtcHJpY2UiPicrYisiPC9zcGFuPiIsYz1zdG9yZS5nZXQoImkxOG4iKS5MQUJFTF9CRUZPUkVfVEFYRVMudG9Mb3dlckNhc2UoKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMiwgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTEiKS5odG1sKGUpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUxLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMiIpLmh0bWwoZCk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTMsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUzIikuaHRtbChjKTsKYT0iRU5HTElTSCI9PT1hPyIkIitiOmIrIiAkIjtjdGFQYXltZW50VGV4dEZyPVthLCJDb21wdGFudCIsIiJdO2N0YVBheW1lbnRUZXh0RW49W2EsIkNhc2giLCIiXTtjdGFQYXltZW50VmFsdWVzPVtjYXNoUHJpY2VGb3JQYWdlLDAsMCwiY2FzaCJdOyQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5sZW5ndGgmJigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikuaGlkZSgpLCQoIi5wYXltZW50SW5mb0J1YmJsZUJuUCIpLmhpZGUoKSk7JCgiI2Rhcmt0b29sdGlwLXBheW1lbnRXcmFwcGVyLCAjZGFya3Rvb2x0aXAtdmRwUGF5bWVudFRvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBJbmZvVG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcFVzZWRJbmZvVG9vbHRpcCIpLnJlbW92ZSgpOyQoIi52ZHBQYXltZW50VG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBJbmZvVG9vbHRpcCwgLnBheW1lbnRXcmFwcGVyIC52ZHBVc2VkSW5mb1Rvb2x0aXAiKS5kYXJrVG9vbHRpcCh7b3BhY2l0eTowfSl9fQpmdW5jdGlvbiBnZXRDYXNoUHJpY2VCbG9jayhhKXt2YXIgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLGU9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksZD1lLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmKCEwPT09ZS5ub1RyaW1TZWxlY3R8fCJ0cnVlIj09PWUubm9UcmltU2VsZWN0KXx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSxjPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCI7bGV0IGY9cGFyc2VJbnQoYS5vcmlnaW5hbFByaWNlfHxlLnZlaGljbGVJbmZvJiZlLnZlaGljbGVJbmZvLm1zcnBBbGxJbnx8MCk7dmFyIHU9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZi50b1N0cmluZygpKTtsZXQgbT1iLnF1ZXJ5U2VsZWN0b3IoIi5jYWxjLXBheW1lbnQtY2FzaCIpO3ZhciBuPSIxIj09CmIucXVlcnlTZWxlY3RvcigiI2Rpc3BsYXlCcmVha2Rvd24iKS52YWx1ZSxwPSIxIj09Yi5xdWVyeVNlbGVjdG9yKCIjaGlkZVJlYmF0ZXMiKS52YWx1ZSx4PSIxIj09Yi5xdWVyeVNlbGVjdG9yKCIjc2NyYXRjaE9yaWdpbmFsUHJpY2UiKS52YWx1ZTtsZXQgeT0iRU5HTElTSCI9PWM\/IlN0YXJ0aW5nIGF0Ijoiw4AgcGFydGlyIGRlIjtiPSJFTkdMSVNIIj09Yz8iWW91ciBwcmljZSI6IlZvdHJlIHByaXgiO2QmJih5PSQoIiNORVdJTlZfUFJJQ0VfTEFCRUxfT1JJR0lOQUwiKS52YWwoKSxiPSQoIiNORVdJTlZfUFJJQ0VfTEFCRUxfRklOQUwiKS52YWwoKSxlLnZlaGljbGVJbmZvJiZ5LnJlcGxhY2UoInskTUFLRX0iLGUudmVoaWNsZUluZm8ubWFrZSkucmVwbGFjZSgieyRNT0RFTH0iLGUudmVoaWNsZUluZm8uQ0ZNb2RlbE5hbWUpLnJlcGxhY2UoInskVkVSU0lPTn0iLGUudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUpLnJlcGxhY2UoInskWUVBUn0iLGUudmVoaWNsZUluZm8ueWVhcikpOwpsZXQgcj0iRU5HTElTSCI9PWM\/ImRlc2NFbiI6ImRlc2NGciI7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlVG90YWwiKS5odG1sKGYpO2Q9eCYmYS5wcmljZUFtZW5kZW1lbnRzJiYwPmEucHJpY2VBbWVuZGVtZW50cy50b3RhbD8ic3RyaWtlLXByaWNlIjoiIjtjPWAKCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7biYmIXA\/Yjp5fTwvc3Bhbj4KCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9ICR7ZH0iPiR7dX08L3NwYW4+CgkJPC9kaXY+YDtpZigwPT0oYS5wcmljZUFtZW5kZW1lbnRzfHxbXSkubGVuZ3RoKW0uaW5uZXJIVE1MPWM7ZWxzZXt4PShhLnByaWNlQW1lbmRlbWVudHMuZmVlc0xpc3R8fFtdKS5yZWR1Y2UoKEIsZyk9PntpZigwPT1nLmFtb3VudClyZXR1cm4gQjtsZXQgcT0iIjsobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoZy5kZXNjRW4pLEQ9PkQuY2hhckNvZGVBdCgwKSkpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImFkbWluIikmJiEwPT09c3RvcmUuZ2V0KCJmaWVsZHMuVldfRFJfUFBfRU5BQkxFRCIpJiYocT0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJjYWxjdWxhdG9yLWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy00LWRpdiIgIGRhdGEtZGlzY2xhaW1lci1pZD0iNCI+PHN1cD40PC9zdXA+PC9hPicpOwpsZXQgej1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihnLmFtb3VudC50b1N0cmluZygpKTtyZXR1cm4gQis9YAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4keyhuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYihnW3JdKSxEPT5ELmNoYXJDb2RlQXQoMCkpKX08L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUiPjxzcGFuIGNsYXNzPSIkeyJmb3JtYXQtcHJpY2UifSI+JHt6fTwvc3Bhbj4ke3F9PC9zcGFuPgoJCQk8L2Rpdj4KCQlgfSwiIik7dmFyIHQ9KGEucHJpY2VBbWVuZGVtZW50cy5pbmNlbnRpdmVzTGlzdHx8W10pLnJlZHVjZSgoQixnKT0+e2lmKDA9PWcuYW1vdW50KXJldHVybiBCO2xldCBxPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGcuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiBCKz1gCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGdbcl0pLHo9PnouY2hhckNvZGVBdCgwKSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSI+LSR7cX08L3NwYW4+CgkJCTwvZGl2PgoJCWB9LCIiKTt1PShhLnByaWNlQW1lbmRlbWVudHMucG9zdFRheEluY2VudGl2ZXNMaXN0fHxbXSkucmVkdWNlKChCLGcpPT57aWYoMD09Zy5hbW91bnQpcmV0dXJuIEI7bGV0IHE9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZy5hbW91bnQudG9TdHJpbmcoKSk7cmV0dXJuIEIrPWAKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHsobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoZ1tyXSksej0+ei5jaGFyQ29kZUF0KDApKSl9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9Ij4tJHtxfTwvc3Bhbj4KCQkJPC9kaXY+CgkJYH0sIiIpO3ZhciBBPWYtKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbEZlZXx8MCkrKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbFJlYmF0ZXx8MCksdz0wPChhLnByaWNlQW1lbmRlbWVudHMuY29uZGl0aW9uYWxSZWJhdGVzVG90YWx8fDApO2U9dyYmYS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U\/YS5wcmljZUFtZW5kZW1lbnRzLmZpbmFsUHJpY2U6ZjtbIk5FV0NBUlMiLCJORVdDQVJERVRBSUxTIl0uaW5jbHVkZXMoc2l0ZVBhZ2UubmFtZSl8fChBPWYtKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbEZlZXx8MCkrKGEucHJpY2VBbWVuZGVtZW50cy50b3RhbFJlYmF0ZXx8MCksZT13JiZhLnByaWNlQW1lbmRlbWVudHMuZmluYWxQcmljZT9hLnByaWNlQW1lbmRlbWVudHMuZmluYWxQcmljZTpmKTtjYXNoUHJpY2VGb3JQYWdlPWU7QT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihBLnRvU3RyaW5nKCkpO2U9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZS50b1N0cmluZygpKTsKYT14Lmxlbmd0aHx8dC5sZW5ndGg7bj1uJiYhcCYmYT9gCgkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke3l9PC9zcGFuPgoJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0gJHtkfSI+JHtBfTwvc3Bhbj4KCQk8L2Rpdj5gK3grdDoiIjthJiYocD0iIiE9bj8icHJpY2VGaW5hbCI6IiIsYT0iIiwxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJiEwPT09c3RvcmUuZ2V0KCJmaWVsZHMuVldfRFJfUFBfRU5BQkxFRCIpJiYoYT0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iY2FsY3VsYXRvci1kaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtMS1kaXYiIGRhdGEtZGlzY2xhaW1lci1pZD0iMSI+PHN1cD4xPC9zdXA+PC9hPicpLGM9YAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4ke2J9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9IiR7cH0iPjxzcGFuIGNsYXNzPSIkeyJmb3JtYXQtcHJpY2UifSI+JHtlfTwvc3Bhbj4ke2F9PC9zcGFuPgoJCQk8L2Rpdj5gKTttLmlubmVySFRNTD1uK2MrdX19CmZ1bmN0aW9uIGdldE9wdGlvbnNBbW91bnQoYSl7dmFyIGI9YS5wYXltZW50T3B0aW9ucz9hLnBheW1lbnRPcHRpb25zOjA7YS5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJighMD09PWEubm9UcmltU2VsZWN0fHwidHJ1ZSI9PT1hLm5vVHJpbVNlbGVjdCl8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwkKCIjUEFHRUlEIikudmFsKCk7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTtpZihlfHxhJiZlKWI9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkT3B0aW9uc1RvdGFsLGE9cGFyc2VJbnQobW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLmRlZmF1bHRPcHRpb25BbW91bnQpLDA8YSYmKGItPWEsYj1NYXRoLm1heCgwLGIpKTtyZXR1cm4gYnx8CjB9ZnVuY3Rpb24gZ2V0QWNjZXNzb3JpZXNBbW91bnQoYSl7dmFyIGI9MDthLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmKCEwPT09YS5ub1RyaW1TZWxlY3R8fCJ0cnVlIj09PWEubm9UcmltU2VsZWN0KXx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCQoIiNQQUdFSUQiKS52YWwoKTthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhlfHxhJiZlKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NUb3RhbCYmKGI9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjVG90YWwpO3JldHVybiBifHwwfQpmdW5jdGlvbiBnZXRTZWxlY3RlZEFjY2Vzc29yaWVzKGEpe3ZhciBiPSIiO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7KGV8fGEmJmUpJiZ2b2lkIDAhPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY0lkcyYmKGI9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjSWRzLmpvaW4oIiwiKSk7cmV0dXJuIGJ8fCIifQpmdW5jdGlvbiBnZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQoYSl7dmFyIGI9MDthLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmKCEwPT09YS5ub1RyaW1TZWxlY3R8fCJ0cnVlIj09PWEubm9UcmltU2VsZWN0KXx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCQoIiNQQUdFSUQiKS52YWwoKTthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlOyhlfHxhJiZlKSYmdm9pZCAwIT1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRQcm90ZWN0aW9uUGxhblRvdGFsJiYoYj1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRQcm90ZWN0aW9uUGxhblRvdGFsKTtyZXR1cm4gYnx8MH0KZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYSl7cmV0dXJuIGEucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZywiLCIpfWZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZFRyaWdnZXIoYSxiKXskKGEpLnRyaWdnZXIoInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIix7b3JpZ0V2ZW50OmJ9KTthPW5ldyBFdmVudCgicGF5bWVudENhbGN1bGF0b3IuY2xpY2siKTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGEpfWZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZE5ld1ZEUFRyaWdnZXIoYSxiKXt2YXIgZT0kKCIjcG9wdXBtYWtlIikudmFsKCksZD0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLGM9JCgiI3BvcHVweWVhciIpLnZhbCgpO2dhVHJhY2soIl90cmFja0V2ZW50IiwiTmV3LVZEUC1PdXRib3VuZC1jbGlja3MiLCJDYWxjdWxhdHJpY2UiLGUrIi0iK2QrIi0iK2MpO3BheW1lbnRDYWxjdWxhdG9yQ2xpY2tlZFRyaWdnZXIoYSxiKX0KZnVuY3Rpb24gZm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQoYSxiLGUsZCxjKXtkPXZvaWQgMD09PWQ\/IiI6ZDtjPXZvaWQgMD09PWM\/ITA6YztiPXBhcnNlRmxvYXQoYSktcGFyc2VGbG9hdChiKTt2YXIgZj1zdG9yZS5nZXQoImZpZWxkcyIpLkFETUlOX1NIT1dfRUZGRUNUSVZFX1JBVEVfU0VMRUNUO2lmKCJmYWxzZSI9PT1zdG9yZS5nZXQoImZpZWxkcyIpLkFETUlOX1NIT1dfRUZGRUNUSVZFX1JBVEV8fCJldmVyeXdoZXJlIiE9ZiYmMD49YilyZXR1cm4iIjtiPXN0b3JlLmdldCgiaTE4biIpLkVGRkVDVElWRV9SQVRFX0xBQkVMO2Y9JCgiI2lzbW9iaWxlIikudmFsKCk\/Ijxici8+IjoiICI7Yj1iLnJlcGxhY2UoInskUkFURX0iLGA8c3BhbiAke2V9PiR7YX0lPC9zcGFuPmApO3JldHVybmAke2Z9JHtjP2A8ZGl2ICR7ZH0+YDoiIn0oICR7Yn0gKSR7Yz8iPC9kaXY+IjoiIn1gfQpmdW5jdGlvbiBwb3B1bGF0ZUxlYXNlS01BbGxvd2FuY2VEcm9wZG93bihhKXt0cnl7aWYoYS5sZWFzZSYmMDxhLmxlYXNlLmxlbmd0aCl7dmFyIGI9W107YS5sZWFzZS5mb3JFYWNoKGZ1bmN0aW9uKGQpey0xPT0kLmluQXJyYXkoZC5rbV9hbGxvd2FuY2UsYikmJmIucHVzaChkLmttX2FsbG93YW5jZSl9KTtiLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGM9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZC50b0ZpeGVkKDApKTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLmFwcGVuZChuZXcgT3B0aW9uKGMrIiBrbSIsZCkpfSk7dmFyIGU9MkU0O2EuY3VycmVudFBheW1lbnRbMF0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlJiYoZT0wPGEuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlP2EuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlOjJFNCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoZSl9fWNhdGNoKGQpe2NvbnNvbGUuZXJyb3IoIkVycm9yIHBvcHVsYXRpbmcgbGVhc2Uga20gYWxsb3dhbmNlIGRyb3Bkb3duIGluIHRoZSBmdW5jdGlvbiBwb3B1bGF0ZUxlYXNlS01BbGxvd2FuY2VEcm9wZG93bjogIiwKZCl9fQpmdW5jdGlvbiBzaG93SGlkZVBheW1lbnRTZWN0aW9uKGEsYil7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTswPCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpW2RhdGEtdHlwZT0nIitiKyInXSIpLmxlbmd0aCYmJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSciK2IrIiddIikuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7ImNhc2giIT09YiYmKHZvaWQgMCE9YS5maW5hbmNlJiYwPT09YS5maW5hbmNlLmxlbmd0aD8kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5oaWRlKCk6JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuc2hvdygpLHZvaWQgMCE9YS5sZWFzZSYmMD09PWEubGVhc2UubGVuZ3RoPyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5oaWRlKCk6JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLnNob3coKSl9CmZ1bmN0aW9uIHNob3dEaXNjbGFpbWVyTGluaygpezE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXltZW50Q2FsY3VsYXRvclRlcm1zIikuc3R5bGUuZGlzcGxheT0iYmxvY2siLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKS5zdHlsZS5kaXNwbGF5PSJibG9jayIpKX0KZnVuY3Rpb24gaGlkZURpc2NsYWltZXJMaW5rKCl7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBheW1lbnRDYWxjdWxhdG9yVGVybXMiKS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJDYWxjdWxhdG9yVmlld0Rpc2NsYWltZXJMaW5rIikmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJDYWxjdWxhdG9yVmlld0Rpc2NsYWltZXJMaW5rIikuc3R5bGUuZGlzcGxheT0ibm9uZSIpKX1mdW5jdGlvbiBnZXRMdXh1cnlUYXhMYWJlbChhKXthPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGEubHV4dXJ5VGF4LnRvRml4ZWQoMCkpKTtyZXR1cm4iPGxpPiIrc3RvcmUuZ2V0KCJpMThuIikuV0VCX1NJVEVfUFJJQ0VfQlJFQUtET1dOX0xVWFVSWV9UQVhfTEFCRUwrIiA6ICIrYSsiPC9saT4ifTsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9pbWFzay5taW4uanMgKiovCiFmdW5jdGlvbih0LGUpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/ZShleHBvcnRzKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImV4cG9ydHMiXSxlKTplKCh0PSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOnR8fHNlbGYpLklNYXNrPXt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6e30sbj1mdW5jdGlvbih0KXtyZXR1cm4gdCYmdC5NYXRoPT1NYXRoJiZ0fSxpPW4oIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzKXx8bigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXx8bigib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxuKCJvYmplY3QiPT10eXBlb2YgZSYmZSl8fGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KCl8fEZ1bmN0aW9uKCJyZXR1cm4gdGhpcyIpKCkscj17fSx1PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4hIXQoKX1jYXRjaCh0KXtyZXR1cm4hMH19LHM9IXUoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KVsxXX0pKSxhPSF1KChmdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKCl7fS5iaW5kKCk7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIHR8fHQuaGFzT3duUHJvcGVydHkoInByb3RvdHlwZSIpfSkpLG89YSxsPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLGg9bz9sLmJpbmQobCk6ZnVuY3Rpb24oKXtyZXR1cm4gbC5hcHBseShsLGFyZ3VtZW50cyl9LGM9e30sZj17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxwPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsZD1wJiYhZi5jYWxsKHsxOjJ9LDEpO2MuZj1kP2Z1bmN0aW9uKHQpe3ZhciBlPXAodGhpcyx0KTtyZXR1cm4hIWUmJmUuZW51bWVyYWJsZX06Zjt2YXIgdixnLGs9ZnVuY3Rpb24odCxlKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmdCksY29uZmlndXJhYmxlOiEoMiZ0KSx3cml0YWJsZTohKDQmdCksdmFsdWU6ZX19LHk9YSxtPUZ1bmN0aW9uLnByb3RvdHlwZSxiPW0uYmluZCxfPW0uY2FsbCxBPXkmJmIuYmluZChfLF8pLEM9eT9mdW5jdGlvbih0KXtyZXR1cm4gdCYmQSh0KX06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJmZ1bmN0aW9uKCl7cmV0dXJuIF8uYXBwbHkodCxhcmd1bWVudHMpfX0sRT1DLEY9RSh7fS50b1N0cmluZyksUz1FKCIiLnNsaWNlKSx3PWZ1bmN0aW9uKHQpe3JldHVybiBTKEYodCksOCwtMSl9LEI9QyxEPXUseD13LE09aS5PYmplY3QsTz1CKCIiLnNwbGl0KSxQPUQoKGZ1bmN0aW9uKCl7cmV0dXJuIU0oInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pKT9mdW5jdGlvbih0KXtyZXR1cm4iU3RyaW5nIj09eCh0KT9PKHQsIiIpOk0odCl9Ok0sVD1pLlR5cGVFcnJvcixJPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpdGhyb3cgVCgiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gIit0KTtyZXR1cm4gdH0saj1QLFI9SSxWPWZ1bmN0aW9uKHQpe3JldHVybiBqKFIodCkpfSxMPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0fSxOPUwsVT1mdW5jdGlvbih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQ\/bnVsbCE9PXQ6Tih0KX0sej1pLHE9TCxIPWZ1bmN0aW9uKHQpe3JldHVybiBxKHQpP3Q6dm9pZCAwfSxZPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9IKHpbdF0pOnpbdF0mJnpbdF1bZV19LFo9Qyh7fS5pc1Byb3RvdHlwZU9mKSxHPVkoIm5hdmlnYXRvciIsInVzZXJBZ2VudCIpfHwiIixLPWksJD1HLFc9Sy5wcm9jZXNzLFg9Sy5EZW5vLEo9VyYmVy52ZXJzaW9uc3x8WCYmWC52ZXJzaW9uLFE9SiYmSi52ODtRJiYoZz0odj1RLnNwbGl0KCIuIikpWzBdPjAmJnZbMF08ND8xOisodlswXSt2WzFdKSksIWcmJiQmJighKHY9JC5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fHZbMV0+PTc0KSYmKHY9JC5tYXRjaCgvQ2hyb21lXC8oXGQrKS8pKSYmKGc9K3ZbMV0pO3ZhciB0dD1nLGV0PXUsbnQ9ISFPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzJiYhZXQoKGZ1bmN0aW9uKCl7dmFyIHQ9U3ltYm9sKCk7cmV0dXJuIVN0cmluZyh0KXx8IShPYmplY3QodClpbnN0YW5jZW9mIFN5bWJvbCl8fCFTeW1ib2wuc2hhbSYmdHQmJnR0PDQxfSkpLGl0PW50JiYhU3ltYm9sLnNoYW0mJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yLHJ0PVksdXQ9TCxzdD1aLGF0PWl0LG90PWkuT2JqZWN0LGx0PWF0P2Z1bmN0aW9uKHQpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgdH06ZnVuY3Rpb24odCl7dmFyIGU9cnQoIlN5bWJvbCIpO3JldHVybiB1dChlKSYmc3QoZS5wcm90b3R5cGUsb3QodCkpfSxodD1pLlN0cmluZyxjdD1MLGZ0PWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gaHQodCl9Y2F0Y2godCl7cmV0dXJuIk9iamVjdCJ9fSxwdD1pLlR5cGVFcnJvcixkdD1mdW5jdGlvbih0KXtpZihjdCh0KSlyZXR1cm4gdDt0aHJvdyBwdChmdCh0KSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9LHZ0PWgsZ3Q9TCxrdD1VLHl0PWkuVHlwZUVycm9yLG10PXtleHBvcnRzOnt9fSxidD1pLF90PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxBdD1mdW5jdGlvbih0LGUpe3RyeXtfdChidCx0LHt2YWx1ZTplLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfWNhdGNoKG4pe2J0W3RdPWV9cmV0dXJuIGV9LEN0PUF0LEV0PSJfX2NvcmUtanNfc2hhcmVkX18iLEZ0PWlbRXRdfHxDdChFdCx7fSksU3Q9RnQ7KG10LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gU3RbdF18fChTdFt0XT12b2lkIDAhPT1lP2U6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjoiMy4yMS4wIixtb2RlOiJnbG9iYWwiLGNvcHlyaWdodDoiqSAyMDE0LTIwMjIgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkiLGxpY2Vuc2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzL2Jsb2IvdjMuMjEuMC9MSUNFTlNFIixzb3VyY2U6Imh0dHBzOi8vZ2l0aHViLmNvbS96bG9pcm9jay9jb3JlLWpzIn0pO3ZhciB3dD1JLEJ0PWkuT2JqZWN0LER0PWZ1bmN0aW9uKHQpe3JldHVybiBCdCh3dCh0KSl9LHh0PUR0LE10PUMoe30uaGFzT3duUHJvcGVydHkpLE90PU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIE10KHh0KHQpLGUpfSxQdD1DLFR0PTAsSXQ9TWF0aC5yYW5kb20oKSxqdD1QdCgxLi50b1N0cmluZyksUnQ9ZnVuY3Rpb24odCl7cmV0dXJuIlN5bWJvbCgiKyh2b2lkIDA9PT10PyIiOnQpKyIpXyIranQoKytUdCtJdCwzNil9LFZ0PWksTHQ9bXQuZXhwb3J0cyxOdD1PdCxVdD1SdCx6dD1udCxxdD1pdCxIdD1MdCgid2tzIiksWXQ9VnQuU3ltYm9sLFp0PVl0JiZZdC5mb3IsR3Q9cXQ\/WXQ6WXQmJll0LndpdGhvdXRTZXR0ZXJ8fFV0LEt0PWZ1bmN0aW9uKHQpe2lmKCFOdChIdCx0KXx8IXp0JiYic3RyaW5nIiE9dHlwZW9mIEh0W3RdKXt2YXIgZT0iU3ltYm9sLiIrdDt6dCYmTnQoWXQsdCk\/SHRbdF09WXRbdF06SHRbdF09cXQmJlp0P1p0KGUpOkd0KGUpfXJldHVybiBIdFt0XX0sJHQ9aCxXdD1VLFh0PWx0LEp0PWZ1bmN0aW9uKHQsZSl7dmFyIG49dFtlXTtyZXR1cm4gbnVsbD09bj92b2lkIDA6ZHQobil9LFF0PWZ1bmN0aW9uKHQsZSl7dmFyIG4saTtpZigic3RyaW5nIj09PWUmJmd0KG49dC50b1N0cmluZykmJiFrdChpPXZ0KG4sdCkpKXJldHVybiBpO2lmKGd0KG49dC52YWx1ZU9mKSYmIWt0KGk9dnQobix0KSkpcmV0dXJuIGk7aWYoInN0cmluZyIhPT1lJiZndChuPXQudG9TdHJpbmcpJiYha3QoaT12dChuLHQpKSlyZXR1cm4gaTt0aHJvdyB5dCgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9LHRlPUt0LGVlPWkuVHlwZUVycm9yLG5lPXRlKCJ0b1ByaW1pdGl2ZSIpLGllPWZ1bmN0aW9uKHQsZSl7aWYoIVd0KHQpfHxYdCh0KSlyZXR1cm4gdDt2YXIgbixpPUp0KHQsbmUpO2lmKGkpe2lmKHZvaWQgMD09PWUmJihlPSJkZWZhdWx0Iiksbj0kdChpLHQsZSksIVd0KG4pfHxYdChuKSlyZXR1cm4gbjt0aHJvdyBlZSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PWUmJihlPSJudW1iZXIiKSxRdCh0LGUpfSxyZT1sdCx1ZT1mdW5jdGlvbih0KXt2YXIgZT1pZSh0LCJzdHJpbmciKTtyZXR1cm4gcmUoZSk\/ZTplKyIifSxzZT1VLGFlPWkuZG9jdW1lbnQsb2U9c2UoYWUpJiZzZShhZS5jcmVhdGVFbGVtZW50KSxsZT1mdW5jdGlvbih0KXtyZXR1cm4gb2U\/YWUuY3JlYXRlRWxlbWVudCh0KTp7fX0saGU9IXMmJiF1KChmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkobGUoImRpdiIpLCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDd9fSkuYX0pKSxjZT1zLGZlPWgscGU9YyxkZT1rLHZlPVYsZ2U9dWUsa2U9T3QseWU9aGUsbWU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjtyLmY9Y2U\/bWU6ZnVuY3Rpb24odCxlKXtpZih0PXZlKHQpLGU9Z2UoZSkseWUpdHJ5e3JldHVybiBtZSh0LGUpfWNhdGNoKHQpe31pZihrZSh0LGUpKXJldHVybiBkZSghZmUocGUuZix0LGUpLHRbZV0pfTt2YXIgYmU9e30sX2U9cyYmdSgoZnVuY3Rpb24oKXtyZXR1cm4gNDIhPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSgoZnVuY3Rpb24oKXt9KSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KSksQWU9aSxDZT1VLEVlPUFlLlN0cmluZyxGZT1BZS5UeXBlRXJyb3IsU2U9ZnVuY3Rpb24odCl7aWYoQ2UodCkpcmV0dXJuIHQ7dGhyb3cgRmUoRWUodCkrIiBpcyBub3QgYW4gb2JqZWN0Iil9LHdlPXMsQmU9aGUsRGU9X2UseGU9U2UsTWU9dWUsT2U9aS5UeXBlRXJyb3IsUGU9T2JqZWN0LmRlZmluZVByb3BlcnR5LFRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsSWU9ImVudW1lcmFibGUiLGplPSJjb25maWd1cmFibGUiLFJlPSJ3cml0YWJsZSI7YmUuZj13ZT9EZT9mdW5jdGlvbih0LGUsbil7aWYoeGUodCksZT1NZShlKSx4ZShuKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmInByb3RvdHlwZSI9PT1lJiYidmFsdWUiaW4gbiYmUmUgaW4gbiYmIW4ud3JpdGFibGUpe3ZhciBpPVRlKHQsZSk7aSYmaS53cml0YWJsZSYmKHRbZV09bi52YWx1ZSxuPXtjb25maWd1cmFibGU6amUgaW4gbj9uLmNvbmZpZ3VyYWJsZTppLmNvbmZpZ3VyYWJsZSxlbnVtZXJhYmxlOkllIGluIG4\/bi5lbnVtZXJhYmxlOmkuZW51bWVyYWJsZSx3cml0YWJsZTohMX0pfXJldHVybiBQZSh0LGUsbil9OlBlOmZ1bmN0aW9uKHQsZSxuKXtpZih4ZSh0KSxlPU1lKGUpLHhlKG4pLEJlKXRyeXtyZXR1cm4gUGUodCxlLG4pfWNhdGNoKHQpe31pZigiZ2V0ImluIG58fCJzZXQiaW4gbil0aHJvdyBPZSgiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gbiYmKHRbZV09bi52YWx1ZSksdH07dmFyIFZlPWJlLExlPWssTmU9cz9mdW5jdGlvbih0LGUsbil7cmV0dXJuIFZlLmYodCxlLExlKDEsbikpfTpmdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbZV09bix0fSxVZT17ZXhwb3J0czp7fX0semU9TCxxZT1GdCxIZT1DKEZ1bmN0aW9uLnRvU3RyaW5nKTt6ZShxZS5pbnNwZWN0U291cmNlKXx8KHFlLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIEhlKHQpfSk7dmFyIFllLFplLEdlLEtlPXFlLmluc3BlY3RTb3VyY2UsJGU9TCxXZT1LZSxYZT1pLldlYWtNYXAsSmU9JGUoWGUpJiYvbmF0aXZlIGNvZGUvLnRlc3QoV2UoWGUpKSxRZT1tdC5leHBvcnRzLHRuPVJ0LGVuPVFlKCJrZXlzIiksbm49e30scm49SmUsdW49aSxzbj1DLGFuPVUsb249TmUsbG49T3QsaG49RnQsY249ZnVuY3Rpb24odCl7cmV0dXJuIGVuW3RdfHwoZW5bdF09dG4odCkpfSxmbj1ubixwbj0iT2JqZWN0IGFscmVhZHkgaW5pdGlhbGl6ZWQiLGRuPXVuLlR5cGVFcnJvcix2bj11bi5XZWFrTWFwO2lmKHJufHxobi5zdGF0ZSl7dmFyIGduPWhuLnN0YXRlfHwoaG4uc3RhdGU9bmV3IHZuKSxrbj1zbihnbi5nZXQpLHluPXNuKGduLmhhcyksbW49c24oZ24uc2V0KTtZZT1mdW5jdGlvbih0LGUpe2lmKHluKGduLHQpKXRocm93IG5ldyBkbihwbik7cmV0dXJuIGUuZmFjYWRlPXQsbW4oZ24sdCxlKSxlfSxaZT1mdW5jdGlvbih0KXtyZXR1cm4ga24oZ24sdCl8fHt9fSxHZT1mdW5jdGlvbih0KXtyZXR1cm4geW4oZ24sdCl9fWVsc2V7dmFyIGJuPWNuKCJzdGF0ZSIpO2ZuW2JuXT0hMCxZZT1mdW5jdGlvbih0LGUpe2lmKGxuKHQsYm4pKXRocm93IG5ldyBkbihwbik7cmV0dXJuIGUuZmFjYWRlPXQsb24odCxibixlKSxlfSxaZT1mdW5jdGlvbih0KXtyZXR1cm4gbG4odCxibik\/dFtibl06e319LEdlPWZ1bmN0aW9uKHQpe3JldHVybiBsbih0LGJuKX19dmFyIF9uPXtzZXQ6WWUsZ2V0OlplLGhhczpHZSxlbmZvcmNlOmZ1bmN0aW9uKHQpe3JldHVybiBHZSh0KT9aZSh0KTpZZSh0LHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgbjtpZighYW4oZSl8fChuPVplKGUpKS50eXBlIT09dCl0aHJvdyBkbigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK3QrIiByZXF1aXJlZCIpO3JldHVybiBufX19LEFuPXMsQ249T3QsRW49RnVuY3Rpb24ucHJvdG90eXBlLEZuPUFuJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFNuPUNuKEVuLCJuYW1lIiksd249U24mJiJzb21ldGhpbmciPT09ZnVuY3Rpb24oKXt9Lm5hbWUsQm49U24mJighQW58fEFuJiZGbihFbiwibmFtZSIpLmNvbmZpZ3VyYWJsZSksRG49aSx4bj1MLE1uPU90LE9uPU5lLFBuPUF0LFRuPUtlLEluPXtFWElTVFM6U24sUFJPUEVSOnduLENPTkZJR1VSQUJMRTpCbn0uQ09ORklHVVJBQkxFLGpuPV9uLmdldCxSbj1fbi5lbmZvcmNlLFZuPVN0cmluZyhTdHJpbmcpLnNwbGl0KCJTdHJpbmciKTsoVWUuZXhwb3J0cz1mdW5jdGlvbih0LGUsbixpKXt2YXIgcix1PSEhaSYmISFpLnVuc2FmZSxzPSEhaSYmISFpLmVudW1lcmFibGUsYT0hIWkmJiEhaS5ub1RhcmdldEdldCxvPWkmJnZvaWQgMCE9PWkubmFtZT9pLm5hbWU6ZTt4bihuKSYmKCJTeW1ib2woIj09PVN0cmluZyhvKS5zbGljZSgwLDcpJiYobz0iWyIrU3RyaW5nKG8pLnJlcGxhY2UoL15TeW1ib2xcKChbXildKilcKS8sIiQxIikrIl0iKSwoIU1uKG4sIm5hbWUiKXx8SW4mJm4ubmFtZSE9PW8pJiZPbihuLCJuYW1lIixvKSwocj1SbihuKSkuc291cmNlfHwoci5zb3VyY2U9Vm4uam9pbigic3RyaW5nIj09dHlwZW9mIG8\/bzoiIikpKSx0IT09RG4\/KHU\/IWEmJnRbZV0mJihzPSEwKTpkZWxldGUgdFtlXSxzP3RbZV09bjpPbih0LGUsbikpOnM\/dFtlXT1uOlBuKGUsbil9KShGdW5jdGlvbi5wcm90b3R5cGUsInRvU3RyaW5nIiwoZnVuY3Rpb24oKXtyZXR1cm4geG4odGhpcykmJmpuKHRoaXMpLnNvdXJjZXx8VG4odGhpcyl9KSk7dmFyIExuPXt9LE5uPU1hdGguY2VpbCxVbj1NYXRoLmZsb29yLHpuPWZ1bmN0aW9uKHQpe3ZhciBlPSt0O3JldHVybiBlIT1lfHwwPT09ZT8wOihlPjA\/VW46Tm4pKGUpfSxxbj16bixIbj1NYXRoLm1heCxZbj1NYXRoLm1pbixabj16bixHbj1NYXRoLm1pbixLbj1mdW5jdGlvbih0KXtyZXR1cm4gdD4wP0duKFpuKHQpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9LCRuPUtuLFduPVYsWG49ZnVuY3Rpb24odCxlKXt2YXIgbj1xbih0KTtyZXR1cm4gbjwwP0huKG4rZSwwKTpZbihuLGUpfSxKbj1mdW5jdGlvbih0KXtyZXR1cm4gJG4odC5sZW5ndGgpfSxRbj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3ZhciByLHU9V24oZSkscz1Kbih1KSxhPVhuKGkscyk7aWYodCYmbiE9bil7Zm9yKDtzPmE7KWlmKChyPXVbYSsrXSkhPXIpcmV0dXJuITB9ZWxzZSBmb3IoO3M+YTthKyspaWYoKHR8fGEgaW4gdSkmJnVbYV09PT1uKXJldHVybiB0fHxhfHwwO3JldHVybiF0JiYtMX19LHRpPXtpbmNsdWRlczpRbighMCksaW5kZXhPZjpRbighMSl9LGVpPU90LG5pPVYsaWk9dGkuaW5kZXhPZixyaT1ubix1aT1DKFtdLnB1c2gpLHNpPWZ1bmN0aW9uKHQsZSl7dmFyIG4saT1uaSh0KSxyPTAsdT1bXTtmb3IobiBpbiBpKSFlaShyaSxuKSYmZWkoaSxuKSYmdWkodSxuKTtmb3IoO2UubGVuZ3RoPnI7KWVpKGksbj1lW3IrK10pJiYofmlpKHUsbil8fHVpKHUsbikpO3JldHVybiB1fSxhaT1bImNvbnN0cnVjdG9yIiwiaGFzT3duUHJvcGVydHkiLCJpc1Byb3RvdHlwZU9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJ0b0xvY2FsZVN0cmluZyIsInRvU3RyaW5nIiwidmFsdWVPZiJdLG9pPXNpLGxpPWFpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7TG4uZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24odCl7cmV0dXJuIG9pKHQsbGkpfTt2YXIgaGk9e307aGkuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzO3ZhciBjaT1ZLGZpPUxuLHBpPWhpLGRpPVNlLHZpPUMoW10uY29uY2F0KSxnaT1jaSgiUmVmbGVjdCIsIm93bktleXMiKXx8ZnVuY3Rpb24odCl7dmFyIGU9ZmkuZihkaSh0KSksbj1waS5mO3JldHVybiBuP3ZpKGUsbih0KSk6ZX0sa2k9T3QseWk9Z2ksbWk9cixiaT1iZSxfaT11LEFpPUwsQ2k9LyN8XC5wcm90b3R5cGVcLi8sRWk9ZnVuY3Rpb24odCxlKXt2YXIgbj1TaVtGaSh0KV07cmV0dXJuIG49PUJpfHxuIT13aSYmKEFpKGUpP19pKGUpOiEhZSl9LEZpPUVpLm5vcm1hbGl6ZT1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpLnJlcGxhY2UoQ2ksIi4iKS50b0xvd2VyQ2FzZSgpfSxTaT1FaS5kYXRhPXt9LHdpPUVpLk5BVElWRT0iTiIsQmk9RWkuUE9MWUZJTEw9IlAiLERpPUVpLHhpPWksTWk9ci5mLE9pPU5lLFBpPVVlLmV4cG9ydHMsVGk9QXQsSWk9ZnVuY3Rpb24odCxlLG4pe2Zvcih2YXIgaT15aShlKSxyPWJpLmYsdT1taS5mLHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGE9aVtzXTtraSh0LGEpfHxuJiZraShuLGEpfHxyKHQsYSx1KGUsYSkpfX0samk9RGksUmk9ZnVuY3Rpb24odCxlKXt2YXIgbixpLHIsdSxzLGE9dC50YXJnZXQsbz10Lmdsb2JhbCxsPXQuc3RhdDtpZihuPW8\/eGk6bD94aVthXXx8VGkoYSx7fSk6KHhpW2FdfHx7fSkucHJvdG90eXBlKWZvcihpIGluIGUpe2lmKHU9ZVtpXSxyPXQubm9UYXJnZXRHZXQ\/KHM9TWkobixpKSkmJnMudmFsdWU6bltpXSwhamkobz9pOmErKGw\/Ii4iOiIjIikraSx0LmZvcmNlZCkmJnZvaWQgMCE9PXIpe2lmKHR5cGVvZiB1PT10eXBlb2Ygciljb250aW51ZTtJaSh1LHIpfSh0LnNoYW18fHImJnIuc2hhbSkmJk9pKHUsInNoYW0iLCEwKSxQaShuLGksdSx0KX19LFZpPXNpLExpPWFpLE5pPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXtyZXR1cm4gVmkodCxMaSl9LFVpPXMsemk9QyxxaT1oLEhpPXUsWWk9TmksWmk9aGksR2k9YyxLaT1EdCwkaT1QLFdpPU9iamVjdC5hc3NpZ24sWGk9T2JqZWN0LmRlZmluZVByb3BlcnR5LEppPXppKFtdLmNvbmNhdCksUWk9IVdpfHxIaSgoZnVuY3Rpb24oKXtpZihVaSYmMSE9PVdpKHtiOjF9LFdpKFhpKHt9LCJhIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtYaSh0aGlzLCJiIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciB0PXt9LGU9e30sbj1TeW1ib2woKSxpPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIHRbbl09NyxpLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXR9KSksNyE9V2koe30sdClbbl18fFlpKFdpKHt9LGUpKS5qb2luKCIiKSE9aX0pKT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgbj1LaSh0KSxpPWFyZ3VtZW50cy5sZW5ndGgscj0xLHU9WmkuZixzPUdpLmY7aT5yOylmb3IodmFyIGEsbz0kaShhcmd1bWVudHNbcisrXSksbD11P0ppKFlpKG8pLHUobykpOllpKG8pLGg9bC5sZW5ndGgsYz0wO2g+YzspYT1sW2MrK10sVWkmJiFxaShzLG8sYSl8fChuW2FdPW9bYV0pO3JldHVybiBufTpXaSx0cj1RaTtSaSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOk9iamVjdC5hc3NpZ24hPT10cn0se2Fzc2lnbjp0cn0pO3ZhciBlcj17fTtlcltLdCgidG9TdHJpbmdUYWciKV09InoiO3ZhciBucj1pLGlyPSJbb2JqZWN0IHpdIj09PVN0cmluZyhlcikscnI9TCx1cj13LHNyPUt0KCJ0b1N0cmluZ1RhZyIpLGFyPW5yLk9iamVjdCxvcj0iQXJndW1lbnRzIj09dXIoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKSxscj1pcj91cjpmdW5jdGlvbih0KXt2YXIgZSxuLGk7cmV0dXJuIHZvaWQgMD09PXQ\/IlVuZGVmaW5lZCI6bnVsbD09PXQ\/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yobj1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gdFtlXX1jYXRjaCh0KXt9fShlPWFyKHQpLHNyKSk\/bjpvcj91cihlKToiT2JqZWN0Ij09KGk9dXIoZSkpJiZycihlLmNhbGxlZSk\/IkFyZ3VtZW50cyI6aX0saHI9aS5TdHJpbmcsY3I9ZnVuY3Rpb24odCl7aWYoIlN5bWJvbCI9PT1scih0KSl0aHJvdyBUeXBlRXJyb3IoIkNhbm5vdCBjb252ZXJ0IGEgU3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIik7cmV0dXJuIGhyKHQpfSxmcj16bixwcj1jcixkcj1JLHZyPWkuUmFuZ2VFcnJvcixncj1mdW5jdGlvbih0KXt2YXIgZT1wcihkcih0aGlzKSksbj0iIixpPWZyKHQpO2lmKGk8MHx8aT09MS8wKXRocm93IHZyKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2k+MDsoaT4+Pj0xKSYmKGUrPWUpKTEmaSYmKG4rPWUpO3JldHVybiBufTtSaSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwfSx7cmVwZWF0OmdyfSk7dmFyIGtyPUMseXI9S24sbXI9Y3IsYnI9SSxfcj1rcihnciksQXI9a3IoIiIuc2xpY2UpLENyPU1hdGguY2VpbCxFcj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxuLGkpe3ZhciByLHUscz1tcihicihlKSksYT15cihuKSxvPXMubGVuZ3RoLGw9dm9pZCAwPT09aT8iICI6bXIoaSk7cmV0dXJuIGE8PW98fCIiPT1sP3M6KCh1PV9yKGwsQ3IoKHI9YS1vKS9sLmxlbmd0aCkpKS5sZW5ndGg+ciYmKHU9QXIodSwwLHIpKSx0P3MrdTp1K3MpfX0sRnI9e3N0YXJ0OkVyKCExKSxlbmQ6RXIoITApfSxTcj0vVmVyc2lvblwvMTAoPzpcLlxkKyl7MSwyfSg\/OiBbXHcuL10rKT8oPzogTW9iaWxlXC9cdyspPyBTYWZhcmlcLy8udGVzdChHKSx3cj1Gci5zdGFydDtSaSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpTcn0se3BhZFN0YXJ0OmZ1bmN0aW9uKHQpe3JldHVybiB3cih0aGlzLHQsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pO3ZhciBCcj1Gci5lbmQ7ZnVuY3Rpb24gRHIodCl7cmV0dXJuIERyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fSxEcih0KX1mdW5jdGlvbiB4cih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE1yKHQsZSl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aS5lbnVtZXJhYmxlPWkuZW51bWVyYWJsZXx8ITEsaS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIGkmJihpLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLmtleSxpKX19ZnVuY3Rpb24gT3IodCxlLG4pe3JldHVybiBlJiZNcih0LnByb3RvdHlwZSxlKSxuJiZNcih0LG4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLHR9ZnVuY3Rpb24gUHIodCxlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSYmbnVsbCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTt0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6dCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZSYmSXIodCxlKX1mdW5jdGlvbiBUcih0KXtyZXR1cm4gVHI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZjpmdW5jdGlvbih0KXtyZXR1cm4gdC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih0KX0sVHIodCl9ZnVuY3Rpb24gSXIodCxlKXtyZXR1cm4gSXI9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbih0LGUpe3JldHVybiB0Ll9fcHJvdG9fXz1lLHR9LElyKHQsZSl9ZnVuY3Rpb24ganIodCxlKXtpZihudWxsPT10KXJldHVybnt9O3ZhciBuLGkscj1mdW5jdGlvbih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG4saSxyPXt9LHU9T2JqZWN0LmtleXModCk7Zm9yKGk9MDtpPHUubGVuZ3RoO2krKyluPXVbaV0sZS5pbmRleE9mKG4pPj0wfHwocltuXT10W25dKTtyZXR1cm4gcn0odCxlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdT1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2ZvcihpPTA7aTx1Lmxlbmd0aDtpKyspbj11W2ldLGUuaW5kZXhPZihuKT49MHx8T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHQsbikmJihyW25dPXRbbl0pfXJldHVybiByfWZ1bmN0aW9uIFJyKHQsZSl7aWYoZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpKXJldHVybiBlO2lmKHZvaWQgMCE9PWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24odCl7aWYodm9pZCAwPT09dCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiB0fSh0KX1mdW5jdGlvbiBWcih0KXt2YXIgZT1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0KXJldHVybiExO2lmKFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sKGZ1bmN0aW9uKCl7fSkpKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG4saT1Ucih0KTtpZihlKXt2YXIgcj1Ucih0aGlzKS5jb25zdHJ1Y3RvcjtuPVJlZmxlY3QuY29uc3RydWN0KGksYXJndW1lbnRzLHIpfWVsc2Ugbj1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gUnIodGhpcyxuKX19ZnVuY3Rpb24gTHIodCxlKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxlKSYmbnVsbCE9PSh0PVRyKHQpKTspO3JldHVybiB0fWZ1bmN0aW9uIE5yKCl7cmV0dXJuIE5yPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ\/UmVmbGVjdC5nZXQ6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPUxyKHQsZSk7aWYoaSl7dmFyIHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihpLGUpO3JldHVybiByLmdldD9yLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz90Om4pOnIudmFsdWV9fSxOci5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVXIodCxlLG4saSl7cmV0dXJuIFVyPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5zZXQ\/UmVmbGVjdC5zZXQ6ZnVuY3Rpb24odCxlLG4saSl7dmFyIHIsdT1Mcih0LGUpO2lmKHUpe2lmKChyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodSxlKSkuc2V0KXJldHVybiByLnNldC5jYWxsKGksbiksITA7aWYoIXIud3JpdGFibGUpcmV0dXJuITF9aWYocj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSkpe2lmKCFyLndyaXRhYmxlKXJldHVybiExO3IudmFsdWU9bixPYmplY3QuZGVmaW5lUHJvcGVydHkoaSxlLHIpfWVsc2UhZnVuY3Rpb24odCxlLG4pe2UgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1ufShpLGUsbik7cmV0dXJuITB9LFVyKHQsZSxuLGkpfWZ1bmN0aW9uIHpyKHQsZSxuLGkscil7aWYoIVVyKHQsZSxuLGl8fHQpJiZyKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIHNldCBwcm9wZXJ0eSIpO3JldHVybiBufWZ1bmN0aW9uIHFyKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9KHQpfHxmdW5jdGlvbih0LGUpe3ZhciBuPW51bGw9PXQ\/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobnVsbD09bilyZXR1cm47dmFyIGkscix1PVtdLHM9ITAsYT0hMTt0cnl7Zm9yKG49bi5jYWxsKHQpOyEocz0oaT1uLm5leHQoKSkuZG9uZSkmJih1LnB1c2goaS52YWx1ZSksIWV8fHUubGVuZ3RoIT09ZSk7cz0hMCk7fWNhdGNoKHQpe2E9ITAscj10fWZpbmFsbHl7dHJ5e3N8fG51bGw9PW4ucmV0dXJufHxuLnJldHVybigpfWZpbmFsbHl7aWYoYSl0aHJvdyByfX1yZXR1cm4gdX0odCxlKXx8ZnVuY3Rpb24odCxlKXtpZighdClyZXR1cm47aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBIcih0LGUpO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTsiT2JqZWN0Ij09PW4mJnQuY29uc3RydWN0b3ImJihuPXQuY29uc3RydWN0b3IubmFtZSk7aWYoIk1hcCI9PT1ufHwiU2V0Ij09PW4pcmV0dXJuIEFycmF5LmZyb20odCk7aWYoIkFyZ3VtZW50cyI9PT1ufHwvXig\/OlVpfEkpbnQoPzo4fDE2fDMyKSg\/OkNsYW1wZWQpP0FycmF5JC8udGVzdChuKSlyZXR1cm4gSHIodCxlKX0odCxlKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEhyKHQsZSl7KG51bGw9PWV8fGU+dC5sZW5ndGgpJiYoZT10Lmxlbmd0aCk7Zm9yKHZhciBuPTAsaT1uZXcgQXJyYXkoZSk7bjxlO24rKylpW25dPXRbbl07cmV0dXJuIGl9Umkoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6U3J9LHtwYWRFbmQ6ZnVuY3Rpb24odCl7cmV0dXJuIEJyKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE\/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksUmkoe2dsb2JhbDohMH0se2dsb2JhbFRoaXM6aX0pO3ZhciBZcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KSxPYmplY3QuYXNzaWduKHRoaXMse2luc2VydGVkOiIiLHJhd0luc2VydGVkOiIiLHNraXA6ITEsdGFpbFNoaWZ0OjB9LGUpfXJldHVybiBPcih0LFt7a2V5OiJhZ2dyZWdhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJhd0luc2VydGVkKz10LnJhd0luc2VydGVkLHRoaXMuc2tpcD10aGlzLnNraXB8fHQuc2tpcCx0aGlzLmluc2VydGVkKz10Lmluc2VydGVkLHRoaXMudGFpbFNoaWZ0Kz10LnRhaWxTaGlmdCx0aGlzfX0se2tleToib2Zmc2V0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50YWlsU2hpZnQrdGhpcy5pbnNlcnRlZC5sZW5ndGh9fV0pLHR9KCk7ZnVuY3Rpb24gWnIodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgU3RyaW5nfXZhciBHcj0iTk9ORSIsS3I9IkxFRlQiLCRyPSJGT1JDRV9MRUZUIixXcj0iUklHSFQiLFhyPSJGT1JDRV9SSUdIVCI7ZnVuY3Rpb24gSnIodCl7cmV0dXJuIHQucmVwbGFjZSgvKFsuKis\/Xj0hOiR7fSgpfFtcXVwvXFxdKS9nLCJcXCQxIil9ZnVuY3Rpb24gUXIodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk\/dDpbdCxuZXcgWXJdfWZ1bmN0aW9uIHR1KHQsZSl7aWYoZT09PXQpcmV0dXJuITA7dmFyIG4saT1BcnJheS5pc0FycmF5KGUpLHI9QXJyYXkuaXNBcnJheSh0KTtpZihpJiZyKXtpZihlLmxlbmd0aCE9dC5sZW5ndGgpcmV0dXJuITE7Zm9yKG49MDtuPGUubGVuZ3RoO24rKylpZighdHUoZVtuXSx0W25dKSlyZXR1cm4hMTtyZXR1cm4hMH1pZihpIT1yKXJldHVybiExO2lmKGUmJnQmJiJvYmplY3QiPT09RHIoZSkmJiJvYmplY3QiPT09RHIodCkpe3ZhciB1PWUgaW5zdGFuY2VvZiBEYXRlLHM9dCBpbnN0YW5jZW9mIERhdGU7aWYodSYmcylyZXR1cm4gZS5nZXRUaW1lKCk9PXQuZ2V0VGltZSgpO2lmKHUhPXMpcmV0dXJuITE7dmFyIGE9ZSBpbnN0YW5jZW9mIFJlZ0V4cCxvPXQgaW5zdGFuY2VvZiBSZWdFeHA7aWYoYSYmbylyZXR1cm4gZS50b1N0cmluZygpPT10LnRvU3RyaW5nKCk7aWYoYSE9bylyZXR1cm4hMTt2YXIgbD1PYmplY3Qua2V5cyhlKTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxsW25dKSlyZXR1cm4hMTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWlmKCF0dSh0W2xbbl1dLGVbbFtuXV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiEoIWV8fCF0fHwiZnVuY3Rpb24iIT10eXBlb2YgZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHQpJiZlLnRvU3RyaW5nKCk9PT10LnRvU3RyaW5nKCl9dmFyIGV1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4saSxyKXtmb3IoeHIodGhpcyx0KSx0aGlzLnZhbHVlPWUsdGhpcy5jdXJzb3JQb3M9bix0aGlzLm9sZFZhbHVlPWksdGhpcy5vbGRTZWxlY3Rpb249cjt0aGlzLnZhbHVlLnNsaWNlKDAsdGhpcy5zdGFydENoYW5nZVBvcykhPT10aGlzLm9sZFZhbHVlLnNsaWNlKDAsdGhpcy5zdGFydENoYW5nZVBvcyk7KS0tdGhpcy5vbGRTZWxlY3Rpb24uc3RhcnR9cmV0dXJuIE9yKHQsW3trZXk6InN0YXJ0Q2hhbmdlUG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5taW4odGhpcy5jdXJzb3JQb3MsdGhpcy5vbGRTZWxlY3Rpb24uc3RhcnQpfX0se2tleToiaW5zZXJ0ZWRDb3VudCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3Vyc29yUG9zLXRoaXMuc3RhcnRDaGFuZ2VQb3N9fSx7a2V5OiJpbnNlcnRlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWUuc3Vic3RyKHRoaXMuc3RhcnRDaGFuZ2VQb3MsdGhpcy5pbnNlcnRlZENvdW50KX19LHtrZXk6InJlbW92ZWRDb3VudCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgubWF4KHRoaXMub2xkU2VsZWN0aW9uLmVuZC10aGlzLnN0YXJ0Q2hhbmdlUG9zfHx0aGlzLm9sZFZhbHVlLmxlbmd0aC10aGlzLnZhbHVlLmxlbmd0aCwwKX19LHtrZXk6InJlbW92ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9sZFZhbHVlLnN1YnN0cih0aGlzLnN0YXJ0Q2hhbmdlUG9zLHRoaXMucmVtb3ZlZENvdW50KX19LHtrZXk6ImhlYWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlLnN1YnN0cmluZygwLHRoaXMuc3RhcnRDaGFuZ2VQb3MpfX0se2tleToidGFpbCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWUuc3Vic3RyaW5nKHRoaXMuc3RhcnRDaGFuZ2VQb3MrdGhpcy5pbnNlcnRlZENvdW50KX19LHtrZXk6InJlbW92ZURpcmVjdGlvbiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMucmVtb3ZlZENvdW50fHx0aGlzLmluc2VydGVkQ291bnQ\/R3I6dGhpcy5vbGRTZWxlY3Rpb24uZW5kIT09dGhpcy5jdXJzb3JQb3MmJnRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0IT09dGhpcy5jdXJzb3JQb3N8fHRoaXMub2xkU2VsZWN0aW9uLmVuZCE9PXRoaXMub2xkU2VsZWN0aW9uLnN0YXJ0P0tyOldyfX1dKSx0fSgpLG51PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7eHIodGhpcyx0KSx0aGlzLnZhbHVlPWUsdGhpcy5mcm9tPW4sdGhpcy5zdG9wPWl9cmV0dXJuIE9yKHQsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfX0se2tleToiZXh0ZW5kIix2YWx1ZTpmdW5jdGlvbih0KXt0aGlzLnZhbHVlKz1TdHJpbmcodCl9fSx7a2V5OiJhcHBlbmRUbyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwZW5kKHRoaXMudG9TdHJpbmcoKSx7dGFpbDohMH0pLmFnZ3JlZ2F0ZSh0Ll9hcHBlbmRQbGFjZWhvbGRlcigpKX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57dmFsdWU6dGhpcy52YWx1ZSxmcm9tOnRoaXMuZnJvbSxzdG9wOnRoaXMuc3RvcH19LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fSx7a2V5OiJ1bnNoaWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZighdGhpcy52YWx1ZS5sZW5ndGh8fG51bGwhPXQmJnRoaXMuZnJvbT49dClyZXR1cm4iIjt2YXIgZT10aGlzLnZhbHVlWzBdO3JldHVybiB0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMSksZX19LHtrZXk6InNoaWZ0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLnZhbHVlLmxlbmd0aClyZXR1cm4iIjt2YXIgdD10aGlzLnZhbHVlW3RoaXMudmFsdWUubGVuZ3RoLTFdO3JldHVybiB0aGlzLnZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMCwtMSksdH19XSksdH0oKTtmdW5jdGlvbiBpdSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIG5ldyBpdS5JbnB1dE1hc2sodCxlKX12YXIgcnU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCksdGhpcy5fdmFsdWU9IiIsdGhpcy5fdXBkYXRlKE9iamVjdC5hc3NpZ24oe30sdC5ERUZBVUxUUyxlKSksdGhpcy5pc0luaXRpYWxpemVkPSEwfXJldHVybiBPcih0LFt7a2V5OiJ1cGRhdGVPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih0KXtPYmplY3Qua2V5cyh0KS5sZW5ndGgmJnRoaXMud2l0aFZhbHVlUmVmcmVzaCh0aGlzLl91cGRhdGUuYmluZCh0aGlzLHQpKX19LHtrZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57X3ZhbHVlOnRoaXMudmFsdWV9fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fdmFsdWU9dC5fdmFsdWV9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl92YWx1ZT0iIn19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc29sdmUodCl9fSx7a2V5OiJyZXNvbHZlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse2lucHV0OiEwfSwiIiksdGhpcy5kb0NvbW1pdCgpLHRoaXMudmFsdWV9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzZXQoKSx0aGlzLmFwcGVuZCh0LHt9LCIiKSx0aGlzLmRvQ29tbWl0KCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb1BhcnNlKHRoaXMudmFsdWUpfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy52YWx1ZT10aGlzLmRvRm9ybWF0KHQpfX0se2tleToicmF3SW5wdXRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXh0cmFjdElucHV0KDAsdGhpcy52YWx1ZS5sZW5ndGgse3JhdzohMH0pfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse3JhdzohMH0sIiIpLHRoaXMuZG9Db21taXQoKX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzQ29tcGxldGV9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHR9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIHRoaXMudmFsdWUuc2xpY2UodCxlKX19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiBuZXcgbnUodGhpcy5leHRyYWN0SW5wdXQodCxlKSx0KX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBacih0KSYmKHQ9bmV3IG51KFN0cmluZyh0KSkpLHQuYXBwZW5kVG8odGhpcyl9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQ\/KHRoaXMuX3ZhbHVlKz10LG5ldyBZcih7aW5zZXJ0ZWQ6dCxyYXdJbnNlcnRlZDp0fSkpOm5ldyBZcn19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHI9dGhpcy5zdGF0ZSx1PVFyKHRoaXMuZG9QcmVwYXJlKHQsbikpLHM9cXIodSwyKTtpZih0PXNbMF0sKGU9KGU9c1sxXSkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZENoYXJSYXcodCxuKSkpLmluc2VydGVkKXt2YXIgYSxvPSExIT09dGhpcy5kb1ZhbGlkYXRlKG4pO2lmKG8mJm51bGwhPWkpe3ZhciBsPXRoaXMuc3RhdGU7ITA9PT10aGlzLm92ZXJ3cml0ZSYmKGE9aS5zdGF0ZSxpLnVuc2hpZnQodGhpcy52YWx1ZS5sZW5ndGgpKTt2YXIgaD10aGlzLmFwcGVuZFRhaWwoaSk7KG89aC5yYXdJbnNlcnRlZD09PWkudG9TdHJpbmcoKSkmJmguaW5zZXJ0ZWR8fCJzaGlmdCIhPT10aGlzLm92ZXJ3cml0ZXx8KHRoaXMuc3RhdGU9bCxhPWkuc3RhdGUsaS5zaGlmdCgpLG89KGg9dGhpcy5hcHBlbmRUYWlsKGkpKS5yYXdJbnNlcnRlZD09PWkudG9TdHJpbmcoKSksbyYmaC5pbnNlcnRlZCYmKHRoaXMuc3RhdGU9bCl9b3x8KGU9bmV3IFlyLHRoaXMuc3RhdGU9cixpJiZhJiYoaS5zdGF0ZT1hKSl9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBZcn19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFlyfX0se2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7aWYoIVpyKHQpKXRocm93IG5ldyBFcnJvcigidmFsdWUgc2hvdWxkIGJlIHN0cmluZyIpO3ZhciBpPW5ldyBZcixyPVpyKG4pP25ldyBudShTdHJpbmcobikpOm47ZSYmZS50YWlsJiYoZS5fYmVmb3JlVGFpbFN0YXRlPXRoaXMuc3RhdGUpO2Zvcih2YXIgdT0wO3U8dC5sZW5ndGg7Kyt1KWkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZENoYXIodFt1XSxlLHIpKTtyZXR1cm4gbnVsbCE9ciYmKGkudGFpbFNoaWZ0Kz10aGlzLmFwcGVuZFRhaWwocikudGFpbFNoaWZ0KSx0aGlzLmVhZ2VyJiZudWxsIT1lJiZlLmlucHV0JiZ0JiZpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRFYWdlcigpKSxpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoO3JldHVybiB0aGlzLl92YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsdCkrdGhpcy52YWx1ZS5zbGljZShlKSxuZXcgWXJ9fSx7a2V5OiJ3aXRoVmFsdWVSZWZyZXNoIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9yZWZyZXNoaW5nfHwhdGhpcy5pc0luaXRpYWxpemVkKXJldHVybiB0KCk7dGhpcy5fcmVmcmVzaGluZz0hMDt2YXIgZT10aGlzLnJhd0lucHV0VmFsdWUsbj10aGlzLnZhbHVlLGk9dCgpO3JldHVybiB0aGlzLnJhd0lucHV0VmFsdWU9ZSx0aGlzLnZhbHVlJiZ0aGlzLnZhbHVlIT09biYmMD09PW4uaW5kZXhPZih0aGlzLnZhbHVlKSYmdGhpcy5hcHBlbmQobi5zbGljZSh0aGlzLnZhbHVlLmxlbmd0aCkse30sIiIpLGRlbGV0ZSB0aGlzLl9yZWZyZXNoaW5nLGl9fSx7a2V5OiJydW5Jc29sYXRlZCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5faXNvbGF0ZWR8fCF0aGlzLmlzSW5pdGlhbGl6ZWQpcmV0dXJuIHQodGhpcyk7dGhpcy5faXNvbGF0ZWQ9ITA7dmFyIGU9dGhpcy5zdGF0ZSxuPXQodGhpcyk7cmV0dXJuIHRoaXMuc3RhdGU9ZSxkZWxldGUgdGhpcy5faXNvbGF0ZWQsbn19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLnByZXBhcmU\/dGhpcy5wcmVwYXJlKHQsdGhpcyxlKTp0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuKCF0aGlzLnZhbGlkYXRlfHx0aGlzLnZhbGlkYXRlKHRoaXMudmFsdWUsdGhpcyx0KSkmJighdGhpcy5wYXJlbnR8fHRoaXMucGFyZW50LmRvVmFsaWRhdGUodCkpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb21taXQmJnRoaXMuY29tbWl0KHRoaXMudmFsdWUsdGhpcyl9fSx7a2V5OiJkb0Zvcm1hdCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZm9ybWF0P3RoaXMuZm9ybWF0KHQsdGhpcyk6dH19LHtrZXk6ImRvUGFyc2UiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnBhcnNlP3RoaXMucGFyc2UodCx0aGlzKTp0fX0se2tleToic3BsaWNlIix2YWx1ZTpmdW5jdGlvbih0LGUsbixpKXt2YXIgcix1PXQrZSxzPXRoaXMuZXh0cmFjdFRhaWwodSk7dGhpcy5lYWdlciYmKGk9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UgS3I6cmV0dXJuICRyO2Nhc2UgV3I6cmV0dXJuIFhyO2RlZmF1bHQ6cmV0dXJuIHR9fShpKSxyPXRoaXMuZXh0cmFjdElucHV0KDAsdSx7cmF3OiEwfSkpO3ZhciBhPXRoaXMubmVhcmVzdElucHV0UG9zKHQsZT4xJiYwIT09dCYmIXRoaXMuZWFnZXI\/R3I6aSksbz1uZXcgWXIoe3RhaWxTaGlmdDphLXR9KS5hZ2dyZWdhdGUodGhpcy5yZW1vdmUoYSkpO2lmKHRoaXMuZWFnZXImJmkhPT1HciYmcj09PXRoaXMucmF3SW5wdXRWYWx1ZSlpZihpPT09JHIpZm9yKHZhciBsO3I9PT10aGlzLnJhd0lucHV0VmFsdWUmJihsPXRoaXMudmFsdWUubGVuZ3RoKTspby5hZ2dyZWdhdGUobmV3IFlyKHt0YWlsU2hpZnQ6LTF9KSkuYWdncmVnYXRlKHRoaXMucmVtb3ZlKGwtMSkpO2Vsc2UgaT09PVhyJiZzLnVuc2hpZnQoKTtyZXR1cm4gby5hZ2dyZWdhdGUodGhpcy5hcHBlbmQobix7aW5wdXQ6ITB9LHMpKX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hc2s9PT10fX1dKSx0fSgpO2Z1bmN0aW9uIHV1KHQpe2lmKG51bGw9PXQpdGhyb3cgbmV3IEVycm9yKCJtYXNrIHByb3BlcnR5IHNob3VsZCBiZSBkZWZpbmVkIik7cmV0dXJuIHQgaW5zdGFuY2VvZiBSZWdFeHA\/aXUuTWFza2VkUmVnRXhwOlpyKHQpP2l1Lk1hc2tlZFBhdHRlcm46dCBpbnN0YW5jZW9mIERhdGV8fHQ9PT1EYXRlP2l1Lk1hc2tlZERhdGU6dCBpbnN0YW5jZW9mIE51bWJlcnx8Im51bWJlciI9PXR5cGVvZiB0fHx0PT09TnVtYmVyP2l1Lk1hc2tlZE51bWJlcjpBcnJheS5pc0FycmF5KHQpfHx0PT09QXJyYXk\/aXUuTWFza2VkRHluYW1pYzppdS5NYXNrZWQmJnQucHJvdG90eXBlIGluc3RhbmNlb2YgaXUuTWFza2VkP3Q6dCBpbnN0YW5jZW9mIGl1Lk1hc2tlZD90LmNvbnN0cnVjdG9yOnQgaW5zdGFuY2VvZiBGdW5jdGlvbj9pdS5NYXNrZWRGdW5jdGlvbjooY29uc29sZS53YXJuKCJNYXNrIG5vdCBmb3VuZCBmb3IgbWFzayIsdCksaXUuTWFza2VkKX1mdW5jdGlvbiBzdSh0KXtpZihpdS5NYXNrZWQmJnQgaW5zdGFuY2VvZiBpdS5NYXNrZWQpcmV0dXJuIHQ7dmFyIGU9KHQ9T2JqZWN0LmFzc2lnbih7fSx0KSkubWFzaztpZihpdS5NYXNrZWQmJmUgaW5zdGFuY2VvZiBpdS5NYXNrZWQpcmV0dXJuIGU7dmFyIG49dXUoZSk7aWYoIW4pdGhyb3cgbmV3IEVycm9yKCJNYXNrZWQgY2xhc3MgaXMgbm90IGZvdW5kIGZvciBwcm92aWRlZCBtYXNrLCBhcHByb3ByaWF0ZSBtb2R1bGUgbmVlZHMgdG8gYmUgaW1wb3J0IG1hbnVhbGx5IGJlZm9yZSBjcmVhdGluZyBtYXNrLiIpO3JldHVybiBuZXcgbih0KX1ydS5ERUZBVUxUUz17Zm9ybWF0OmZ1bmN0aW9uKHQpe3JldHVybiB0fSxwYXJzZTpmdW5jdGlvbih0KXtyZXR1cm4gdH19LGl1Lk1hc2tlZD1ydSxpdS5jcmVhdGVNYXNrPXN1O3ZhciBhdT1bIm1hc2siXSxvdT17MDovXGQvLGE6L1tcdTAwNDEtXHUwMDVBXHUwMDYxLVx1MDA3QVx1MDBBQVx1MDBCNVx1MDBCQVx1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDJDMVx1MDJDNi1cdTAyRDFcdTAyRTAtXHUwMkU0XHUwMkVDXHUwMkVFXHUwMzcwLVx1MDM3NFx1MDM3Nlx1MDM3N1x1MDM3QS1cdTAzN0RcdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDNBMVx1MDNBMy1cdTAzRjVcdTAzRjctXHUwNDgxXHUwNDhBLVx1MDUyN1x1MDUzMS1cdTA1NTZcdTA1NTlcdTA1NjEtXHUwNTg3XHUwNUQwLVx1MDVFQVx1MDVGMC1cdTA1RjJcdTA2MjAtXHUwNjRBXHUwNjZFXHUwNjZGXHUwNjcxLVx1MDZEM1x1MDZENVx1MDZFNVx1MDZFNlx1MDZFRVx1MDZFRlx1MDZGQS1cdTA2RkNcdTA2RkZcdTA3MTBcdTA3MTItXHUwNzJGXHUwNzRELVx1MDdBNVx1MDdCMVx1MDdDQS1cdTA3RUFcdTA3RjRcdTA3RjVcdTA3RkFcdTA4MDAtXHUwODE1XHUwODFBXHUwODI0XHUwODI4XHUwODQwLVx1MDg1OFx1MDhBMFx1MDhBMi1cdTA4QUNcdTA5MDQtXHUwOTM5XHUwOTNEXHUwOTUwXHUwOTU4LVx1MDk2MVx1MDk3MS1cdTA5NzdcdTA5NzktXHUwOTdGXHUwOTg1LVx1MDk4Q1x1MDk4Rlx1MDk5MFx1MDk5My1cdTA5QThcdTA5QUEtXHUwOUIwXHUwOUIyXHUwOUI2LVx1MDlCOVx1MDlCRFx1MDlDRVx1MDlEQ1x1MDlERFx1MDlERi1cdTA5RTFcdTA5RjBcdTA5RjFcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTcyLVx1MEE3NFx1MEE4NS1cdTBBOERcdTBBOEYtXHUwQTkxXHUwQTkzLVx1MEFBOFx1MEFBQS1cdTBBQjBcdTBBQjJcdTBBQjNcdTBBQjUtXHUwQUI5XHUwQUJEXHUwQUQwXHUwQUUwXHUwQUUxXHUwQjA1LVx1MEIwQ1x1MEIwRlx1MEIxMFx1MEIxMy1cdTBCMjhcdTBCMkEtXHUwQjMwXHUwQjMyXHUwQjMzXHUwQjM1LVx1MEIzOVx1MEIzRFx1MEI1Q1x1MEI1RFx1MEI1Ri1cdTBCNjFcdTBCNzFcdTBCODNcdTBCODUtXHUwQjhBXHUwQjhFLVx1MEI5MFx1MEI5Mi1cdTBCOTVcdTBCOTlcdTBCOUFcdTBCOUNcdTBCOUVcdTBCOUZcdTBCQTNcdTBCQTRcdTBCQTgtXHUwQkFBXHUwQkFFLVx1MEJCOVx1MEJEMFx1MEMwNS1cdTBDMENcdTBDMEUtXHUwQzEwXHUwQzEyLVx1MEMyOFx1MEMyQS1cdTBDMzNcdTBDMzUtXHUwQzM5XHUwQzNEXHUwQzU4XHUwQzU5XHUwQzYwXHUwQzYxXHUwQzg1LVx1MEM4Q1x1MEM4RS1cdTBDOTBcdTBDOTItXHUwQ0E4XHUwQ0FBLVx1MENCM1x1MENCNS1cdTBDQjlcdTBDQkRcdTBDREVcdTBDRTBcdTBDRTFcdTBDRjFcdTBDRjJcdTBEMDUtXHUwRDBDXHUwRDBFLVx1MEQxMFx1MEQxMi1cdTBEM0FcdTBEM0RcdTBENEVcdTBENjBcdTBENjFcdTBEN0EtXHUwRDdGXHUwRDg1LVx1MEQ5Nlx1MEQ5QS1cdTBEQjFcdTBEQjMtXHUwREJCXHUwREJEXHUwREMwLVx1MERDNlx1MEUwMS1cdTBFMzBcdTBFMzJcdTBFMzNcdTBFNDAtXHUwRTQ2XHUwRTgxXHUwRTgyXHUwRTg0XHUwRTg3XHUwRTg4XHUwRThBXHUwRThEXHUwRTk0LVx1MEU5N1x1MEU5OS1cdTBFOUZcdTBFQTEtXHUwRUEzXHUwRUE1XHUwRUE3XHUwRUFBXHUwRUFCXHUwRUFELVx1MEVCMFx1MEVCMlx1MEVCM1x1MEVCRFx1MEVDMC1cdTBFQzRcdTBFQzZcdTBFREMtXHUwRURGXHUwRjAwXHUwRjQwLVx1MEY0N1x1MEY0OS1cdTBGNkNcdTBGODgtXHUwRjhDXHUxMDAwLVx1MTAyQVx1MTAzRlx1MTA1MC1cdTEwNTVcdTEwNUEtXHUxMDVEXHUxMDYxXHUxMDY1XHUxMDY2XHUxMDZFLVx1MTA3MFx1MTA3NS1cdTEwODFcdTEwOEVcdTEwQTAtXHUxMEM1XHUxMEM3XHUxMENEXHUxMEQwLVx1MTBGQVx1MTBGQy1cdTEyNDhcdTEyNEEtXHUxMjREXHUxMjUwLVx1MTI1Nlx1MTI1OFx1MTI1QS1cdTEyNURcdTEyNjAtXHUxMjg4XHUxMjhBLVx1MTI4RFx1MTI5MC1cdTEyQjBcdTEyQjItXHUxMkI1XHUxMkI4LVx1MTJCRVx1MTJDMFx1MTJDMi1cdTEyQzVcdTEyQzgtXHUxMkQ2XHUxMkQ4LVx1MTMxMFx1MTMxMi1cdTEzMTVcdTEzMTgtXHUxMzVBXHUxMzgwLVx1MTM4Rlx1MTNBMC1cdTEzRjRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNzAwLVx1MTcwQ1x1MTcwRS1cdTE3MTFcdTE3MjAtXHUxNzMxXHUxNzQwLVx1MTc1MVx1MTc2MC1cdTE3NkNcdTE3NkUtXHUxNzcwXHUxNzgwLVx1MTdCM1x1MTdEN1x1MTdEQ1x1MTgyMC1cdTE4NzdcdTE4ODAtXHUxOEE4XHUxOEFBXHUxOEIwLVx1MThGNVx1MTkwMC1cdTE5MUNcdTE5NTAtXHUxOTZEXHUxOTcwLVx1MTk3NFx1MTk4MC1cdTE5QUJcdTE5QzEtXHUxOUM3XHUxQTAwLVx1MUExNlx1MUEyMC1cdTFBNTRcdTFBQTdcdTFCMDUtXHUxQjMzXHUxQjQ1LVx1MUI0Qlx1MUI4My1cdTFCQTBcdTFCQUVcdTFCQUZcdTFCQkEtXHUxQkU1XHUxQzAwLVx1MUMyM1x1MUM0RC1cdTFDNEZcdTFDNUEtXHUxQzdEXHUxQ0U5LVx1MUNFQ1x1MUNFRS1cdTFDRjFcdTFDRjVcdTFDRjZcdTFEMDAtXHUxREJGXHUxRTAwLVx1MUYxNVx1MUYxOC1cdTFGMURcdTFGMjAtXHUxRjQ1XHUxRjQ4LVx1MUY0RFx1MUY1MC1cdTFGNTdcdTFGNTlcdTFGNUJcdTFGNURcdTFGNUYtXHUxRjdEXHUxRjgwLVx1MUZCNFx1MUZCNi1cdTFGQkNcdTFGQkVcdTFGQzItXHUxRkM0XHUxRkM2LVx1MUZDQ1x1MUZEMC1cdTFGRDNcdTFGRDYtXHUxRkRCXHUxRkUwLVx1MUZFQ1x1MUZGMi1cdTFGRjRcdTFGRjYtXHUxRkZDXHUyMDcxXHUyMDdGXHUyMDkwLVx1MjA5Q1x1MjEwMlx1MjEwN1x1MjEwQS1cdTIxMTNcdTIxMTVcdTIxMTktXHUyMTFEXHUyMTI0XHUyMTI2XHUyMTI4XHUyMTJBLVx1MjEyRFx1MjEyRi1cdTIxMzlcdTIxM0MtXHUyMTNGXHUyMTQ1LVx1MjE0OVx1MjE0RVx1MjE4M1x1MjE4NFx1MkMwMC1cdTJDMkVcdTJDMzAtXHUyQzVFXHUyQzYwLVx1MkNFNFx1MkNFQi1cdTJDRUVcdTJDRjJcdTJDRjNcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUyREQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNVx1MzAwNlx1MzAzMS1cdTMwMzVcdTMwM0JcdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRFx1MzEzMS1cdTMxOEVcdTMxQTAtXHUzMUJBXHUzMUYwLVx1MzFGRlx1MzQwMC1cdTREQjVcdTRFMDAtXHU5RkNDXHVBMDAwLVx1QTQ4Q1x1QTREMC1cdUE0RkRcdUE1MDAtXHVBNjBDXHVBNjEwLVx1QTYxRlx1QTYyQVx1QTYyQlx1QTY0MC1cdUE2NkVcdUE2N0YtXHVBNjk3XHVBNkEwLVx1QTZFNVx1QTcxNy1cdUE3MUZcdUE3MjItXHVBNzg4XHVBNzhCLVx1QTc4RVx1QTc5MC1cdUE3OTNcdUE3QTAtXHVBN0FBXHVBN0Y4LVx1QTgwMVx1QTgwMy1cdUE4MDVcdUE4MDctXHVBODBBXHVBODBDLVx1QTgyMlx1QTg0MC1cdUE4NzNcdUE4ODItXHVBOEIzXHVBOEYyLVx1QThGN1x1QThGQlx1QTkwQS1cdUE5MjVcdUE5MzAtXHVBOTQ2XHVBOTYwLVx1QTk3Q1x1QTk4NC1cdUE5QjJcdUE5Q0ZcdUFBMDAtXHVBQTI4XHVBQTQwLVx1QUE0Mlx1QUE0NC1cdUFBNEJcdUFBNjAtXHVBQTc2XHVBQTdBXHVBQTgwLVx1QUFBRlx1QUFCMVx1QUFCNVx1QUFCNlx1QUFCOS1cdUFBQkRcdUFBQzBcdUFBQzJcdUFBREItXHVBQUREXHVBQUUwLVx1QUFFQVx1QUFGMi1cdUFBRjRcdUFCMDEtXHVBQjA2XHVBQjA5LVx1QUIwRVx1QUIxMS1cdUFCMTZcdUFCMjAtXHVBQjI2XHVBQjI4LVx1QUIyRVx1QUJDMC1cdUFCRTJcdUFDMDAtXHVEN0EzXHVEN0IwLVx1RDdDNlx1RDdDQi1cdUQ3RkJcdUY5MDAtXHVGQTZEXHVGQTcwLVx1RkFEOVx1RkIwMC1cdUZCMDZcdUZCMTMtXHVGQjE3XHVGQjFEXHVGQjFGLVx1RkIyOFx1RkIyQS1cdUZCMzZcdUZCMzgtXHVGQjNDXHVGQjNFXHVGQjQwXHVGQjQxXHVGQjQzXHVGQjQ0XHVGQjQ2LVx1RkJCMVx1RkJEMy1cdUZEM0RcdUZENTAtXHVGRDhGXHVGRDkyLVx1RkRDN1x1RkRGMC1cdUZERkJcdUZFNzAtXHVGRTc0XHVGRTc2LVx1RkVGQ1x1RkYyMS1cdUZGM0FcdUZGNDEtXHVGRjVBXHVGRjY2LVx1RkZCRVx1RkZDMi1cdUZGQzdcdUZGQ0EtXHVGRkNGXHVGRkQyLVx1RkZEN1x1RkZEQS1cdUZGRENdLywiKiI6Ly4vfSxsdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KTt2YXIgbj1lLm1hc2ssaT1qcihlLGF1KTt0aGlzLm1hc2tlZD1zdSh7bWFzazpufSksT2JqZWN0LmFzc2lnbih0aGlzLGkpfXJldHVybiBPcih0LFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzRmlsbGVkPSExLHRoaXMubWFza2VkLnJlc2V0KCl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIDA9PT10JiZlPj0xPyh0aGlzLmlzRmlsbGVkPSExLHRoaXMubWFza2VkLnJlbW92ZSh0LGUpKTpuZXcgWXJ9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnZhbHVlfHwodGhpcy5pc0ZpbGxlZCYmIXRoaXMuaXNPcHRpb25hbD90aGlzLnBsYWNlaG9sZGVyQ2hhcjoiIil9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMubWFza2VkLnZhbHVlKXx8dGhpcy5pc09wdGlvbmFsfX0se2tleToiX2FwcGVuZENoYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZih0aGlzLmlzRmlsbGVkKXJldHVybiBuZXcgWXI7dmFyIG49dGhpcy5tYXNrZWQuc3RhdGUsaT10aGlzLm1hc2tlZC5fYXBwZW5kQ2hhcih0LGUpO3JldHVybiBpLmluc2VydGVkJiYhMT09PXRoaXMuZG9WYWxpZGF0ZShlKSYmKGkuaW5zZXJ0ZWQ9aS5yYXdJbnNlcnRlZD0iIix0aGlzLm1hc2tlZC5zdGF0ZT1uKSxpLmluc2VydGVkfHx0aGlzLmlzT3B0aW9uYWx8fHRoaXMubGF6eXx8ZS5pbnB1dHx8KGkuaW5zZXJ0ZWQ9dGhpcy5wbGFjZWhvbGRlckNoYXIpLGkuc2tpcD0haS5pbnNlcnRlZCYmIXRoaXMuaXNPcHRpb25hbCx0aGlzLmlzRmlsbGVkPUJvb2xlYW4oaS5pbnNlcnRlZCksaX19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD10aGlzLm1hc2tlZCkuYXBwZW5kLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgWXI7cmV0dXJuIHRoaXMuaXNGaWxsZWR8fHRoaXMuaXNPcHRpb25hbHx8KHRoaXMuaXNGaWxsZWQ9ITAsdC5pbnNlcnRlZD10aGlzLnBsYWNlaG9sZGVyQ2hhciksdH19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFlyfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmV4dHJhY3RUYWlsLmFwcGx5KHQsYXJndW1lbnRzKX19LHtrZXk6ImFwcGVuZFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmFwcGVuZFRhaWwuYXBwbHkodCxhcmd1bWVudHMpfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDA7cmV0dXJuIHRoaXMubWFza2VkLmV4dHJhY3RJbnB1dCh0LGUsbil9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcixuPTAsaT10aGlzLnZhbHVlLmxlbmd0aCxyPU1hdGgubWluKE1hdGgubWF4KHQsbiksaSk7c3dpdGNoKGUpe2Nhc2UgS3I6Y2FzZSAkcjpyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP3I6bjtjYXNlIFdyOmNhc2UgWHI6cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9yOmk7ZGVmYXVsdDpyZXR1cm4gcn19fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU7cmV0dXJuKHQ9dGhpcy5tYXNrZWQpLmRvVmFsaWRhdGUuYXBwbHkodCxhcmd1bWVudHMpJiYoIXRoaXMucGFyZW50fHwoZT10aGlzLnBhcmVudCkuZG9WYWxpZGF0ZS5hcHBseShlLGFyZ3VtZW50cykpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYXNrZWQuZG9Db21taXQoKX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57bWFza2VkOnRoaXMubWFza2VkLnN0YXRlLGlzRmlsbGVkOnRoaXMuaXNGaWxsZWR9fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQuc3RhdGU9dC5tYXNrZWQsdGhpcy5pc0ZpbGxlZD10LmlzRmlsbGVkfX1dKSx0fSgpLGh1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpLE9iamVjdC5hc3NpZ24odGhpcyxlKSx0aGlzLl92YWx1ZT0iIix0aGlzLmlzRml4ZWQ9ITB9cmV0dXJuIE9yKHQsW3trZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1VubWFza2luZz90aGlzLnZhbHVlOiIifX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5faXNSYXdJbnB1dD0hMSx0aGlzLl92YWx1ZT0iIn19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLl92YWx1ZS5sZW5ndGg7cmV0dXJuIHRoaXMuX3ZhbHVlPXRoaXMuX3ZhbHVlLnNsaWNlKDAsdCkrdGhpcy5fdmFsdWUuc2xpY2UoZSksdGhpcy5fdmFsdWV8fCh0aGlzLl9pc1Jhd0lucHV0PSExKSxuZXcgWXJ9fSx7a2V5OiJuZWFyZXN0SW5wdXRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpHcixuPTAsaT10aGlzLl92YWx1ZS5sZW5ndGg7c3dpdGNoKGUpe2Nhc2UgS3I6Y2FzZSAkcjpyZXR1cm4gbjtkZWZhdWx0OnJldHVybiBpfX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLl92YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307cmV0dXJuIG4ucmF3JiZ0aGlzLl9pc1Jhd0lucHV0JiZ0aGlzLl92YWx1ZS5zbGljZSh0LGUpfHwiIn19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiEwfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiBCb29sZWFuKHRoaXMuX3ZhbHVlKX19LHtrZXk6Il9hcHBlbmRDaGFyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj1uZXcgWXI7aWYodGhpcy5fdmFsdWUpcmV0dXJuIG47dmFyIGk9dGhpcy5jaGFyPT09dCxyPWkmJih0aGlzLmlzVW5tYXNraW5nfHxlLmlucHV0fHxlLnJhdykmJiF0aGlzLmVhZ2VyJiYhZS50YWlsO3JldHVybiByJiYobi5yYXdJbnNlcnRlZD10aGlzLmNoYXIpLHRoaXMuX3ZhbHVlPW4uaW5zZXJ0ZWQ9dGhpcy5jaGFyLHRoaXMuX2lzUmF3SW5wdXQ9ciYmKGUucmF3fHxlLmlucHV0KSxufX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBlbmRDaGFyKHRoaXMuY2hhcil9fSx7a2V5OiJfYXBwZW5kUGxhY2Vob2xkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9bmV3IFlyO3JldHVybiB0aGlzLl92YWx1ZXx8KHRoaXMuX3ZhbHVlPXQuaW5zZXJ0ZWQ9dGhpcy5jaGFyKSx0fX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdfHx0aGlzLnZhbHVlLmxlbmd0aCxuZXcgbnUoIiIpfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIFpyKHQpJiYodD1uZXcgbnUoU3RyaW5nKHQpKSksdC5hcHBlbmRUbyh0aGlzKX19LHtrZXk6ImFwcGVuZCIsdmFsdWU6ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX2FwcGVuZENoYXIodFswXSxlKTtyZXR1cm4gbnVsbCE9biYmKGkudGFpbFNoaWZ0Kz10aGlzLmFwcGVuZFRhaWwobikudGFpbFNoaWZ0KSxpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntfdmFsdWU6dGhpcy5fdmFsdWUsX2lzUmF3SW5wdXQ6dGhpcy5faXNSYXdJbnB1dH19LHNldDpmdW5jdGlvbih0KXtPYmplY3QuYXNzaWduKHRoaXMsdCl9fV0pLHR9KCksY3U9WyJjaHVua3MiXSxmdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06W10sbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MDt4cih0aGlzLHQpLHRoaXMuY2h1bmtzPWUsdGhpcy5mcm9tPW59cmV0dXJuIE9yKHQsW3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNodW5rcy5tYXAoU3RyaW5nKS5qb2luKCIiKX19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYoU3RyaW5nKGUpKXtacihlKSYmKGU9bmV3IG51KFN0cmluZyhlKSkpO3ZhciBuPXRoaXMuY2h1bmtzW3RoaXMuY2h1bmtzLmxlbmd0aC0xXSxpPW4mJihuLnN0b3A9PT1lLnN0b3B8fG51bGw9PWUuc3RvcCkmJmUuZnJvbT09PW4uZnJvbStuLnRvU3RyaW5nKCkubGVuZ3RoO2lmKGUgaW5zdGFuY2VvZiBudSlpP24uZXh0ZW5kKGUudG9TdHJpbmcoKSk6dGhpcy5jaHVua3MucHVzaChlKTtlbHNlIGlmKGUgaW5zdGFuY2VvZiB0KXtpZihudWxsPT1lLnN0b3ApZm9yKHZhciByO2UuY2h1bmtzLmxlbmd0aCYmbnVsbD09ZS5jaHVua3NbMF0uc3RvcDspKHI9ZS5jaHVua3Muc2hpZnQoKSkuZnJvbSs9ZS5mcm9tLHRoaXMuZXh0ZW5kKHIpO2UudG9TdHJpbmcoKSYmKGUuc3RvcD1lLmJsb2NrSW5kZXgsdGhpcy5jaHVua3MucHVzaChlKSl9fX19LHtrZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbihlKXtpZighKGUgaW5zdGFuY2VvZiBpdS5NYXNrZWRQYXR0ZXJuKSlyZXR1cm4gbmV3IG51KHRoaXMudG9TdHJpbmcoKSkuYXBwZW5kVG8oZSk7Zm9yKHZhciBuPW5ldyBZcixpPTA7aTx0aGlzLmNodW5rcy5sZW5ndGgmJiFuLnNraXA7KytpKXt2YXIgcj10aGlzLmNodW5rc1tpXSx1PWUuX21hcFBvc1RvQmxvY2soZS52YWx1ZS5sZW5ndGgpLHM9ci5zdG9wLGE9dm9pZCAwO2lmKG51bGwhPXMmJighdXx8dS5pbmRleDw9cykmJigociBpbnN0YW5jZW9mIHR8fGUuX3N0b3BzLmluZGV4T2Yocyk+PTApJiZuLmFnZ3JlZ2F0ZShlLl9hcHBlbmRQbGFjZWhvbGRlcihzKSksYT1yIGluc3RhbmNlb2YgdCYmZS5fYmxvY2tzW3NdKSxhKXt2YXIgbz1hLmFwcGVuZFRhaWwocik7by5za2lwPSExLG4uYWdncmVnYXRlKG8pLGUuX3ZhbHVlKz1vLmluc2VydGVkO3ZhciBsPXIudG9TdHJpbmcoKS5zbGljZShvLnJhd0luc2VydGVkLmxlbmd0aCk7bCYmbi5hZ2dyZWdhdGUoZS5hcHBlbmQobCx7dGFpbDohMH0pKX1lbHNlIG4uYWdncmVnYXRlKGUuYXBwZW5kKHIudG9TdHJpbmcoKSx7dGFpbDohMH0pKX1yZXR1cm4gbn19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57Y2h1bmtzOnRoaXMuY2h1bmtzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSksZnJvbTp0aGlzLmZyb20sc3RvcDp0aGlzLnN0b3AsYmxvY2tJbmRleDp0aGlzLmJsb2NrSW5kZXh9fSxzZXQ6ZnVuY3Rpb24oZSl7dmFyIG49ZS5jaHVua3MsaT1qcihlLGN1KTtPYmplY3QuYXNzaWduKHRoaXMsaSksdGhpcy5jaHVua3M9bi5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuPSJjaHVua3MiaW4gZT9uZXcgdDpuZXcgbnU7cmV0dXJuIG4uc3RhdGU9ZSxufSkpfX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXRoaXMuY2h1bmtzLmxlbmd0aHx8bnVsbCE9dCYmdGhpcy5mcm9tPj10KXJldHVybiIiO2Zvcih2YXIgZT1udWxsIT10P3QtdGhpcy5mcm9tOnQsbj0wO248dGhpcy5jaHVua3MubGVuZ3RoOyl7dmFyIGk9dGhpcy5jaHVua3Nbbl0scj1pLnVuc2hpZnQoZSk7aWYoaS50b1N0cmluZygpKXtpZighcilicmVhazsrK259ZWxzZSB0aGlzLmNodW5rcy5zcGxpY2UobiwxKTtpZihyKXJldHVybiByfXJldHVybiIifX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMuY2h1bmtzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHQ9dGhpcy5jaHVua3MubGVuZ3RoLTE7MDw9dDspe3ZhciBlPXRoaXMuY2h1bmtzW3RdLG49ZS5zaGlmdCgpO2lmKGUudG9TdHJpbmcoKSl7aWYoIW4pYnJlYWs7LS10fWVsc2UgdGhpcy5jaHVua3Muc3BsaWNlKHQsMSk7aWYobilyZXR1cm4gbn1yZXR1cm4iIn19XSksdH0oKSxwdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXt4cih0aGlzLHQpLHRoaXMubWFza2VkPWUsdGhpcy5fbG9nPVtdO3ZhciBpPWUuX21hcFBvc1RvQmxvY2sobil8fChuPDA\/e2luZGV4OjAsb2Zmc2V0OjB9OntpbmRleDp0aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aCxvZmZzZXQ6MH0pLHI9aS5vZmZzZXQsdT1pLmluZGV4O3RoaXMub2Zmc2V0PXIsdGhpcy5pbmRleD11LHRoaXMub2s9ITF9cmV0dXJuIE9yKHQsW3trZXk6ImJsb2NrIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQuX2Jsb2Nrc1t0aGlzLmluZGV4XX19LHtrZXk6InBvcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLl9ibG9ja1N0YXJ0UG9zKHRoaXMuaW5kZXgpK3RoaXMub2Zmc2V0fX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntpbmRleDp0aGlzLmluZGV4LG9mZnNldDp0aGlzLm9mZnNldCxvazp0aGlzLm9rfX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InB1c2hTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9sb2cucHVzaCh0aGlzLnN0YXRlKX19LHtrZXk6InBvcFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2xvZy5wb3AoKTtyZXR1cm4gdGhpcy5zdGF0ZT10LHR9fSx7a2V5OiJiaW5kQmxvY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ibG9ja3x8KHRoaXMuaW5kZXg8MCYmKHRoaXMuaW5kZXg9MCx0aGlzLm9mZnNldD0wKSx0aGlzLmluZGV4Pj10aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aCYmKHRoaXMuaW5kZXg9dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGgtMSx0aGlzLm9mZnNldD10aGlzLmJsb2NrLnZhbHVlLmxlbmd0aCkpfX0se2tleToiX3B1c2hMZWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodGhpcy5wdXNoU3RhdGUoKSx0aGlzLmJpbmRCbG9jaygpOzA8PXRoaXMuaW5kZXg7LS10aGlzLmluZGV4LHRoaXMub2Zmc2V0PShudWxsPT09KGU9dGhpcy5ibG9jayl8fHZvaWQgMD09PWU\/dm9pZCAwOmUudmFsdWUubGVuZ3RoKXx8MCl7dmFyIGU7aWYodCgpKXJldHVybiB0aGlzLm9rPSEwfXJldHVybiB0aGlzLm9rPSExfX0se2tleToiX3B1c2hSaWdodCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHRoaXMucHVzaFN0YXRlKCksdGhpcy5iaW5kQmxvY2soKTt0aGlzLmluZGV4PHRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoOysrdGhpcy5pbmRleCx0aGlzLm9mZnNldD0wKWlmKHQoKSlyZXR1cm4gdGhpcy5vaz0hMDtyZXR1cm4gdGhpcy5vaz0hMX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlRmlsbGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQmJnQuYmxvY2sudmFsdWUpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LCRyKSwwIT09dC5vZmZzZXR8fHZvaWQgMH0pKX19LHtrZXk6InB1c2hMZWZ0QmVmb3JlSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZClyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsS3IpLCEwfSkpfX0se2tleToicHVzaExlZnRCZWZvcmVSZXF1aXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighKHQuYmxvY2suaXNGaXhlZHx8dC5ibG9jay5pc09wdGlvbmFsJiYhdC5ibG9jay52YWx1ZSkpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEtyKSwhMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZUZpbGxlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZCYmdC5ibG9jay52YWx1ZSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsWHIpLHQub2Zmc2V0IT09dC5ibG9jay52YWx1ZS5sZW5ndGh8fHZvaWQgMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZUlucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hSaWdodCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxHciksITB9KSl9fSx7a2V5OiJwdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoUmlnaHQoKGZ1bmN0aW9uKCl7aWYoISh0LmJsb2NrLmlzRml4ZWR8fHQuYmxvY2suaXNPcHRpb25hbCYmIXQuYmxvY2sudmFsdWUpKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxHciksITB9KSl9fV0pLHR9KCksZHU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzayYmKHQudmFsaWRhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGUuc2VhcmNoKHQubWFzayk+PTB9KSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0ocnUpO2l1Lk1hc2tlZFJlZ0V4cD1kdTt2YXIgdnU9WyJfYmxvY2tzIl0sZ3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOnt9O3JldHVybiB4cih0aGlzLG4pLHQuZGVmaW5pdGlvbnM9T2JqZWN0LmFzc2lnbih7fSxvdSx0LmRlZmluaXRpb25zKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTt0LmRlZmluaXRpb25zPU9iamVjdC5hc3NpZ24oe30sdGhpcy5kZWZpbml0aW9ucyx0LmRlZmluaXRpb25zKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSx0aGlzLl9yZWJ1aWxkTWFzaygpfX0se2tleToiX3JlYnVpbGRNYXNrIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10aGlzLmRlZmluaXRpb25zO3RoaXMuX2Jsb2Nrcz1bXSx0aGlzLl9zdG9wcz1bXSx0aGlzLl9tYXNrZWRCbG9ja3M9e307dmFyIGk9dGhpcy5tYXNrO2lmKGkmJmUpZm9yKHZhciByPSExLHU9ITEscz0wO3M8aS5sZW5ndGg7KytzKXtpZih0aGlzLmJsb2NrcylpZigiY29udGludWUiPT09ZnVuY3Rpb24oKXt2YXIgZT1pLnNsaWNlKHMpLG49T2JqZWN0LmtleXModC5ibG9ja3MpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1lLmluZGV4T2YodCl9KSk7bi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLmxlbmd0aC10Lmxlbmd0aH0pKTt2YXIgcj1uWzBdO2lmKHIpe3ZhciB1PXN1KE9iamVjdC5hc3NpZ24oe3BhcmVudDp0LGxhenk6dC5sYXp5LGVhZ2VyOnQuZWFnZXIscGxhY2Vob2xkZXJDaGFyOnQucGxhY2Vob2xkZXJDaGFyLG92ZXJ3cml0ZTp0Lm92ZXJ3cml0ZX0sdC5ibG9ja3Nbcl0pKTtyZXR1cm4gdSYmKHQuX2Jsb2Nrcy5wdXNoKHUpLHQuX21hc2tlZEJsb2Nrc1tyXXx8KHQuX21hc2tlZEJsb2Nrc1tyXT1bXSksdC5fbWFza2VkQmxvY2tzW3JdLnB1c2godC5fYmxvY2tzLmxlbmd0aC0xKSkscys9ci5sZW5ndGgtMSwiY29udGludWUifX0oKSljb250aW51ZTt2YXIgYT1pW3NdLG89YSBpbiBlO2lmKGEhPT1uLlNUT1BfQ0hBUilpZigieyIhPT1hJiYifSIhPT1hKWlmKCJbIiE9PWEmJiJdIiE9PWEpe2lmKGE9PT1uLkVTQ0FQRV9DSEFSKXtpZigrK3MsIShhPWlbc10pKWJyZWFrO289ITF9dmFyIGw9bz9uZXcgbHUoe3BhcmVudDp0aGlzLGxhenk6dGhpcy5sYXp5LGVhZ2VyOnRoaXMuZWFnZXIscGxhY2Vob2xkZXJDaGFyOnRoaXMucGxhY2Vob2xkZXJDaGFyLG1hc2s6ZVthXSxpc09wdGlvbmFsOnV9KTpuZXcgaHUoe2NoYXI6YSxlYWdlcjp0aGlzLmVhZ2VyLGlzVW5tYXNraW5nOnJ9KTt0aGlzLl9ibG9ja3MucHVzaChsKX1lbHNlIHU9IXU7ZWxzZSByPSFyO2Vsc2UgdGhpcy5fc3RvcHMucHVzaCh0aGlzLl9ibG9ja3MubGVuZ3RoKX19fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sTnIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsdGhpcykse19ibG9ja3M6dGhpcy5fYmxvY2tzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSl9KX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Jsb2NrcyxpPWpyKHQsdnUpO3RoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JldHVybiB0LnN0YXRlPWVbbl19KSksenIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsaSx0aGlzLCEwKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe05yKFRyKG4ucHJvdG90eXBlKSwicmVzZXQiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5fYmxvY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc2V0KCl9KSl9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0NvbXBsZXRlfSkpfX0se2tleToiaXNGaWxsZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzRmlsbGVkfSkpfX0se2tleToiaXNGaXhlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNGaXhlZH0pKX19LHtrZXk6ImlzT3B0aW9uYWwiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzT3B0aW9uYWx9KSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZG9Db21taXQoKX0pKSxOcihUcihuLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS51bm1hc2tlZFZhbHVlfSksIiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UudmFsdWV9KSwiIil9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInZhbHVlIix0LHRoaXMsITApfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIE5yKFRyKG4ucHJvdG90eXBlKSwiYXBwZW5kVGFpbCIsdGhpcykuY2FsbCh0aGlzLHQpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBlbmRQbGFjZWhvbGRlcigpKX19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPW5ldyBZcixuPW51bGw9PT0odD10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKSl8fHZvaWQgMD09PXQ\/dm9pZCAwOnQuaW5kZXg7aWYobnVsbD09bilyZXR1cm4gZTt0aGlzLl9ibG9ja3Nbbl0uaXNGaWxsZWQmJisrbjtmb3IodmFyIGk9bjtpPHRoaXMuX2Jsb2Nrcy5sZW5ndGg7KytpKXt2YXIgcj10aGlzLl9ibG9ja3NbaV0uX2FwcGVuZEVhZ2VyKCk7aWYoIXIuaW5zZXJ0ZWQpYnJlYWs7ZS5hZ2dyZWdhdGUocil9cmV0dXJuIGV9fSx7a2V5OiJfYXBwZW5kQ2hhclJhdyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCksaT1uZXcgWXI7aWYoIW4pcmV0dXJuIGk7Zm9yKHZhciByPW4uaW5kZXg7Oysrcil7dmFyIHUscz10aGlzLl9ibG9ja3Nbcl07aWYoIXMpYnJlYWs7dmFyIGE9cy5fYXBwZW5kQ2hhcih0LE9iamVjdC5hc3NpZ24oe30sZSx7X2JlZm9yZVRhaWxTdGF0ZTpudWxsPT09KHU9ZS5fYmVmb3JlVGFpbFN0YXRlKXx8dm9pZCAwPT09dT92b2lkIDA6dS5fYmxvY2tzW3JdfSkpLG89YS5za2lwO2lmKGkuYWdncmVnYXRlKGEpLG98fGEucmF3SW5zZXJ0ZWQpYnJlYWt9cmV0dXJuIGl9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsbj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1uZXcgZnU7cmV0dXJuIGU9PT1ufHx0aGlzLl9mb3JFYWNoQmxvY2tzSW5SYW5nZShlLG4sKGZ1bmN0aW9uKGUsbixyLHUpe3ZhciBzPWUuZXh0cmFjdFRhaWwocix1KTtzLnN0b3A9dC5fZmluZFN0b3BCZWZvcmUobikscy5mcm9tPXQuX2Jsb2NrU3RhcnRQb3MobikscyBpbnN0YW5jZW9mIGZ1JiYocy5ibG9ja0luZGV4PW4pLGkuZXh0ZW5kKHMpfSkpLGl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e307aWYodD09PWUpcmV0dXJuIiI7dmFyIGk9IiI7cmV0dXJuIHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKHQsZSwoZnVuY3Rpb24odCxlLHIsdSl7aSs9dC5leHRyYWN0SW5wdXQocix1LG4pfSkpLGl9fSx7a2V5OiJfZmluZFN0b3BCZWZvcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxuPTA7bjx0aGlzLl9zdG9wcy5sZW5ndGg7KytuKXt2YXIgaT10aGlzLl9zdG9wc1tuXTtpZighKGk8PXQpKWJyZWFrO2U9aX1yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPW5ldyBZcjtpZih0aGlzLmxhenkmJm51bGw9PXQpcmV0dXJuIG47dmFyIGk9dGhpcy5fbWFwUG9zVG9CbG9jayh0aGlzLnZhbHVlLmxlbmd0aCk7aWYoIWkpcmV0dXJuIG47dmFyIHI9aS5pbmRleCx1PW51bGwhPXQ\/dDp0aGlzLl9ibG9ja3MubGVuZ3RoO3JldHVybiB0aGlzLl9ibG9ja3Muc2xpY2Uocix1KS5mb3JFYWNoKChmdW5jdGlvbihpKXtpZighaS5sYXp5fHxudWxsIT10KXt2YXIgcj1udWxsIT1pLl9ibG9ja3M\/W2kuX2Jsb2Nrcy5sZW5ndGhdOltdLHU9aS5fYXBwZW5kUGxhY2Vob2xkZXIuYXBwbHkoaSxyKTtlLl92YWx1ZSs9dS5pbnNlcnRlZCxuLmFnZ3JlZ2F0ZSh1KX19KSksbn19LHtrZXk6Il9tYXBQb3NUb0Jsb2NrIix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9IiIsbj0wO248dGhpcy5fYmxvY2tzLmxlbmd0aDsrK24pe3ZhciBpPXRoaXMuX2Jsb2Nrc1tuXSxyPWUubGVuZ3RoO2lmKHQ8PShlKz1pLnZhbHVlKS5sZW5ndGgpcmV0dXJue2luZGV4Om4sb2Zmc2V0OnQtcn19fX0se2tleToiX2Jsb2NrU3RhcnRQb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9ibG9ja3Muc2xpY2UoMCx0KS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS52YWx1ZS5sZW5ndGh9KSwwKX19LHtrZXk6Il9mb3JFYWNoQmxvY2tzSW5SYW5nZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsaT10aGlzLl9tYXBQb3NUb0Jsb2NrKHQpO2lmKGkpe3ZhciByPXRoaXMuX21hcFBvc1RvQmxvY2soZSksdT1yJiZpLmluZGV4PT09ci5pbmRleCxzPWkub2Zmc2V0LGE9ciYmdT9yLm9mZnNldDp0aGlzLl9ibG9ja3NbaS5pbmRleF0udmFsdWUubGVuZ3RoO2lmKG4odGhpcy5fYmxvY2tzW2kuaW5kZXhdLGkuaW5kZXgscyxhKSxyJiYhdSl7Zm9yKHZhciBvPWkuaW5kZXgrMTtvPHIuaW5kZXg7KytvKW4odGhpcy5fYmxvY2tzW29dLG8sMCx0aGlzLl9ibG9ja3Nbb10udmFsdWUubGVuZ3RoKTtuKHRoaXMuX2Jsb2Nrc1tyLmluZGV4XSxyLmluZGV4LDAsci5vZmZzZXQpfX19fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsaT1OcihUcihuLnByb3RvdHlwZSksInJlbW92ZSIsdGhpcykuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKHQsZSwoZnVuY3Rpb24odCxlLG4scil7aS5hZ2dyZWdhdGUodC5yZW1vdmUobixyKSl9KSksaX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkdyO2lmKCF0aGlzLl9ibG9ja3MubGVuZ3RoKXJldHVybiAwO3ZhciBuPW5ldyBwdSh0aGlzLHQpO2lmKGU9PT1HcilyZXR1cm4gbi5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpP24ucG9zOihuLnBvcFN0YXRlKCksbi5wdXNoTGVmdEJlZm9yZUlucHV0KCk\/bi5wb3M6dGhpcy52YWx1ZS5sZW5ndGgpO2lmKGU9PT1Lcnx8ZT09PSRyKXtpZihlPT09S3Ipe2lmKG4ucHVzaFJpZ2h0QmVmb3JlRmlsbGVkKCksbi5vayYmbi5wb3M9PT10KXJldHVybiB0O24ucG9wU3RhdGUoKX1pZihuLnB1c2hMZWZ0QmVmb3JlSW5wdXQoKSxuLnB1c2hMZWZ0QmVmb3JlUmVxdWlyZWQoKSxuLnB1c2hMZWZ0QmVmb3JlRmlsbGVkKCksZT09PUtyKXtpZihuLnB1c2hSaWdodEJlZm9yZUlucHV0KCksbi5wdXNoUmlnaHRCZWZvcmVSZXF1aXJlZCgpLG4ub2smJm4ucG9zPD10KXJldHVybiBuLnBvcztpZihuLnBvcFN0YXRlKCksbi5vayYmbi5wb3M8PXQpcmV0dXJuIG4ucG9zO24ucG9wU3RhdGUoKX1yZXR1cm4gbi5vaz9uLnBvczplPT09JHI\/MDoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOjApKX1yZXR1cm4gZT09PVdyfHxlPT09WHI\/KG4ucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKSxuLnB1c2hSaWdodEJlZm9yZVJlcXVpcmVkKCksbi5wdXNoUmlnaHRCZWZvcmVGaWxsZWQoKT9uLnBvczplPT09WHI\/dGhpcy52YWx1ZS5sZW5ndGg6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczp0aGlzLm5lYXJlc3RJbnB1dFBvcyh0LEtyKSkpKTp0fX0se2tleToibWFza2VkQmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hc2tlZEJsb2Nrcyh0KVswXX19LHtrZXk6Im1hc2tlZEJsb2NrcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxuPXRoaXMuX21hc2tlZEJsb2Nrc1t0XTtyZXR1cm4gbj9uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2Jsb2Nrc1t0XX0pKTpbXX19XSksbn0ocnUpO2d1LkRFRkFVTFRTPXtsYXp5OiEwLHBsYWNlaG9sZGVyQ2hhcjoiXyJ9LGd1LlNUT1BfQ0hBUj0iYCIsZ3UuRVNDQVBFX0NIQVI9IlxcIixndS5JbnB1dERlZmluaXRpb249bHUsZ3UuRml4ZWREZWZpbml0aW9uPWh1LGl1Lk1hc2tlZFBhdHRlcm49Z3U7dmFyIGt1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfbWF0Y2hGcm9tIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXhMZW5ndGgtU3RyaW5nKHRoaXMuZnJvbSkubGVuZ3RofX0se2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dD1PYmplY3QuYXNzaWduKHt0bzp0aGlzLnRvfHwwLGZyb206dGhpcy5mcm9tfHwwLG1heExlbmd0aDp0aGlzLm1heExlbmd0aHx8MH0sdCk7dmFyIGU9U3RyaW5nKHQudG8pLmxlbmd0aDtudWxsIT10Lm1heExlbmd0aCYmKGU9TWF0aC5tYXgoZSx0Lm1heExlbmd0aCkpLHQubWF4TGVuZ3RoPWU7Zm9yKHZhciBpPVN0cmluZyh0LmZyb20pLnBhZFN0YXJ0KGUsIjAiKSxyPVN0cmluZyh0LnRvKS5wYWRTdGFydChlLCIwIiksdT0wO3U8ci5sZW5ndGgmJnJbdV09PT1pW3VdOykrK3U7dC5tYXNrPXIuc2xpY2UoMCx1KS5yZXBsYWNlKC8wL2csIlxcMCIpKyIwIi5yZXBlYXQoZS11KSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBOcihUcihuLnByb3RvdHlwZSksImlzQ29tcGxldGUiLHRoaXMpJiZCb29sZWFuKHRoaXMudmFsdWUpfX0se2tleToiYm91bmRhcmllcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9IiIsbj0iIixpPXFyKHQubWF0Y2goL14oXEQqKShcZCopKFxEKikvKXx8W10sMykscj1pWzFdLHU9aVsyXTtyZXR1cm4gdSYmKGU9IjAiLnJlcGVhdChyLmxlbmd0aCkrdSxuPSI5Ii5yZXBlYXQoci5sZW5ndGgpK3UpLFtlPWUucGFkRW5kKHRoaXMubWF4TGVuZ3RoLCIwIiksbj1uLnBhZEVuZCh0aGlzLm1heExlbmd0aCwiOSIpXX19LHtrZXk6ImRvUHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGUsaT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30scj1RcihOcihUcihuLnByb3RvdHlwZSksImRvUHJlcGFyZSIsdGhpcykuY2FsbCh0aGlzLHQucmVwbGFjZSgvXEQvZywiIiksaSkpLHU9cXIociwyKTtpZih0PXVbMF0sZT11WzFdLCF0aGlzLmF1dG9maXh8fCF0KXJldHVybiB0O3ZhciBzPVN0cmluZyh0aGlzLmZyb20pLnBhZFN0YXJ0KHRoaXMubWF4TGVuZ3RoLCIwIiksYT1TdHJpbmcodGhpcy50bykucGFkU3RhcnQodGhpcy5tYXhMZW5ndGgsIjAiKSxvPXRoaXMudmFsdWUrdDtpZihvLmxlbmd0aD50aGlzLm1heExlbmd0aClyZXR1cm4iIjt2YXIgbD10aGlzLmJvdW5kYXJpZXMobyksaD1xcihsLDIpLGM9aFswXSxmPWhbMV07cmV0dXJuIE51bWJlcihmKTx0aGlzLmZyb20\/c1tvLmxlbmd0aC0xXTpOdW1iZXIoYyk+dGhpcy50bz8icGFkIj09PXRoaXMuYXV0b2ZpeCYmby5sZW5ndGg8dGhpcy5tYXhMZW5ndGg\/WyIiLGUuYWdncmVnYXRlKHRoaXMuYXBwZW5kKHNbby5sZW5ndGgtMV0rdCxpKSldOmFbby5sZW5ndGgtMV06dH19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZT10aGlzLnZhbHVlLGk9ZS5zZWFyY2goL1teMF0vKTtpZigtMT09PWkmJmUubGVuZ3RoPD10aGlzLl9tYXRjaEZyb20pcmV0dXJuITA7Zm9yKHZhciByPXRoaXMuYm91bmRhcmllcyhlKSx1PXFyKHIsMikscz11WzBdLGE9dVsxXSxvPWFyZ3VtZW50cy5sZW5ndGgsbD1uZXcgQXJyYXkobyksaD0wO2g8bztoKyspbFtoXT1hcmd1bWVudHNbaF07cmV0dXJuIHRoaXMuZnJvbTw9TnVtYmVyKGEpJiZOdW1iZXIocyk8PXRoaXMudG8mJih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KGwpKX19XSksbn0oZ3UpO2l1Lk1hc2tlZFJhbmdlPWt1O3ZhciB5dT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHhyKHRoaXMsbiksZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrPT09RGF0ZSYmZGVsZXRlIHQubWFzayx0LnBhdHRlcm4mJih0Lm1hc2s9dC5wYXR0ZXJuKTt2YXIgZT10LmJsb2Nrczt0LmJsb2Nrcz1PYmplY3QuYXNzaWduKHt9LG4uR0VUX0RFRkFVTFRfQkxPQ0tTKCkpLHQubWluJiYodC5ibG9ja3MuWS5mcm9tPXQubWluLmdldEZ1bGxZZWFyKCkpLHQubWF4JiYodC5ibG9ja3MuWS50bz10Lm1heC5nZXRGdWxsWWVhcigpKSx0Lm1pbiYmdC5tYXgmJnQuYmxvY2tzLlkuZnJvbT09PXQuYmxvY2tzLlkudG8mJih0LmJsb2Nrcy5tLmZyb209dC5taW4uZ2V0TW9udGgoKSsxLHQuYmxvY2tzLm0udG89dC5tYXguZ2V0TW9udGgoKSsxLHQuYmxvY2tzLm0uZnJvbT09PXQuYmxvY2tzLm0udG8mJih0LmJsb2Nrcy5kLmZyb209dC5taW4uZ2V0RGF0ZSgpLHQuYmxvY2tzLmQudG89dC5tYXguZ2V0RGF0ZSgpKSksT2JqZWN0LmFzc2lnbih0LmJsb2Nrcyx0aGlzLmJsb2NrcyxlKSxPYmplY3Qua2V5cyh0LmJsb2NrcykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49dC5ibG9ja3NbZV07ISgiYXV0b2ZpeCJpbiBuKSYmImF1dG9maXgiaW4gdCYmKG4uYXV0b2ZpeD10LmF1dG9maXgpfSkpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT10aGlzLmRhdGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKSYmKCF0aGlzLmlzQ29tcGxldGV8fHRoaXMuaXNEYXRlRXhpc3QodGhpcy52YWx1ZSkmJm51bGwhPWUmJihudWxsPT10aGlzLm1pbnx8dGhpcy5taW48PWUpJiYobnVsbD09dGhpcy5tYXh8fGU8PXRoaXMubWF4KSl9fSx7a2V5OiJpc0RhdGVFeGlzdCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZm9ybWF0KHRoaXMucGFyc2UodCx0aGlzKSx0aGlzKS5pbmRleE9mKHQpPj0wfX0se2tleToiZGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudHlwZWRWYWx1ZT10fX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNDb21wbGV0ZT9OcihUcihuLnByb3RvdHlwZSksInR5cGVkVmFsdWUiLHRoaXMpOm51bGx9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInR5cGVkVmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD09PURhdGV8fE5yKFRyKG4ucHJvdG90eXBlKSwibWFza0VxdWFscyIsdGhpcykuY2FsbCh0aGlzLHQpfX1dKSxufShndSk7eXUuREVGQVVMVFM9e3BhdHRlcm46ImR7Ln1gbXsufWBZIixmb3JtYXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQ\/W1N0cmluZyh0LmdldERhdGUoKSkucGFkU3RhcnQoMiwiMCIpLFN0cmluZyh0LmdldE1vbnRoKCkrMSkucGFkU3RhcnQoMiwiMCIpLHQuZ2V0RnVsbFllYXIoKV0uam9pbigiLiIpOiIifSxwYXJzZTpmdW5jdGlvbih0KXt2YXIgZT1xcih0LnNwbGl0KCIuIiksMyksbj1lWzBdLGk9ZVsxXSxyPWVbMl07cmV0dXJuIG5ldyBEYXRlKHIsaS0xLG4pfX0seXUuR0VUX0RFRkFVTFRfQkxPQ0tTPWZ1bmN0aW9uKCl7cmV0dXJue2Q6e21hc2s6a3UsZnJvbToxLHRvOjMxLG1heExlbmd0aDoyfSxtOnttYXNrOmt1LGZyb206MSx0bzoxMixtYXhMZW5ndGg6Mn0sWTp7bWFzazprdSxmcm9tOjE5MDAsdG86OTk5OX19fSxpdS5NYXNrZWREYXRlPXl1O3ZhciBtdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt4cih0aGlzLHQpfXJldHVybiBPcih0LFt7a2V5OiJzZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9dGhpcy5fdW5zYWZlU2VsZWN0aW9uU3RhcnR9Y2F0Y2godCl7fXJldHVybiBudWxsIT10P3Q6dGhpcy52YWx1ZS5sZW5ndGh9fSx7a2V5OiJzZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3ZhciB0O3RyeXt0PXRoaXMuX3Vuc2FmZVNlbGVjdGlvbkVuZH1jYXRjaCh0KXt9cmV0dXJuIG51bGwhPXQ\/dDp0aGlzLnZhbHVlLmxlbmd0aH19LHtrZXk6InNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZihudWxsIT10JiZudWxsIT1lJiYodCE9PXRoaXMuc2VsZWN0aW9uU3RhcnR8fGUhPT10aGlzLnNlbGVjdGlvbkVuZCkpdHJ5e3RoaXMuX3Vuc2FmZVNlbGVjdCh0LGUpfWNhdGNoKHQpe319fSx7a2V5OiJfdW5zYWZlU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe319LHtrZXk6ImlzQWN0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMX19LHtrZXk6ImJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe319LHtrZXk6InVuYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt9fV0pLHR9KCk7aXUuTWFza0VsZW1lbnQ9bXU7dmFyIGJ1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXt2YXIgaTtyZXR1cm4geHIodGhpcyxuKSwoaT1lLmNhbGwodGhpcykpLmlucHV0PXQsaS5faGFuZGxlcnM9e30saX1yZXR1cm4gT3Iobixbe2tleToicm9vdEVsZW1lbnQiLGdldDpmdW5jdGlvbigpe3ZhciB0LGUsbjtyZXR1cm4gbnVsbCE9PSh0PW51bGw9PT0oZT0obj10aGlzLmlucHV0KS5nZXRSb290Tm9kZSl8fHZvaWQgMD09PWU\/dm9pZCAwOmUuY2FsbChuKSkmJnZvaWQgMCE9PXQ\/dDpkb2N1bWVudH19LHtrZXk6ImlzQWN0aXZlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dD09PXRoaXMucm9vdEVsZW1lbnQuYWN0aXZlRWxlbWVudH19LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uRW5kIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5zZWxlY3Rpb25FbmR9fSx7a2V5OiJfdW5zYWZlU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe3RoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UodCxlKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC52YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaW5wdXQudmFsdWU9dH19LHtrZXk6ImJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7cmV0dXJuIGUuX3RvZ2dsZUV2ZW50SGFuZGxlcihuLkVWRU5UU19NQVBbaV0sdFtpXSl9KSl9fSx7a2V5OiJ1bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztPYmplY3Qua2V5cyh0aGlzLl9oYW5kbGVycykuZm9yRWFjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuX3RvZ2dsZUV2ZW50SGFuZGxlcihlKX0pKX19LHtrZXk6Il90b2dnbGVFdmVudEhhbmRsZXIiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5faGFuZGxlcnNbdF0mJih0aGlzLmlucHV0LnJlbW92ZUV2ZW50TGlzdGVuZXIodCx0aGlzLl9oYW5kbGVyc1t0XSksZGVsZXRlIHRoaXMuX2hhbmRsZXJzW3RdKSxlJiYodGhpcy5pbnB1dC5hZGRFdmVudExpc3RlbmVyKHQsZSksdGhpcy5faGFuZGxlcnNbdF09ZSl9fV0pLG59KG11KTtidS5FVkVOVFNfTUFQPXtzZWxlY3Rpb25DaGFuZ2U6ImtleWRvd24iLGlucHV0OiJpbnB1dCIsZHJvcDoiZHJvcCIsY2xpY2s6ImNsaWNrIixmb2N1czoiZm9jdXMiLGNvbW1pdDoiYmx1ciJ9LGl1LkhUTUxNYXNrRWxlbWVudD1idTt2YXIgX3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91bnNhZmVTZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yb290RWxlbWVudCxlPXQuZ2V0U2VsZWN0aW9uJiZ0LmdldFNlbGVjdGlvbigpLG49ZSYmZS5hbmNob3JPZmZzZXQsaT1lJiZlLmZvY3VzT2Zmc2V0O3JldHVybiBudWxsPT1pfHxudWxsPT1ufHxuPGk\/bjppfX0se2tleToiX3Vuc2FmZVNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yb290RWxlbWVudCxlPXQuZ2V0U2VsZWN0aW9uJiZ0LmdldFNlbGVjdGlvbigpLG49ZSYmZS5hbmNob3JPZmZzZXQsaT1lJiZlLmZvY3VzT2Zmc2V0O3JldHVybiBudWxsPT1pfHxudWxsPT1ufHxuPmk\/bjppfX0se2tleToiX3Vuc2FmZVNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZih0aGlzLnJvb3RFbGVtZW50LmNyZWF0ZVJhbmdlKXt2YXIgbj10aGlzLnJvb3RFbGVtZW50LmNyZWF0ZVJhbmdlKCk7bi5zZXRTdGFydCh0aGlzLmlucHV0LmZpcnN0Q2hpbGR8fHRoaXMuaW5wdXQsdCksbi5zZXRFbmQodGhpcy5pbnB1dC5sYXN0Q2hpbGR8fHRoaXMuaW5wdXQsZSk7dmFyIGk9dGhpcy5yb290RWxlbWVudCxyPWkuZ2V0U2VsZWN0aW9uJiZpLmdldFNlbGVjdGlvbigpO3ImJihyLnJlbW92ZUFsbFJhbmdlcygpLHIuYWRkUmFuZ2UobikpfX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC50ZXh0Q29udGVudH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuaW5wdXQudGV4dENvbnRlbnQ9dH19XSksbn0oYnUpO2l1LkhUTUxDb250ZW50ZWRpdGFibGVNYXNrRWxlbWVudD1fdTt2YXIgQXU9WyJtYXNrIl0sQ3U9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbil7eHIodGhpcyx0KSx0aGlzLmVsPWUgaW5zdGFuY2VvZiBtdT9lOmUuaXNDb250ZW50RWRpdGFibGUmJiJJTlBVVCIhPT1lLnRhZ05hbWUmJiJURVhUQVJFQSIhPT1lLnRhZ05hbWU\/bmV3IF91KGUpOm5ldyBidShlKSx0aGlzLm1hc2tlZD1zdShuKSx0aGlzLl9saXN0ZW5lcnM9e30sdGhpcy5fdmFsdWU9IiIsdGhpcy5fdW5tYXNrZWRWYWx1ZT0iIix0aGlzLl9zYXZlU2VsZWN0aW9uPXRoaXMuX3NhdmVTZWxlY3Rpb24uYmluZCh0aGlzKSx0aGlzLl9vbklucHV0PXRoaXMuX29uSW5wdXQuYmluZCh0aGlzKSx0aGlzLl9vbkNoYW5nZT10aGlzLl9vbkNoYW5nZS5iaW5kKHRoaXMpLHRoaXMuX29uRHJvcD10aGlzLl9vbkRyb3AuYmluZCh0aGlzKSx0aGlzLl9vbkZvY3VzPXRoaXMuX29uRm9jdXMuYmluZCh0aGlzKSx0aGlzLl9vbkNsaWNrPXRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSx0aGlzLmFsaWduQ3Vyc29yPXRoaXMuYWxpZ25DdXJzb3IuYmluZCh0aGlzKSx0aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHk9dGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5LmJpbmQodGhpcyksdGhpcy5fYmluZEV2ZW50cygpLHRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLl9vbkNoYW5nZSgpfXJldHVybiBPcih0LFt7a2V5OiJtYXNrIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQubWFza30sc2V0OmZ1bmN0aW9uKHQpe2lmKCF0aGlzLm1hc2tFcXVhbHModCkpaWYodCBpbnN0YW5jZW9mIGl1Lk1hc2tlZHx8dGhpcy5tYXNrZWQuY29uc3RydWN0b3IhPT11dSh0KSl7dmFyIGU9c3Uoe21hc2s6dH0pO2UudW5tYXNrZWRWYWx1ZT10aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlLHRoaXMubWFza2VkPWV9ZWxzZSB0aGlzLm1hc2tlZC51cGRhdGVPcHRpb25zKHttYXNrOnR9KX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBudWxsPT10fHwobnVsbD09PShlPXRoaXMubWFza2VkKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5tYXNrRXF1YWxzKHQpKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC52YWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl91bm1hc2tlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5tYXNrZWQudHlwZWRWYWx1ZT10LHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6Il9iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwuYmluZEV2ZW50cyh7c2VsZWN0aW9uQ2hhbmdlOnRoaXMuX3NhdmVTZWxlY3Rpb24saW5wdXQ6dGhpcy5fb25JbnB1dCxkcm9wOnRoaXMuX29uRHJvcCxjbGljazp0aGlzLl9vbkNsaWNrLGZvY3VzOnRoaXMuX29uRm9jdXMsY29tbWl0OnRoaXMuX29uQ2hhbmdlfSl9fSx7a2V5OiJfdW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZWwmJnRoaXMuZWwudW5iaW5kRXZlbnRzKCl9fSx7a2V5OiJfZmlyZUV2ZW50Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlPjE\/ZS0xOjApLGk9MTtpPGU7aSsrKW5baS0xXT1hcmd1bWVudHNbaV07dmFyIHI9dGhpcy5fbGlzdGVuZXJzW3RdO3ImJnIuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuYXBwbHkodm9pZCAwLG4pfSkpfX0se2tleToic2VsZWN0aW9uU3RhcnQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJzb3JDaGFuZ2luZz90aGlzLl9jaGFuZ2luZ0N1cnNvclBvczp0aGlzLmVsLnNlbGVjdGlvblN0YXJ0fX0se2tleToiY3Vyc29yUG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3Vyc29yQ2hhbmdpbmc\/dGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M6dGhpcy5lbC5zZWxlY3Rpb25FbmR9LHNldDpmdW5jdGlvbih0KXt0aGlzLmVsJiZ0aGlzLmVsLmlzQWN0aXZlJiYodGhpcy5lbC5zZWxlY3QodCx0KSx0aGlzLl9zYXZlU2VsZWN0aW9uKCkpfX0se2tleToiX3NhdmVTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSE9PXRoaXMuZWwudmFsdWUmJmNvbnNvbGUud2FybigiRWxlbWVudCB2YWx1ZSB3YXMgY2hhbmdlZCBvdXRzaWRlIG9mIG1hc2suIFN5bmNyb25pemUgbWFzayB1c2luZyBgbWFzay51cGRhdGVWYWx1ZSgpYCB0byB3b3JrIHByb3Blcmx5LiIpLHRoaXMuX3NlbGVjdGlvbj17c3RhcnQ6dGhpcy5zZWxlY3Rpb25TdGFydCxlbmQ6dGhpcy5jdXJzb3JQb3N9fX0se2tleToidXBkYXRlVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYXNrZWQudmFsdWU9dGhpcy5lbC52YWx1ZSx0aGlzLl92YWx1ZT10aGlzLm1hc2tlZC52YWx1ZX19LHtrZXk6InVwZGF0ZUNvbnRyb2wiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tYXNrZWQudW5tYXNrZWRWYWx1ZSxlPXRoaXMubWFza2VkLnZhbHVlLG49dGhpcy51bm1hc2tlZFZhbHVlIT09dHx8dGhpcy52YWx1ZSE9PWU7dGhpcy5fdW5tYXNrZWRWYWx1ZT10LHRoaXMuX3ZhbHVlPWUsdGhpcy5lbC52YWx1ZSE9PWUmJih0aGlzLmVsLnZhbHVlPWUpLG4mJnRoaXMuX2ZpcmVDaGFuZ2VFdmVudHMoKX19LHtrZXk6InVwZGF0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQubWFzayxuPWpyKHQsQXUpLGk9IXRoaXMubWFza0VxdWFscyhlKSxyPSF0dSh0aGlzLm1hc2tlZCxuKTtpJiYodGhpcy5tYXNrPWUpLHImJnRoaXMubWFza2VkLnVwZGF0ZU9wdGlvbnMobiksKGl8fHIpJiZ0aGlzLnVwZGF0ZUNvbnRyb2woKX19LHtrZXk6InVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24odCl7bnVsbCE9dCYmKHRoaXMuY3Vyc29yUG9zPXQsdGhpcy5fZGVsYXlVcGRhdGVDdXJzb3IodCkpfX0se2tleToiX2RlbGF5VXBkYXRlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzO3RoaXMuX2Fib3J0VXBkYXRlQ3Vyc29yKCksdGhpcy5fY2hhbmdpbmdDdXJzb3JQb3M9dCx0aGlzLl9jdXJzb3JDaGFuZ2luZz1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2UuZWwmJihlLmN1cnNvclBvcz1lLl9jaGFuZ2luZ0N1cnNvclBvcyxlLl9hYm9ydFVwZGF0ZUN1cnNvcigpKX0pLDEwKX19LHtrZXk6Il9maXJlQ2hhbmdlRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2ZpcmVFdmVudCgiYWNjZXB0Iix0aGlzLl9pbnB1dEV2ZW50KSx0aGlzLm1hc2tlZC5pc0NvbXBsZXRlJiZ0aGlzLl9maXJlRXZlbnQoImNvbXBsZXRlIix0aGlzLl9pbnB1dEV2ZW50KX19LHtrZXk6Il9hYm9ydFVwZGF0ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9jdXJzb3JDaGFuZ2luZyYmKGNsZWFyVGltZW91dCh0aGlzLl9jdXJzb3JDaGFuZ2luZyksZGVsZXRlIHRoaXMuX2N1cnNvckNoYW5naW5nKX19LHtrZXk6ImFsaWduQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY3Vyc29yUG9zPXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh0aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3ModGhpcy5jdXJzb3JQb3MsS3IpKX19LHtrZXk6ImFsaWduQ3Vyc29yRnJpZW5kbHkiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Rpb25TdGFydD09PXRoaXMuY3Vyc29yUG9zJiZ0aGlzLmFsaWduQ3Vyc29yKCl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzW3RdfHwodGhpcy5fbGlzdGVuZXJzW3RdPVtdKSx0aGlzLl9saXN0ZW5lcnNbdF0ucHVzaChlKSx0aGlzfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKCF0aGlzLl9saXN0ZW5lcnNbdF0pcmV0dXJuIHRoaXM7aWYoIWUpcmV0dXJuIGRlbGV0ZSB0aGlzLl9saXN0ZW5lcnNbdF0sdGhpczt2YXIgbj10aGlzLl9saXN0ZW5lcnNbdF0uaW5kZXhPZihlKTtyZXR1cm4gbj49MCYmdGhpcy5fbGlzdGVuZXJzW3RdLnNwbGljZShuLDEpLHRoaXN9fSx7a2V5OiJfb25JbnB1dCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy5faW5wdXRFdmVudD10LHRoaXMuX2Fib3J0VXBkYXRlQ3Vyc29yKCksIXRoaXMuX3NlbGVjdGlvbilyZXR1cm4gdGhpcy51cGRhdGVWYWx1ZSgpO3ZhciBlPW5ldyBldSh0aGlzLmVsLnZhbHVlLHRoaXMuY3Vyc29yUG9zLHRoaXMudmFsdWUsdGhpcy5fc2VsZWN0aW9uKSxuPXRoaXMubWFza2VkLnJhd0lucHV0VmFsdWUsaT10aGlzLm1hc2tlZC5zcGxpY2UoZS5zdGFydENoYW5nZVBvcyxlLnJlbW92ZWQubGVuZ3RoLGUuaW5zZXJ0ZWQsZS5yZW1vdmVEaXJlY3Rpb24pLm9mZnNldCxyPW49PT10aGlzLm1hc2tlZC5yYXdJbnB1dFZhbHVlP2UucmVtb3ZlRGlyZWN0aW9uOkdyLHU9dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKGUuc3RhcnRDaGFuZ2VQb3MraSxyKTtyIT09R3ImJih1PXRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh1LEdyKSksdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy51cGRhdGVDdXJzb3IodSksZGVsZXRlIHRoaXMuX2lucHV0RXZlbnR9fSx7a2V5OiJfb25DaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy52YWx1ZSE9PXRoaXMuZWwudmFsdWUmJnRoaXMudXBkYXRlVmFsdWUoKSx0aGlzLm1hc2tlZC5kb0NvbW1pdCgpLHRoaXMudXBkYXRlQ29udHJvbCgpLHRoaXMuX3NhdmVTZWxlY3Rpb24oKX19LHtrZXk6Il9vbkRyb3AiLHZhbHVlOmZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpfX0se2tleToiX29uRm9jdXMiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuYWxpZ25DdXJzb3JGcmllbmRseSgpfX0se2tleToiX29uQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMuYWxpZ25DdXJzb3JGcmllbmRseSgpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl91bmJpbmRFdmVudHMoKSx0aGlzLl9saXN0ZW5lcnMubGVuZ3RoPTAsZGVsZXRlIHRoaXMuZWx9fV0pLHR9KCk7aXUuSW5wdXRNYXNrPUN1O3ZhciBFdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5lbnVtJiYodC5tYXNrPSIqIi5yZXBlYXQodC5lbnVtWzBdLmxlbmd0aCkpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT10aGlzLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gdGhpcy5lbnVtLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZGV4T2YoZS51bm1hc2tlZFZhbHVlKT49MH0pKSYmKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpfX1dKSxufShndSk7aXUuTWFza2VkRW51bT1FdTt2YXIgRnU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3JldHVybiB4cih0aGlzLG4pLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe05yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLHRoaXMuX3VwZGF0ZVJlZ0V4cHMoKX19LHtrZXk6Il91cGRhdGVSZWdFeHBzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PSJeIisodGhpcy5hbGxvd05lZ2F0aXZlPyJbK3xcXC1dPyI6IiIpLGU9KHRoaXMuc2NhbGU\/IigiK0pyKHRoaXMucmFkaXgpKyJcXGR7MCwiK3RoaXMuc2NhbGUrIn0pPyI6IiIpKyIkIjt0aGlzLl9udW1iZXJSZWdFeHBJbnB1dD1uZXcgUmVnRXhwKHQrIigwfChbMS05XStcXGQqKSk\/IitlKSx0aGlzLl9udW1iZXJSZWdFeHA9bmV3IFJlZ0V4cCh0KyJcXGQqIitlKSx0aGlzLl9tYXBUb1JhZGl4UmVnRXhwPW5ldyBSZWdFeHAoIlsiK3RoaXMubWFwVG9SYWRpeC5tYXAoSnIpLmpvaW4oIiIpKyJdIiwiZyIpLHRoaXMuX3Rob3VzYW5kc1NlcGFyYXRvclJlZ0V4cD1uZXcgUmVnRXhwKEpyKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKSwiZyIpfX0se2tleToiX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UodGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yUmVnRXhwLCIiKX19LHtrZXk6Il9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10LnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlWzBdPWVbMF0ucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZyx0aGlzLnRob3VzYW5kc1NlcGFyYXRvciksZS5qb2luKHRoaXMucmFkaXgpfX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZTt0PXQucmVwbGFjZSh0aGlzLl9tYXBUb1JhZGl4UmVnRXhwLHRoaXMucmFkaXgpO2Zvcih2YXIgaT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLHI9YXJndW1lbnRzLmxlbmd0aCx1PW5ldyBBcnJheShyPjE\/ci0xOjApLHM9MTtzPHI7cysrKXVbcy0xXT1hcmd1bWVudHNbc107dmFyIGE9UXIoKGU9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ByZXBhcmUiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXMsaV0uY29uY2F0KHUpKSksbz1xcihhLDIpLGw9b1swXSxoPW9bMV07cmV0dXJuIHQmJiFpJiYoaC5za2lwPSEwKSxbbCxoXX19LHtrZXk6Il9zZXBhcmF0b3JzQ291bnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLG49MCxpPTA7aTx0OysraSl0aGlzLl92YWx1ZS5pbmRleE9mKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLGkpPT09aSYmKCsrbixlJiYodCs9dGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKSk7cmV0dXJuIG59fSx7a2V5OiJfc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLl92YWx1ZTtyZXR1cm4gdGhpcy5fc2VwYXJhdG9yc0NvdW50KHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkubGVuZ3RoLCEwKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxpPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVudHNbMl06dm9pZCAwLHI9dGhpcy5fYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyh0LGUpLHU9cXIociwyKTtyZXR1cm4gdD11WzBdLGU9dVsxXSx0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKE5yKFRyKG4ucHJvdG90eXBlKSwiZXh0cmFjdElucHV0Iix0aGlzKS5jYWxsKHRoaXMsdCxlLGkpKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307aWYoIXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXJldHVybiBOcihUcihuLnByb3RvdHlwZSksIl9hcHBlbmRDaGFyUmF3Iix0aGlzKS5jYWxsKHRoaXMsdCxlKTt2YXIgaT1lLnRhaWwmJmUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMuX3ZhbHVlLHI9dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKGkpO3RoaXMuX3ZhbHVlPXRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy52YWx1ZSk7dmFyIHU9TnIoVHIobi5wcm90b3R5cGUpLCJfYXBwZW5kQ2hhclJhdyIsdGhpcykuY2FsbCh0aGlzLHQsZSk7dGhpcy5fdmFsdWU9dGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl92YWx1ZSk7dmFyIHM9ZS50YWlsJiZlLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLl92YWx1ZSxhPXRoaXMuX3NlcGFyYXRvcnNDb3VudEZyb21TbGljZShzKTtyZXR1cm4gdS50YWlsU2hpZnQrPShhLXIpKnRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCx1LnNraXA9IXUucmF3SW5zZXJ0ZWQmJnQ9PT10aGlzLnRob3VzYW5kc1NlcGFyYXRvcix1fX0se2tleToiX2ZpbmRTZXBhcmF0b3JBcm91bmQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKXt2YXIgZT10LXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aCsxLG49dGhpcy52YWx1ZS5pbmRleE9mKHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLGUpO2lmKG48PXQpcmV0dXJuIG59cmV0dXJuLTF9fSx7a2V5OiJfYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCxlKXt2YXIgbj10aGlzLl9maW5kU2VwYXJhdG9yQXJvdW5kKHQpO24+PTAmJih0PW4pO3ZhciBpPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQoZSk7cmV0dXJuIGk+PTAmJihlPWkrdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKSxbdCxlXX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPXRoaXMuX2FkanVzdFJhbmdlV2l0aFNlcGFyYXRvcnModCxlKSxpPXFyKG4sMik7dD1pWzBdLGU9aVsxXTt2YXIgcj10aGlzLnZhbHVlLnNsaWNlKDAsdCksdT10aGlzLnZhbHVlLnNsaWNlKGUpLHM9dGhpcy5fc2VwYXJhdG9yc0NvdW50KHIubGVuZ3RoKTt0aGlzLl92YWx1ZT10aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMocit1KSk7dmFyIGE9dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKHIpO3JldHVybiBuZXcgWXIoe3RhaWxTaGlmdDooYS1zKSp0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGh9KX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtpZighdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpcmV0dXJuIHQ7c3dpdGNoKGUpe2Nhc2UgR3I6Y2FzZSBLcjpjYXNlICRyOnZhciBuPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodC0xKTtpZihuPj0wKXt2YXIgaT1uK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aDtpZih0PGl8fHRoaXMudmFsdWUubGVuZ3RoPD1pfHxlPT09JHIpcmV0dXJuIG59YnJlYWs7Y2FzZSBXcjpjYXNlIFhyOnZhciByPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodCk7aWYocj49MClyZXR1cm4gcit0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGh9cmV0dXJuIHR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0odC5pbnB1dD90aGlzLl9udW1iZXJSZWdFeHBJbnB1dDp0aGlzLl9udW1iZXJSZWdFeHApLnRlc3QodGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLnZhbHVlKSk7aWYoZSl7dmFyIGk9dGhpcy5udW1iZXI7ZT1lJiYhaXNOYU4oaSkmJihudWxsPT10aGlzLm1pbnx8dGhpcy5taW4+PTB8fHRoaXMubWluPD10aGlzLm51bWJlcikmJihudWxsPT10aGlzLm1heHx8dGhpcy5tYXg8PTB8fHRoaXMubnVtYmVyPD10aGlzLm1heCl9cmV0dXJuIGUmJk5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiZG9Db21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy52YWx1ZSl7dmFyIHQ9dGhpcy5udW1iZXIsZT10O251bGwhPXRoaXMubWluJiYoZT1NYXRoLm1heChlLHRoaXMubWluKSksbnVsbCE9dGhpcy5tYXgmJihlPU1hdGgubWluKGUsdGhpcy5tYXgpKSxlIT09dCYmKHRoaXMudW5tYXNrZWRWYWx1ZT1TdHJpbmcoZSkpO3ZhciBpPXRoaXMudmFsdWU7dGhpcy5ub3JtYWxpemVaZXJvcyYmKGk9dGhpcy5fbm9ybWFsaXplWmVyb3MoaSkpLHRoaXMucGFkRnJhY3Rpb25hbFplcm9zJiZ0aGlzLnNjYWxlPjAmJihpPXRoaXMuX3BhZEZyYWN0aW9uYWxaZXJvcyhpKSksdGhpcy5fdmFsdWU9aX1OcihUcihuLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiX25vcm1hbGl6ZVplcm9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHQpLnNwbGl0KHRoaXMucmFkaXgpO3JldHVybiBlWzBdPWVbMF0ucmVwbGFjZSgvXihcRCopKDAqKShcZCopLywoZnVuY3Rpb24odCxlLG4saSl7cmV0dXJuIGUraX0pKSx0Lmxlbmd0aCYmIS9cZCQvLnRlc3QoZVswXSkmJihlWzBdPWVbMF0rIjAiKSxlLmxlbmd0aD4xJiYoZVsxXT1lWzFdLnJlcGxhY2UoLzAqJC8sIiIpLGVbMV0ubGVuZ3RofHwoZS5sZW5ndGg9MSkpLHRoaXMuX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnMoZS5qb2luKHRoaXMucmFkaXgpKX19LHtrZXk6Il9wYWRGcmFjdGlvbmFsWmVyb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiB0O3ZhciBlPXQuc3BsaXQodGhpcy5yYWRpeCk7cmV0dXJuIGUubGVuZ3RoPDImJmUucHVzaCgiIiksZVsxXT1lWzFdLnBhZEVuZCh0aGlzLnNjYWxlLCIwIiksZS5qb2luKHRoaXMucmFkaXgpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModGhpcy5fbm9ybWFsaXplWmVyb3ModGhpcy52YWx1ZSkpLnJlcGxhY2UodGhpcy5yYWRpeCwiLiIpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LnJlcGxhY2UoIi4iLHRoaXMucmFkaXgpLHRoaXMsITApfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlcih0aGlzLnVubWFza2VkVmFsdWUpfSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIixTdHJpbmcodCksdGhpcywhMCl9fSx7a2V5OiJudW1iZXIiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnR5cGVkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLnR5cGVkVmFsdWU9dH19LHtrZXk6ImFsbG93TmVnYXRpdmUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpZ25lZHx8bnVsbCE9dGhpcy5taW4mJnRoaXMubWluPDB8fG51bGwhPXRoaXMubWF4JiZ0aGlzLm1heDwwfX1dKSxufShydSk7RnUuREVGQVVMVFM9e3JhZGl4OiIsIix0aG91c2FuZHNTZXBhcmF0b3I6IiIsbWFwVG9SYWRpeDpbIi4iXSxzY2FsZToyLHNpZ25lZDohMSxub3JtYWxpemVaZXJvczohMCxwYWRGcmFjdGlvbmFsWmVyb3M6ITF9LGl1Lk1hc2tlZE51bWJlcj1GdTt2YXIgU3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3QubWFzayYmKHQudmFsaWRhdGU9dC5tYXNrKSxOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KX19XSksbn0ocnUpO2l1Lk1hc2tlZEZ1bmN0aW9uPVN1O3ZhciB3dT1bImNvbXBpbGVkTWFza3MiLCJjdXJyZW50TWFza1JlZiIsImN1cnJlbnRNYXNrIl0sQnU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3ZhciBpO3JldHVybiB4cih0aGlzLG4pLChpPWUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSkpLmN1cnJlbnRNYXNrPW51bGwsaX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7TnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCksIm1hc2siaW4gdCYmKHRoaXMuY29tcGlsZWRNYXNrcz1BcnJheS5pc0FycmF5KHQubWFzayk\/dC5tYXNrLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHN1KHQpfSkpOltdKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj10aGlzLl9hcHBseURpc3BhdGNoKHQsZSk7cmV0dXJuIHRoaXMuY3VycmVudE1hc2smJm4uYWdncmVnYXRlKHRoaXMuY3VycmVudE1hc2suX2FwcGVuZENoYXIodCxlKSksbn19LHtrZXk6Il9hcHBseURpc3BhdGNoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIixlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPWUudGFpbCYmbnVsbCE9ZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fdmFsdWU6dGhpcy52YWx1ZSxpPXRoaXMucmF3SW5wdXRWYWx1ZSxyPWUudGFpbCYmbnVsbCE9ZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fcmF3SW5wdXRWYWx1ZTppLHU9aS5zbGljZShyLmxlbmd0aCkscz10aGlzLmN1cnJlbnRNYXNrLGE9bmV3IFlyLG89cyYmcy5zdGF0ZTtpZih0aGlzLmN1cnJlbnRNYXNrPXRoaXMuZG9EaXNwYXRjaCh0LE9iamVjdC5hc3NpZ24oe30sZSkpLHRoaXMuY3VycmVudE1hc2spaWYodGhpcy5jdXJyZW50TWFzayE9PXMpe2lmKHRoaXMuY3VycmVudE1hc2sucmVzZXQoKSxyKXt2YXIgbD10aGlzLmN1cnJlbnRNYXNrLmFwcGVuZChyLHtyYXc6ITB9KTthLnRhaWxTaGlmdD1sLmluc2VydGVkLmxlbmd0aC1uLmxlbmd0aH11JiYoYS50YWlsU2hpZnQrPXRoaXMuY3VycmVudE1hc2suYXBwZW5kKHUse3JhdzohMCx0YWlsOiEwfSkudGFpbFNoaWZ0KX1lbHNlIHRoaXMuY3VycmVudE1hc2suc3RhdGU9bztyZXR1cm4gYX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hcHBseURpc3BhdGNoLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmdC5hZ2dyZWdhdGUodGhpcy5jdXJyZW50TWFzay5fYXBwZW5kUGxhY2Vob2xkZXIoKSksdH19LHtrZXk6Il9hcHBlbmRFYWdlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9hcHBseURpc3BhdGNoLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmdC5hZ2dyZWdhdGUodGhpcy5jdXJyZW50TWFzay5fYXBwZW5kRWFnZXIoKSksdH19LHtrZXk6ImRvRGlzcGF0Y2giLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5kaXNwYXRjaCh0LHRoaXMsZSl9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4odD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSkmJighdGhpcy5jdXJyZW50TWFza3x8KGU9dGhpcy5jdXJyZW50TWFzaykuZG9WYWxpZGF0ZS5hcHBseShlLHIpKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O251bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dHx8dC5yZXNldCgpLHRoaXMuY29tcGlsZWRNYXNrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5yZXNldCgpfSkpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sudmFsdWU6IiJ9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInZhbHVlIix0LHRoaXMsITApfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay51bm1hc2tlZFZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7enIoVHIobi5wcm90b3R5cGUpLCJ1bm1hc2tlZFZhbHVlIix0LHRoaXMsITApfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay50eXBlZFZhbHVlOiIifSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9U3RyaW5nKHQpO3RoaXMuY3VycmVudE1hc2smJih0aGlzLmN1cnJlbnRNYXNrLnR5cGVkVmFsdWU9dCxlPXRoaXMuY3VycmVudE1hc2sudW5tYXNrZWRWYWx1ZSksdGhpcy51bm1hc2tlZFZhbHVlPWV9fSx7a2V5OiJpc0NvbXBsZXRlIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gQm9vbGVhbihudWxsPT09KHQ9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PXQ\/dm9pZCAwOnQuaXNDb21wbGV0ZSl9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIEJvb2xlYW4obnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmlzRmlsbGVkKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPW5ldyBZcjt0aGlzLmN1cnJlbnRNYXNrJiZlLmFnZ3JlZ2F0ZSgodD10aGlzLmN1cnJlbnRNYXNrKS5yZW1vdmUuYXBwbHkodCxhcmd1bWVudHMpKS5hZ2dyZWdhdGUodGhpcy5fYXBwbHlEaXNwYXRjaCgpKTtyZXR1cm4gZX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxOcihUcihuLnByb3RvdHlwZSksInN0YXRlIix0aGlzKSx7X3Jhd0lucHV0VmFsdWU6dGhpcy5yYXdJbnB1dFZhbHVlLGNvbXBpbGVkTWFza3M6dGhpcy5jb21waWxlZE1hc2tzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3RhdGV9KSksY3VycmVudE1hc2tSZWY6dGhpcy5jdXJyZW50TWFzayxjdXJyZW50TWFzazp0aGlzLmN1cnJlbnRNYXNrJiZ0aGlzLmN1cnJlbnRNYXNrLnN0YXRlfSl9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10LmNvbXBpbGVkTWFza3MsaT10LmN1cnJlbnRNYXNrUmVmLHI9dC5jdXJyZW50TWFzayx1PWpyKHQsd3UpO3RoaXMuY29tcGlsZWRNYXNrcy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3JldHVybiB0LnN0YXRlPWVbbl19KSksbnVsbCE9aSYmKHRoaXMuY3VycmVudE1hc2s9aSx0aGlzLmN1cnJlbnRNYXNrLnN0YXRlPXIpLHpyKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLHUsdGhpcywhMCl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykuZXh0cmFjdElucHV0LmFwcGx5KHQsYXJndW1lbnRzKToiIn19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5leHRyYWN0VGFpbC5hcHBseSh0LHIpOihlPU5yKFRyKG4ucHJvdG90eXBlKSwiZXh0cmFjdFRhaWwiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdChyKSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRNYXNrJiZ0aGlzLmN1cnJlbnRNYXNrLmRvQ29tbWl0KCksTnIoVHIobi5wcm90b3R5cGUpLCJkb0NvbW1pdCIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/KHQ9dGhpcy5jdXJyZW50TWFzaykubmVhcmVzdElucHV0UG9zLmFwcGx5KHQscik6KGU9TnIoVHIobi5wcm90b3R5cGUpLCJuZWFyZXN0SW5wdXRQb3MiLHRoaXMpKS5jYWxsLmFwcGx5KGUsW3RoaXNdLmNvbmNhdChyKSl9fSx7a2V5OiJvdmVyd3JpdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2sub3ZlcndyaXRlOk5yKFRyKG4ucHJvdG90eXBlKSwib3ZlcndyaXRlIix0aGlzKX0sc2V0OmZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybignIm92ZXJ3cml0ZSIgb3B0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gZHluYW1pYyBtYXNrLCB1c2UgdGhpcyBvcHRpb24gaW4gc2libGluZ3MnKX19LHtrZXk6ImVhZ2VyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLmVhZ2VyOk5yKFRyKG4ucHJvdG90eXBlKSwiZWFnZXIiLHRoaXMpfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCciZWFnZXIiIG9wdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIGR5bmFtaWMgbWFzaywgdXNlIHRoaXMgb3B0aW9uIGluIHNpYmxpbmdzJyl9fSx7a2V5OiJtYXNrRXF1YWxzIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmdGhpcy5jb21waWxlZE1hc2tzLmV2ZXJ5KChmdW5jdGlvbihlLG4pe3ZhciBpO3JldHVybiBlLm1hc2tFcXVhbHMobnVsbD09PShpPXRbbl0pfHx2b2lkIDA9PT1pP3ZvaWQgMDppLm1hc2spfSkpfX1dKSxufShydSk7QnUuREVGQVVMVFM9e2Rpc3BhdGNoOmZ1bmN0aW9uKHQsZSxuKXtpZihlLmNvbXBpbGVkTWFza3MubGVuZ3RoKXt2YXIgaT1lLnJhd0lucHV0VmFsdWUscj1lLmNvbXBpbGVkTWFza3MubWFwKChmdW5jdGlvbihlLHIpe3JldHVybiBlLnJlc2V0KCksZS5hcHBlbmQoaSx7cmF3OiEwfSksZS5hcHBlbmQodCxuKSx7d2VpZ2h0OmUucmF3SW5wdXRWYWx1ZS5sZW5ndGgsaW5kZXg6cn19KSk7cmV0dXJuIHIuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS53ZWlnaHQtdC53ZWlnaHR9KSksZS5jb21waWxlZE1hc2tzW3JbMF0uaW5kZXhdfX19LGl1Lk1hc2tlZER5bmFtaWM9QnU7dmFyIER1PXtNQVNLRUQ6InZhbHVlIixVTk1BU0tFRDoidW5tYXNrZWRWYWx1ZSIsVFlQRUQ6InR5cGVkVmFsdWUifTtmdW5jdGlvbiB4dSh0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06RHUuTUFTS0VELG49YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0\/YXJndW1lbnRzWzJdOkR1Lk1BU0tFRCxpPXN1KHQpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5ydW5Jc29sYXRlZCgoZnVuY3Rpb24oaSl7cmV0dXJuIGlbZV09dCxpW25dfSkpfX1mdW5jdGlvbiBNdSh0KXtmb3IodmFyIGU9YXJndW1lbnRzLmxlbmd0aCxuPW5ldyBBcnJheShlPjE\/ZS0xOjApLGk9MTtpPGU7aSsrKW5baS0xXT1hcmd1bWVudHNbaV07cmV0dXJuIHh1LmFwcGx5KHZvaWQgMCxuKSh0KX1pdS5QSVBFX1RZUEU9RHUsaXUuY3JlYXRlUGlwZT14dSxpdS5waXBlPU11O3RyeXtnbG9iYWxUaGlzLklNYXNrPWl1fWNhdGNoKHQpe310LkhUTUxDb250ZW50ZWRpdGFibGVNYXNrRWxlbWVudD1fdSx0LkhUTUxNYXNrRWxlbWVudD1idSx0LklucHV0TWFzaz1DdSx0Lk1hc2tFbGVtZW50PW11LHQuTWFza2VkPXJ1LHQuTWFza2VkRGF0ZT15dSx0Lk1hc2tlZER5bmFtaWM9QnUsdC5NYXNrZWRFbnVtPUV1LHQuTWFza2VkRnVuY3Rpb249U3UsdC5NYXNrZWROdW1iZXI9RnUsdC5NYXNrZWRQYXR0ZXJuPWd1LHQuTWFza2VkUmFuZ2U9a3UsdC5NYXNrZWRSZWdFeHA9ZHUsdC5QSVBFX1RZUEU9RHUsdC5jcmVhdGVNYXNrPXN1LHQuY3JlYXRlUGlwZT14dSx0LmRlZmF1bHQ9aXUsdC5waXBlPU11LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKTsNCi8vIyBzb3VyY2VNYXBwaW5nVVJMPWltYXNrLm1pbi5qcy5tYXA7Ci8qKiAvbS9qcy92YW5pbGxhanMvZm9ybS5qcyAqKi8KdmFyIF9fX2QyY19mb3JtanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNToyMCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZm9ybWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzM6MDkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZm9ybWpzX2Nfb249IjIwMjMtMDQtMjcgMTA6MzA6NDkiOyJ1c2Ugc3RyaWN0IjsKY29uc3QgRm9ybT1mdW5jdGlvbigpe3RoaXMuTUFTS1M9e3Bob25lOiIwMDAgMDAwLTAwMDAiLHNpbjoiMDAwIDAwMCAwMDAiLHBvc3RhbENvZGU6ImEwYSAwYTAifTt0aGlzLm1hc2s9KGEsYik9PnthPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYSk7YS5sZW5ndGgmJmEuZm9yRWFjaChjPT57SU1hc2soYyxiKX0pfTt0aGlzLm1hc2tOdW1iZXI9KGEsYik9PntsZXQgYz17bWFzazpOdW1iZXIsbWluOjB9O2ImJihjLm1heD1iKTt0aGlzLm1hc2soYSxjKX07dGhpcy5tYXNrUGhvbmU9YT0+e3RoaXMubWFzayhhLHttYXNrOlt7bWFzazp0aGlzLk1BU0tTLnBob25lfSx7bWFzazpgMSAke3RoaXMuTUFTS1MucGhvbmV9YH1dfSl9O3RoaXMubWFza1Bvc3RhbENvZGU9YT0+e3RoaXMubWFzayhhLHttYXNrOnRoaXMuTUFTS1MucG9zdGFsQ29kZSxwcmVwYXJlOmI9PmIudG9VcHBlckNhc2UoKX0pfX07Ci8qKiAvbS9qcy9nZW5lcmljTWFpbC5qcyAqKi8KdmFyIF9fX2QyY19nZW5lcmljTWFpbGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MTUiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2dlbmVyaWNNYWlsanNfY19vbj0iMjAyNC0xMS0yOCAxMDozMDoxMSI7InVzZSBzdHJpY3QiOwpHZW5lcmljTWFpbD1mdW5jdGlvbih2KXtmdW5jdGlvbiBtKGMpe2M9Yy50b1N0cmluZygpO3JldHVybiBjLnJlcGxhY2UoLzxcLz9bXj5dKz4vZ2ksIiIpfXZhciBiPXRoaXM7Yi5tYWlsSUQ9djtiLmVtYWlsU2VudD1mdW5jdGlvbihjKXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKGIubWFpbElEKTtjPygidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxTZW50SGFuZGxlciYmKG1haWxTZW50SGFuZGxlci50aW1lb3V0Q2FsbGJhY2s9Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyLG1haWxTZW50SGFuZGxlci5zaG93U3VjY2VzcygpKSxiLmNsZWFyRm9ybSgpKToidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxTZW50SGFuZGxlciYmKG1haWxTZW50SGFuZGxlci50aW1lb3V0Q2FsbGJhY2s9Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyLG1haWxTZW50SGFuZGxlci5zaG93RmFpbCgpKX07Yi5jbGVhckZvcm09ZnVuY3Rpb24oKXt2YXIgYz1iLmpxU2NvcGU7aWYoInVuZGVmaW5lZCI9PT0KdHlwZW9mIGN8fCIiPT1jKWlmKCQoIi5Jbm5lckJveExheWVyIikubGVuZ3RoKWM9Ii5Jbm5lckJveExheWVyIjtlbHNlIHJldHVybjskKCIuanFUcmFuc2Zvcm1JbnB1dFdyYXBwZXIgaW5wdXQsIC5qcVRyYW5zZm9ybVRleHRhcmVhIHRleHRhcmVhIixjKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoIiIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7JCgiI2Zvb3RlckRpdiAjbGVhZFNlbnQiKS5yZW1vdmUoKX07Yi5tc2dTZW50RmluaXNoZWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTtiLmJhbmRwTGluaz1mdW5jdGlvbihjKXtyZXR1cm4gZW1haWxIYW5kbGVyLmJhbmRwTGluayhjKX07Yi5zYXZlPWZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKTtpZighYi5fdmFsaWRhdGVGaWVsZHMoKSlyZXR1cm4gJCgiaHRtbCwgYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKCIudmFsaWRpdHktZXJyb25lb3VzOmZpcnN0Iikub2Zmc2V0KCkudG9wLQoxMDB9LDJFMyksITE7Yi5wcmVwYXJlKCk7ZW1haWxIYW5kbGVyLnNlbmRNYWlsKCl9O2IucHJlcGFyZT1mdW5jdGlvbigpe3ZhciBjPWZ1bmN0aW9uKGgpe3g9KGgrIiIpLnNwbGl0KCIuIik7eDE9eFswXTt4Mj0xPHgubGVuZ3RoPyIuIit4WzFdOiIiO2ZvcihoPS8oXGQrKShcZHszfSkvO2gudGVzdCh4MSk7KXgxPXgxLnJlcGxhY2UoaCwiJDEsJDIiKTtyZXR1cm4geDEreDJ9LGc9Yi5qcVNjb3BlP2IuanFTY29wZToiLklubmVyQm94TGF5ZXIiLGs9IiIsYT0iIixlPSIiLGQ9IiIsZj0iIjtrPTA8JCgiI2VtYWlsU3ViamVjdERlZl8iK2IubWFpbElELGcpLmxlbmd0aD8kKCIjZW1haWxTdWJqZWN0RGVmXyIrYi5tYWlsSUQsZykudGV4dCgpOjA8JCgiI2VtYWlsU3ViamVjdERlZiIsZykubGVuZ3RoPyQoIiNlbWFpbFN1YmplY3REZWYiLGcpLnRleHQoKTokKCIjZW1haWxTdWJqZWN0RGVmIikudGV4dCgpO2E9MDwkKCIjZW1haWxCb2R5RGVmXyIrYi5tYWlsSUQsZykubGVuZ3RoPyQoIiNlbWFpbEJvZHlEZWZfIisKYi5tYWlsSUQsZykuaHRtbCgpOiQoIiNlbWFpbEJvZHlEZWYiLGcpLmxlbmd0aD8kKCIjZW1haWxCb2R5RGVmIixnKS5odG1sKCk6JCgiI2VtYWlsQm9keURlZiIpLmh0bWwoKTt2YXIgbD0idW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0SXNEZW1vIikuYXR0cigiaWQiKSYmIjEiPT0kKCIjdGV4dElzRGVtbyIpLnZhbCgpPyEwOiExOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFF1aWNrRW1haWwmJm51bGwhPW1haWxRdWlja0VtYWlsJiYic3RyaW5nIj09PXR5cGVvZiBtYWlsUXVpY2tFbWFpbC5tZXNzYWdlJiYoZW1haWxIYW5kbGVyLmNvbW1lbnRzPW1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO3N3aXRjaChiLm1haWxJRCl7Y2FzZSAiUXVpY2tFbWFpbCI6Y2FzZSAiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6Y2FzZSAibWVudUNvbnRhY3RVcyI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJxdWlja0VtYWlsRm9ybSI7bWFpbFF1aWNrRW1haWwuYXNzaWduVmFsdWVzKCk7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csCmQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxRdWlja0VtYWlsLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsUXVpY2tFbWFpbC5lbWFpbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csbWFpbFF1aWNrRW1haWwucGhvbmUpLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csbWFpbFF1aWNrRW1haWwubWVzc2FnZSk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZyxtYWlsUXVpY2tFbWFpbC5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLG1haWxRdWlja0VtYWlsLm1vZGVsKTthPWEucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLG1haWxRdWlja0VtYWlsLnllYXIpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLG1haWxRdWlja0VtYWlsLnN0b2NrTnVtYmVyKTthPWEucmVwbGFjZSgve1wkREVQQVJUTUVOVDJ9L2csbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCk7YT1hLnJlcGxhY2UoL0NpdHk6L2csIiIpOyJ1bmRlZmluZWQiIT0KdHlwZW9mIG1haWxRdWlja0VtYWlsLnJvYWRUZXN0JiZudWxsIT1tYWlsUXVpY2tFbWFpbC5yb2FkVGVzdCYmKGE9YS5yZXBsYWNlKC97XCRFTUFJTFJPQURURVNUfS9nLG1haWxRdWlja0VtYWlsLnJvYWRUZXN0KS5yZXBsYWNlKC97XCRFTUFJTENBUkR9L2csbWFpbFF1aWNrRW1haWwuZ2lmdENhcmQpKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxRdWlja0VtYWlsLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPW1haWxRdWlja0VtYWlsLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUXVpY2tFbWFpbC5waG9uZTtlPW1haWxRdWlja0VtYWlsLm1lc3NhZ2U7ZW1haWxIYW5kbGVyLnRyaW09JCgiI2V4cHJlc3NjYXJ0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjZXhwcmVzc2NhcnZpbiIpLnZhbCgpO2VtYWlsSGFuZGxlci5wcmljZT0kKCIjZXhwcmVzc2NhcnByaWNlIikudmFsKCk7ZW1haWxIYW5kbGVyLm1ha2U9JCgiI2V4cHJlc3NjYXJtYWtlIikudmFsKCk7CmVtYWlsSGFuZGxlci5tb2RlbD0kKCIjZXhwcmVzc2Nhcm1vZGVsIikudmFsKCk7ZW1haWxIYW5kbGVyLnllYXI9JCgiI2V4cHJlc3NjYXJ5ZWFyIikudmFsKCk7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPW1haWxRdWlja0VtYWlsLnN0b2NrTnVtYmVyOyJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2V4cHJlc3NjYXJpZCIpLmF0dHIoImlkIik\/ZW1haWxIYW5kbGVyLmNhcmlkPSIiOmVtYWlsSGFuZGxlci5jYXJpZD0kKCIjZXhwcmVzc2NhcmlkIikudmFsKCk7JCgiaW5wdXQubGFiZWxlbWFpbCIpLnZhbCgiRGVtYW5kZXMtRXhwcmVzcyIpOyQoImlucHV0LmlzZXhwcmVzcyIpLnZhbCgiMSIpOyJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRW5naW5lJiYoJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsUXVpY2tFbWFpbC5tYWtlKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKG1haWxRdWlja0VtYWlsLm1vZGVsKSwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwobWFpbFF1aWNrRW1haWwueWVhcikpOwoidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzY2FyaWQiKS5hdHRyKCJpZCIpPzA8JCgiI2V4cHJlc3NjYXJpZCIpLnZhbCgpLmxlbmd0aD9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFF1aWNrRW1haWwubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iOmVtYWlsSGFuZGxlci5jb25kaXRpb249IlVua25vd24iOyIiIT09bWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCYmKGVtYWlsSGFuZGxlci5kZXBhcnRtZW50PW1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQpO2Q9bWFpbFF1aWNrRW1haWwuZ2V0U2VuZFRvKCk7Zj1tYWlsUXVpY2tFbWFpbC5nZXRTZW5kVG9BZGYoKTticmVhaztjYXNlICJSZWJhdGVDb3Vwb25Qcm9tbyI6bWFpbFF1aWNrRW1haWwuYXNzaWduVmFsdWVzKCk7ZT1tYWlsUXVpY2tFbWFpbC5tZXNzYWdlO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxRdWlja0VtYWlsLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZywKbWFpbFF1aWNrRW1haWwuZW1haWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxRdWlja0VtYWlsLnBob25lKS5yZXBsYWNlKC97XCRNRVNTQUdFfS9nLG1haWxRdWlja0VtYWlsLm1lc3NhZ2UpO2E9YS5yZXBsYWNlKC97XCRDT1VQT05NQUtFfS9nLCQoIiNjb3Vwb25tYWtlIikudmFsKCkpLnJlcGxhY2UoL3tcJENPVVBPTk1PREVMfS9nLCQoIiNjb3Vwb25tb2RlbCIpLnZhbCgpKTthPWEucmVwbGFjZSgve1wkQ09VUE9OWUVBUn0vZywkKCIjY291cG9ueWVhciIpLnZhbCgpKS5yZXBsYWNlKC97XCRDT1VQT05TVE9DS05VTUJFUn0vZywkKCIjY291cG9uc3RvY2tudW1iZXIiKS52YWwoKSk7YT1hLnJlcGxhY2UoL3tcJENPVVBPTlZBTFVFfS9nLCQoIiNjb3Vwb25WYWx1ZSIpLnZhbCgpKyIkIikucmVwbGFjZSgve1wkUFJJQ0V9L2csJCgiI3ZlaGljbGVPcmlnUHJpY2UiKS52YWwoKSsiJCIpO2VtYWlsSGFuZGxlci5tYWtlPSQoIiNjb3Vwb25tYWtlIikudmFsKCk7CmVtYWlsSGFuZGxlci5tb2RlbD0kKCIjY291cG9ubW9kZWwiKS52YWwoKTtlbWFpbEhhbmRsZXIueWVhcj0kKCIjY291cG9ueWVhciIpLnZhbCgpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFF1aWNrRW1haWwuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFF1aWNrRW1haWwubmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxRdWlja0VtYWlsLnBob25lO2VtYWlsSGFuZGxlci50cmltPSQoIiNjb3Vwb252ZWhpY2xldHJpbSIpLnZhbCgpO2VtYWlsSGFuZGxlci52aW49JCgiI2NvdXBvbnZlaGljbGV2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI3ZlaGljbGVPcmlnUHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9JCgiI2NvdXBvbnN0b2NrbnVtYmVyIikudmFsKCk7ZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNjb3Vwb252ZWhpY2xlaWQiKS52YWwoKTskKCJpbnB1dC5sYWJlbGVtYWlsIikudmFsKCJSZWJhdGVDb3Vwb25Qcm9tbyIpOwoidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaEVuZ2luZSYmKCQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoJCgiI2NvdXBvbm1ha2UiKS52YWwoKSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgkKCIjY291cG9ubW9kZWwiKS52YWwoKSksJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCQoIiNjb3Vwb255ZWFyIikudmFsKCkpKTtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjtiLmVtYWlsU2VudD1mdW5jdGlvbihoKXskKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIikudHJpZ2dlcigiY2xpY2siKX07YnJlYWs7Y2FzZSAiQ2FycHJvb2ZNYWlsIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9ImNhcnByb29mTWFpbkRpdiI7az0kKCIjZW1haWxTdWJqZWN0RGVmMiIpLnRleHQoKTthPSQoIiNlbWFpbEJvZHlEZWYyIikuaHRtbCgpOyQoImlucHV0LmxhYmVsZW1haWwiKS52YWwoIkRlbWFuZGVzLUNhclByb29mIik7JCgiaW5wdXQuaXNleHByZXNzIikudmFsKCIwIik7JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChjYXJwcm9vZkhhbmRsZXIubWFrZSk7CiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLm1vZGVsKTskKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoY2FycHJvb2ZIYW5kbGVyLnllYXIpO2E9YS5yZXBsYWNlKC97XCROQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKGNhcnByb29mSGFuZGxlci5uYW1lKSkucmVwbGFjZSgve1wkRU1BSUx9L2csY2FycHJvb2ZIYW5kbGVyLmVtYWlsKTthPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLGNhcnByb29mSGFuZGxlci5tYWtlKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLGNhcnByb29mSGFuZGxlci5tb2RlbCkucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLGNhcnByb29mSGFuZGxlci55ZWFyKTthPWEucmVwbGFjZSgve1wkQ09MT1J9L2csY2FycHJvb2ZIYW5kbGVyLmNvbG9yKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxjYXJwcm9vZkhhbmRsZXIuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csCmNhcnByb29mSGFuZGxlci5waG9uZSk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1jYXJwcm9vZkhhbmRsZXIuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Y2FycHJvb2ZIYW5kbGVyLm5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1jYXJwcm9vZkhhbmRsZXIucGhvbmU7ZW1haWxIYW5kbGVyLm1ha2U9Y2FycHJvb2ZIYW5kbGVyLm1ha2U7ZW1haWxIYW5kbGVyLm1vZGVsPWNhcnByb29mSGFuZGxlci5tb2RlbDtlbWFpbEhhbmRsZXIueWVhcj1jYXJwcm9vZkhhbmRsZXIueWVhcjtlbWFpbEhhbmRsZXIudHJpbT0kKCIjY2FycHJvb2ZjYXJ0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjY2FycHJvb2ZjYXJ2aW4iKS52YWwoKTtlbWFpbEhhbmRsZXIucHJpY2U9JCgiI2NhcnByb29mY2FycHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9Y2FycHJvb2ZIYW5kbGVyLnN0b2NrTnVtYmVyO2VtYWlsSGFuZGxlci5jYXJpZD0kKCIjY2FycHJvb2ZjYXJpZCIpLnZhbCgpOwpkPWNhcnByb29mSGFuZGxlci5zZW5kVG8ubGVuZ3RoJiYiIiE9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUbz9jYXJwcm9vZkhhbmRsZXIuc2VuZFRvOiQoIiN0ZXh0U2VuZFRvRW1haWwiKS5sZW5ndGg\/JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpOiIiO2Y9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUb0FkZi5sZW5ndGgmJiIiIT1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvQWRmP2NhcnByb29mSGFuZGxlci5zZW5kVG9BZGY6JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLmxlbmd0aD8kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCk6IiI7ZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9Y2FycHJvb2ZIYW5kbGVyLmRlYWxlck5hbWU7YnJlYWs7Y2FzZSAiQ3VzdG9tZXJSYXRpbmciOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0iQ3VzdG9tZXJSYXRpbmciO21haWxSYXRpbmcuYXNzaWduVmFsdWVzKCk7YT1hLnJlcGxhY2UoL3tcJFJBVElOR01FU1NBR0V9L2csbWFpbFJhdGluZy5tZXNzYWdlKS5yZXBsYWNlKC97XCRMTkFNRX0vZywKZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFJhdGluZy51c2VyTGFzdE5hbWUpKS5yZXBsYWNlKC97XCRGTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsUmF0aW5nLnVzZXJFbWFpbCkucmVwbGFjZSgve1wkUEhPTkV9L2csbWFpbFJhdGluZy51c2VyUGhvbmUpLnJlcGxhY2UoL3tcJFJBVElOR1NUQVJTfS9nLG1haWxSYXRpbmcucmF0aW5nKS5yZXBsYWNlKC97XCRDTElFTlROQU1FfS9nLG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSsiICIrbWFpbFJhdGluZy51c2VyTGFzdE5hbWUpO2s9ay5yZXBsYWNlKC97XCRDTElFTlROQU1FfS9nLG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSsiICIrbWFpbFJhdGluZy51c2VyTGFzdE5hbWUpO2VtYWlsSGFuZGxlci52aW49IiI7ZW1haWxIYW5kbGVyLnByaWNlPTA7ZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPQoiIjtlbWFpbEhhbmRsZXIuY2FyaWQ9IiI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVW5rbm93biI7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFJhdGluZy51c2VyRmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9bWFpbFJhdGluZy51c2VyTGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsUmF0aW5nLnVzZXJQaG9uZTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxSYXRpbmcudXNlckVtYWlsO2Q9bWFpbFJhdGluZy5zZW5kVG87Zj0iICAiO2JyZWFrO2Nhc2UgImhlYWRlclNlcnZpY2UiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0ibWVudVNlcnZpY2UiO3NlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2Uuc2V0RW1haWxTZW50Q2FsbGJhY2soKTthPXNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2Uuc2V0RW1haWxIYW5kbGVyVmFsdWVzQW5kQm9keShhKTtkPXNlcnZpY2VGb3JtX2hlYWRlclNlcnZpY2UuZ2V0U2VuZFRvKCk7ays9IiBFeHByZXNzIjsKYnJlYWs7Y2FzZSAibWVudVNlcnZpY2UiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0ibWVudVNlcnZpY2UiO3NlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLnNldEVtYWlsU2VudENhbGxiYWNrKCk7YT1zZXJ2aWNlRm9ybV9tZW51U2VydmljZS5zZXRFbWFpbEhhbmRsZXJWYWx1ZXNBbmRCb2R5KGEpO2Q9c2VydmljZUZvcm1fbWVudVNlcnZpY2UuZ2V0U2VuZFRvKCk7ays9IiBFeHByZXNzIjticmVhaztkZWZhdWx0OiIiPT1kJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2VuZFRvRW1haWwiKS5hdHRyKCJpZCIpJiYoZD0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCkpOyIiPT1mJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS5hdHRyKCJpZCIpJiYzPCQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKS5sZW5ndGgmJihmPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVmVoaWNsZVdpZGdldCYmCihtYWlsVmVoaWNsZVdpZGdldC5hc3NpZ25WYWx1ZXMoKSxhPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csbWFpbFZlaGljbGVXaWRnZXQubW9kZWwpLnJlcGxhY2UoL3tcJEVNQUlMWUVBUn0vZyxtYWlsVmVoaWNsZVdpZGdldC55ZWFyKS5yZXBsYWNlKC97XCRDT0xPUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5jb2xvcikucmVwbGFjZSgve1wkRU1BSUxTVE9DS05VTUJFUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csbWFpbFZlaGljbGVXaWRnZXQuc3RvY2tOdW1iZXIpLnJlcGxhY2UoL3tcJEZST01ZRUFSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LmZyb21ZZWFyKS5yZXBsYWNlKC97XCRUT1lFQVJ9L2csbWFpbFZlaGljbGVXaWRnZXQudG9ZZWFyKS5yZXBsYWNlKC97XCRJTlRFTlRJT059L2csbWFpbFZlaGljbGVXaWRnZXQuaW50ZW50aW9uKS5yZXBsYWNlKC97XCRQTEFURVN9L2csCm1haWxWZWhpY2xlV2lkZ2V0LnBsYXRlcykucmVwbGFjZSgve1wkVklOfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnZpbiksbWFpbFZlaGljbGVXaWRnZXQub2RvbW90ZXImJihhPWEucmVwbGFjZSgve1wkS019L2csYyhtYWlsVmVoaWNsZVdpZGdldC5vZG9tb3RlcikpKSwkKCJpbnB1dC5icmFuZGVtYWlsIikubGVuZ3RoJiYkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS5sZW5ndGgmJiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXQubW9kZWwpLCQoImlucHV0LnllYXJlbWFpbCIpLmxlbmd0aCYmJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0LnllYXIpLGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPW1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsLGVtYWlsSGFuZGxlci55ZWFyPW1haWxWZWhpY2xlV2lkZ2V0LnllYXIsCmVtYWlsSGFuZGxlci50cmltPSQoIiNjYXJ0cmltIikudmFsKCksZW1haWxIYW5kbGVyLnZpbj1tYWlsVmVoaWNsZVdpZGdldC52aW4sZW1haWxIYW5kbGVyLnByaWNlPSQoIiNjYXJwcmljZSIpLnZhbCgpLGVtYWlsSGFuZGxlci5zdG9ja051bWJlcj1tYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcixlbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2NhcmlkIikudmFsKCksMDwkKCIjY2FyaWQiKS52YWwoKS5sZW5ndGh8fGVtYWlsSGFuZGxlci55ZWFyPChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKT9lbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVc2VkIjplbWFpbEhhbmRsZXIuY29uZGl0aW9uPTA8bWFpbFZlaGljbGVXaWRnZXQubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iKTthPWEucmVwbGFjZSgve1wkUExBVEVTfS9nLCIiKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxWZWhpY2xlV2lkZ2V0RXgmJiQoIiN2ZWhpY2xlU2VsZWN0Rm9ybUV4IikubGVuZ3RoJiYobWFpbFZlaGljbGVXaWRnZXRFeC5hc3NpZ25WYWx1ZXMoKSwKYT1hLnJlcGxhY2UoL3tcJE1BS0VFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UpLnJlcGxhY2UoL3tcJE1PREVMRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCkucmVwbGFjZSgve1wkWUVBUkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgueWVhcikucmVwbGFjZSgve1wkQ09MT1JFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LmNvbG9yKS5yZXBsYWNlKC97XCRUUklNRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC50cmltKS5yZXBsYWNlKC97XCRUUkFOU01JU1NJT059L2csbWFpbFZlaGljbGVXaWRnZXRFeC50cmFuc21pc3Npb24pLnJlcGxhY2UoL3tcJEtNfS9nLGMobWFpbFZlaGljbGVXaWRnZXRFeC5vZG9tb3RlcikpLnJlcGxhY2UoL3tcJFZJTkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgudmluKS5yZXBsYWNlKC97XCREUklWRVRSQUlOfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguZHJpdmV0cmFpbikucmVwbGFjZSgve1wkR0FTfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguZnVlbCksCiQoImlucHV0LmJyYW5kZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLmxlbmd0aCYmJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbC5sZW5ndGgmJiQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCksJCgiaW5wdXQueWVhcmVtYWlsIikubGVuZ3RoJiYwPG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZS5sZW5ndGgmJiQoImlucHV0LnllYXJlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4LnllYXIpLGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldEV4LnllYXIsZW1haWxIYW5kbGVyLnRyaW09bWFpbFZlaGljbGVXaWRnZXRFeC50cmltLAoidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlci5pc1RyYWRlSW5CYXJ8fCJQcmljZVZlaGljbGUiIT1iLm1haWxJRCYmIlByaWNlVmVoaWNsZU5ldyIhPWIubWFpbElEJiYiRXN0aGV0aWNSZXF1ZXN0IiE9Yi5tYWlsSUR8fChlbWFpbEhhbmRsZXIubWFrZT1tYWlsVmVoaWNsZVdpZGdldC5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1tYWlsVmVoaWNsZVdpZGdldC5tb2RlbCxlbWFpbEhhbmRsZXIueWVhcj1tYWlsVmVoaWNsZVdpZGdldC55ZWFyLGVtYWlsSGFuZGxlci50cmltPW1haWxWZWhpY2xlV2lkZ2V0LnRyaW0sIlByaWNlVmVoaWNsZSIhPWIubWFpbElEJiYiUHJpY2VWZWhpY2xlTmV3IiE9Yi5tYWlsSUQpfHwoZW1haWxIYW5kbGVyLmNhcjJfbWFrZT1tYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UsZW1haWxIYW5kbGVyLmNhcjJfbW9kZWw9bWFpbFZlaGljbGVXaWRnZXRFeC5tb2RlbCxlbWFpbEhhbmRsZXIuY2FyMl90cmltPW1haWxWZWhpY2xlV2lkZ2V0RXgudHJpbSwKZW1haWxIYW5kbGVyLmNhcjJfeWVhcj1tYWlsVmVoaWNsZVdpZGdldEV4LnllYXIsZW1haWxIYW5kbGVyLmNhcjJfY29sb3I9bWFpbFZlaGljbGVXaWRnZXRFeC5jb2xvcixlbWFpbEhhbmRsZXIuY2FyMl9vZG9tZXRlcj1jKG1haWxWZWhpY2xlV2lkZ2V0RXgub2RvbW90ZXIpLGVtYWlsSGFuZGxlci5jYXIyX3Zpbj1tYWlsVmVoaWNsZVdpZGdldEV4LnZpbixlbWFpbEhhbmRsZXIuY2FyMl90cmFuc21pc3Nvbj1tYWlsVmVoaWNsZVdpZGdldEV4LnRyYW5zbWlzc2lvbixlbWFpbEhhbmRsZXIuY2FyMl9kcml2ZXRyYWluPW1haWxWZWhpY2xlV2lkZ2V0RXguZHJpdmV0cmFpbixlbWFpbEhhbmRsZXIuY2FyMl9mdWVsdHlwZT1tYWlsVmVoaWNsZVdpZGdldEV4LmZ1ZWwsYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5MT1d9L2csIk4vQSIpLGE9YS5yZXBsYWNlKC97XCRUUkFERUlOSElHSH0vZywiTi9BIiksYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5BVkd9L2csIk4vQSIpKSxlbWFpbEhhbmRsZXIudmluPQoiIixlbWFpbEhhbmRsZXIucHJpY2U9MCxlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9IiIsZW1haWxIYW5kbGVyLmNhcmlkPSIiLDA8JCgiI2NhcmlkIikudmFsKCkubGVuZ3RoP2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiOmVtYWlsSGFuZGxlci5jb25kaXRpb249MDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UubGVuZ3RoPyJOZXciOiJVbmtub3duIik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjc2VydmljZVBhY2thZ2VzIikucHJvcCgiaWQiKSl7dmFyIG49ITEscj0iIjskKCJpbnB1dC5zZWxlY3RlZFNlcnZpY2UiKS5lYWNoKGZ1bmN0aW9uKGgscCl7aD0kKHApO2guaXMoIjpjaGVja2VkIikmJihyKz0iPGJyPiIraC52YWwoKSxuPSEwKX0pO24mJihyPSI8YnI+PGJyPjx1PiIrJCgiI3NlbGVjdGVkU2VydmljZXNUaXRsZSIpLnZhbCgpKyI8L3U+IityKTthPWEucmVwbGFjZSgve1wkU0VMRUNURURTRVJWSUNFU30vZyxyKX0idW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmCihtYWlsVXNlckluZm8uYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJEZOQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxVc2VySW5mby5maXJzdE5hbWUpKS5yZXBsYWNlKC97XCRMTkFNRX0vZyxkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsVXNlckluZm8ubGFzdE5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTFBIT05FfS9nLG1haWxVc2VySW5mby5waG9uZSkucmVwbGFjZSgve1wkRU1BSUx9L2csbWFpbFVzZXJJbmZvLmVtYWlsKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsSm9iT2ZmZXImJihtYWlsSm9iT2ZmZXIuYXNzaWduVmFsdWVzKCksZD0kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCksZj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCksYT1hLnJlcGxhY2UoL3tcJEpPQlBPU1R9L2csbShkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsSm9iT2ZmZXIuam9iUG9zaXRvbikpKS5yZXBsYWNlKC97XCRKT0JERVBBUlRNRU5UfS9nLAptKGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxKb2JPZmZlci5qb2JEZXBhcnRtZW50KSkpLnJlcGxhY2UoL3tcJEpPQk1TR30vZyxtKG1haWxKb2JPZmZlci5qb2JNZXNzYWdlKSkpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJBZGRyZXNzKXttYWlsVXNlckFkZHJlc3MuYXNzaWduVmFsdWVzKCk7dmFyIHE9dHJpbShtYWlsVXNlckFkZHJlc3MuYWRkcmVzc0FwcCsiICIrbWFpbFVzZXJBZGRyZXNzLmFkZHJlc3NOdW1iZXIrIiAiK21haWxVc2VyQWRkcmVzcy5hZGRyZXNzU3RyZWV0KTthPWEucmVwbGFjZSgve1wkQ1VSUkVOVEFERFJFU1N9L2csbShxKSkucmVwbGFjZSgve1wkQ1VSUkVOVENJVFl9L2csbShtYWlsVXNlckFkZHJlc3MuY2l0eSkpLnJlcGxhY2UoL3tcJENVUlJFTlRQUk9WSU5DRX0vZyxtKG1haWxVc2VyQWRkcmVzcy5wcm92aW5jZSkpLnJlcGxhY2UoL3tcJENVUlJFTlRQT1NUQUxDT0RFfS9nLG0obWFpbFVzZXJBZGRyZXNzLnBvc3RhbENvZGUpKX0idW5kZWZpbmVkIiE9CnR5cGVvZiBtYWlsU2NoZWR1bGUmJihtYWlsU2NoZWR1bGUuYXNzaWduVmFsdWVzKCksYT1hLnJlcGxhY2UoL3tcJERBVEUxfS9nLG1haWxTY2hlZHVsZS5maXJzdENob2ljZSkucmVwbGFjZSgve1wkREFURTJ9L2csbWFpbFNjaGVkdWxlLnNlY29uZENob2ljZSkucmVwbGFjZSgve1wkV0FJVElOR09OU0lURX0vZyxtYWlsU2NoZWR1bGUud2FpdGluZ09uU2l0ZSkucmVwbGFjZSgve1wkVFJBTlNQT1JUT1BUSU9OfS9nLG1haWxTY2hlZHVsZS5nZXRUcmFuc3BvcnRPcHRpb25UZXh0KCkpLGVtYWlsSGFuZGxlci5zZXJ2aWNlRGF0ZTE9bWFpbFNjaGVkdWxlLmZpcnN0Q2hvaWNlLGVtYWlsSGFuZGxlci5zZXJ2aWNlRGF0ZTI9bWFpbFNjaGVkdWxlLnNlY29uZENob2ljZSxlbWFpbEhhbmRsZXIud2FpdGluZ09uU2l0ZT1tYWlsU2NoZWR1bGUud2FpdGluZ09uU2l0ZSxlbWFpbEhhbmRsZXIudHJhbnNwb3J0T3B0aW9uPW1haWxTY2hlZHVsZS50cmFuc3BvcnRPcHRpb24pO3ZhciB0PXE9IiIsCnU9IiI7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZmluYW5jZU9wdGlvbkRpdiIpLmF0dHIoImlkIikmJigiY2hlY2tlZCI9PSQoIiNmaW5hbmNlT3B0aW9uRGl2IGlucHV0IikuYXR0cigiY2hlY2tlZCIpP3E9JCgiI3RleHRDYXNoIikudmFsKCk6KHE9ImNoZWNrZWQiPT0kKCIjZmluYW5jZU9wdGlvbkRpdjIgaW5wdXQiKS5hdHRyKCJjaGVja2VkIik\/JCgiI3RleHRGaW5hbmNlIikudmFsKCk6JCgiI3RleHRMZWFzZSIpLnZhbCgpLHU9JCgiI2ZpbmFuY2VUZXJtU2VsZWN0IikudmFsKCkpLCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3ZlaGljbGVPZmZlciIpLmF0dHIoImlkIikmJih0PSIkIitjKCQoIiN2ZWhpY2xlT2ZmZXIiKS52YWwoKSkpLGE9YS5yZXBsYWNlKC97XCRQQVlNRU5UfS9nLHEpLnJlcGxhY2UoL3tcJFBBWU1FTlRURVJNfS9nLHUpLnJlcGxhY2UoL3tcJE9GRkVSfS9nLHQpKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNxdWVzdGlvbnNDb21tZW50cyIpLmF0dHIoImlkIikmJgooZT1tKCQoIiNxdWVzdGlvbnNDb21tZW50cyIpLnZhbCgpKSxhPWEucmVwbGFjZSgve1wkUVVFU1RJT05TfS9nLGUpLGVtYWlsSGFuZGxlci5jb21tZW50cz1lKTsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNyZXF1ZXN0VHlwZSIpLmF0dHIoImlkIikmJihhPWEucmVwbGFjZSgve1wkREVNQU5ERX0vZywkKCIjcmVxdWVzdFR5cGUiKS52YWwoKSkpfSQoIiN0ZXN0RHJpdmVUeXBlIikubGVuZ3RoJiYoYT1hLnJlcGxhY2UoL3tcJFRFU1REUklWRVRZUEV9L2csJCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKSksYT0iVmlydHVhbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCl8fCJWaXJ0dWVsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKT9hLnJlcGxhY2UoL3tcJFRFU1REUklWRVZJUlRVQUx9L2csJCgiI3ByZWZlcmVkVmlydHVhbFRvb2wiKS52YWwoKSk6YS5yZXBsYWNlKC97XCRURVNURFJJVkVWSVJUVUFMfS9nLCJOL0EiKSk7JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aD8KZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmZpbmQoIjpzZWxlY3RlZCIpLmh0bWwoKToiMSI9PSQoIiNpc01vYmlsZSIpLnZhbCgpJiYkKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLmxlbmd0aCYmKGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikuZmluZCgiOnNlbGVjdGVkIikuaHRtbCgpKTtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZSYmKGE9YS5yZXBsYWNlKCJ7JERFQUxFUk5BTUV9IixlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZSkpO2E9YS5yZXBsYWNlKC97XCQoREFURVsxMl0pfS9nLGZ1bmN0aW9uKGgscCl7aD0kKCdpbnB1dFtuYW1lPSInK3AudG9Mb3dlckNhc2UoKSsnIl0nLGcpO3JldHVybiAwPGgubGVuZ3RoPyhuZXcgRGF0ZShoLnZhbCgpKSkuZGF0ZUZvcm1hdCgiWS1tLWQgSDppIik6IiJ9KTtjPSIiOzA8JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkubGVuZ3RoJiYoYz0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsKIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2Vkc3RvY2tudW1iZXIiKS52YWwoKSk7YT1hLnJlcGxhY2UoInskTEFTVFZFSElDTEVWSUVXRUR9IixjKTthPWEucmVwbGFjZShSZWdFeHAoIntcXCQoUVVFU1RJT05TfE1FU1NBR0V8UkFUSU5HTUVTU0FHRXxFTUFJTFBIT05FfEVNQUlMTUFLRXxFTUFJTE1PREVMfEVNQUlMWUVBUnxQQVlNRU5UfFBBWU1FTlRURVJNfE9GRkVSfFNUT0NLTlVNQkVSfENPTE9SfEZOQU1FfExOQU1FfEVNQUlMfEtNfFZJTkVYfFNFTEVDVEVEU0VSVklDRVN8RU1BSUxDSVRZfFBMQVRFU3xEQVRFMXxEQVRFMnxUUkFOU1BPUlRPUFRJT04pfSIsImciKSwiIik7YT1hLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZyxiLmJhbmRwTGluaygpKTsiIj09ZCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsIikuYXR0cigiaWQiKSYmCihkPWwmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLmF0dHIoImlkIikmJjA8JCgiI2V4cHJlc3NTZW5kVG9FbWFpbE5FVyIpLnZhbCgpLmxlbmd0aD8kKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCk6JCgiI2V4cHJlc3NTZW5kVG9FbWFpbCIpLnZhbCgpKTtpZigiIj09ZiYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGIikuYXR0cigiaWQiKSlpZihsJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS5hdHRyKCJpZCIpJiYwPCQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS52YWwoKS5sZW5ndGgpZj0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGTkVXIikudmFsKCk7ZWxzZSBpZigic2VydmljZSI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCl8fGImJigibWVudVNlcnZpY2UiPT1iLm1haWxJRHx8ImhlYWRlclNlcnZpY2UiPT0KYi5tYWlsSUQpKWY9JCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERlNFUlZJQ0UiKS52YWwoKTsiIj09ZCYmJCgiI2V4cHJlc3NJbkRlbW8iKS5sZW5ndGgmJiIxIj09JCgiI2V4cHJlc3NJbkRlbW8iKS52YWwoKSYmKGVtYWlsSGFuZGxlci5jb25kaXRpb249Ik5ldyIsMDwkKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkubGVuZ3RoJiYoZD0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkpKTsiUXVpY2tFbWFpbCI9PWIubWFpbElEJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiYwPGUubGVuZ3RoJiYwPCQoIiNzZXJ2aWNlRW1haWwiKS5sZW5ndGgmJjA8JCgiI3NlcnZpY2VBZGZFbWFpbCIpLmxlbmd0aCYmKHRlcm1zPSJyYXBwZWw7c2VydmljZTtodWlsZTtwaWVjZXM7cGnvv71jZXM7cG5ldXM7dHJhbnNtaXNzaW9uO2FjY2Vzc29pcmVzO2FsdGVybmF0ZXVyO2FudGlyb3VpbGxlO2FudGktcm91aWxsZTtiYXR0ZXJpZTtiYXRlcmllO3Lvv71wYXJhdGlvbjtwZWludHVyZTtmcmVpbnM7ZGlzcXVlcztjYXJyb3NzZXJpZTtjYXRhbHlzZXVyO2Nob2M7ZGVtYXJyZXVyO++\/vWNoYXBwZW1lbnQ7bW90ZXVyO2Vzc3VpZS1nbGFjZTtlc3N1aS1nbGFjZTsgZmV1eDtjbGlnbm90YW50O2tsYXhvbjtmaWx0cmU7aG9ybG9nZTtyYWRpbzt0b2l0LW91dnJhbnQ7IG1hZzsgbWFncztt77+9Y2FuaXF1ZTttdWZmbGVyO25hdmlnYXRpb247b3JkaW5hdGV1cjsgcGhhcmVzO2x1bWnvv71yZXM7bHVtaWVyZTtwcm9ibO+\/vW1lO3Byb2JsZW1lO3JlY2FsbDtwYXJ0czt0aXJlO2FjY2Vzc29yaWVzO2FsdGVybmF0b3I7cnVzdHByb29maW5nO2JhdHRlcnk7cmVwYWlyO3BhaW50O2JyYWtlO2Rpc2tzOyBib2R5O3N0YXJ0ZXI7ZXhoYXVzdDtlbmdpbmU7d2lwZXI7d2lwZXJzOyBmbGFzaDsgbGlnaHQ7Zmxhc2hlcjtmbGFzaGVyczsgaG9ybjtmaWx0ZXI7Y2xvY2s7cm9vZjttZWNhbmljO2NvbXB1dGVyO2VjdTtwcm9ibGVtIi5zcGxpdCgiOyIpLAptYXRjaGVkVGVybXM9W10sJC5lYWNoKHRlcm1zLGZ1bmN0aW9uKGgscCl7aWYoLTE8ZS5pbmRleE9mKHApKXJldHVybiBkPSQoIiNzZXJ2aWNlRW1haWwiKS52YWwoKSxmPSQoIiNzZXJ2aWNlQWRmRW1haWwiKS52YWwoKSwhMX0pKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1rO2VtYWlsSGFuZGxlci5ib2R5PWE7ZW1haWxIYW5kbGVyLnNlbmRUbz1kO2VtYWlsSGFuZGxlci5zZW5kRnJvbT0iIjtlbWFpbEhhbmRsZXIubWFpbElEPWIubWFpbElEO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1iLmVtYWlsU2VudDsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxVc2VySW5mbyYmIm1lbnVDb250YWN0VXMiIT1lbWFpbEhhbmRsZXIubWFpbElEJiYibWVudVNlcnZpY2UiIT1lbWFpbEhhbmRsZXIubWFpbElEJiYoZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsVXNlckluZm8uZW1haWwsZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFVzZXJJbmZvLmZpcnN0TmFtZSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPQptYWlsVXNlckluZm8ubGFzdE5hbWUsZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1tYWlsVXNlckluZm8ucGhvbmUpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbEpvYk9mZmVyJiYoZW1haWxIYW5kbGVyLnVzZXJBdHRhY2htZW50UGF0aD1tYWlsSm9iT2ZmZXIuam9iRmlsZSk7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1mOy0xIT1lbWFpbEhhbmRsZXIuYm9keS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoInRlc3RAZDJjbWVkaWEuY2EiKSYmJCgiaW5wdXQudGVzdG1vZGUiKS52YWwoIjEiKTskKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoP2VtYWlsSGFuZGxlci5zZW5kVG89JChnKS5maW5kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLnZhbCgpOiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoJiYoZW1haWxIYW5kbGVyLnNlbmRUbz0kKCIjc2VydmljZUVtYWlsc1NlbGVjdCIpLnZhbCgpKX07Yi5fdmFsaWRhdGVGaWVsZHM9CmZ1bmN0aW9uKGMpe3ZhciBnPSExLGs9JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbCgpLGE9dGhpcy5qcVNjb3BlO2lmKCIjcXVpY2tFbWFpbEZvcm0iPT1hKXJldHVybiEwOyQudmFsaWRpdHkuc3RhcnQoKTt2YXIgZT0iLklubmVyQm94TGF5ZXIiOzA8JCgiLm1haW5fbGVmdF9ib3giKS5sZW5ndGgmJihlPSIubWFpbl9sZWZ0X2JveCIpO2E9Yi5qcVNjb3BlP2IuanFTY29wZTplOzE+JChhKS5sZW5ndGgmJihhPSIjbmV3ZGV0YWlscyIpOzE+JChhKS5sZW5ndGgmJihhPSIubmV3LWRldGFpbHMiKTsxPiQoYSkubGVuZ3RoJiYoYT0iYm9keSIpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZyhjKTtjPSQoYSkuZmluZCgiLnJlcXVpcmVkLC52YWxpZGF0ZSIpOyQoYSkuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtjLmZpbHRlcigiLnJlcXVpcmVkIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVxdWlyZSgpLm5vbkh0bWwoKX0pOwpjLmZpbHRlcigiLnJlcXVpcmVkLXBob25lIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykucmVxdWlyZSgpLnZhbGlkYXRlUGhvbmUoKX0pO2MuZmlsdGVyKCIucGhvbmU6bm90KC5yZXF1aXJlZC1waG9uZSkiKS5lYWNoKChsLG4pPT57JChuKS52YWxpZGF0ZVBob25lKCl9KTtlPSQoIiNwaG9uZTEsI3Bob25lMiwjcGhvbmUzIixhKS5maWx0ZXIoIjp2aXNpYmxlIik7aWYoMDxlLmxlbmd0aCl7dmFyIGQsZjtsZXQgbCxuOzA8KGVbMF0udmFsdWUrKG51bGwhPShsPW51bGw9PShkPWVbMV0pP3ZvaWQgMDpkLnZhbHVlKT9sOiIiKSsobnVsbCE9KG49bnVsbD09KGY9ZVsyXSk\/dm9pZCAwOmYudmFsdWUpP246IiIpKS5sZW5ndGgmJiQoZSkudmFsaWRhdGVQaG9uZSgpfWMuZmlsdGVyKCIuemlwIikuZWFjaChmdW5jdGlvbigpeygkKHRoaXMpLmlzKCIucmVxdWlyZWQiKXx8MCE9JCh0aGlzKS52YWwoKS5sZW5ndGgpJiYkKHRoaXMpLnJlcXVpcmVQb3N0YWxDb2RlKCl9KTsxPT0kKCIudmluIikubGVuZ3RoJiYKKCQoIi52aW4iKS5pcygiLnJlcXVpcmVkIikmJiQoIi52aW4iKS5yZXF1aXJlKCkubm9uSHRtbCgpLDA8JCgiLnZpbiIpLnZhbCgpLmxlbmd0aCYmJCgiLnZpbiIpLm1pbkxlbmd0aCgxNykpOzE9PSQoIi52aW5FeCIpLmxlbmd0aCYmKCQoIi52aW5FeCIpLmlzKCIucmVxdWlyZWQiKSYmJCgiLnZpbkV4IikucmVxdWlyZSgpLm5vbkh0bWwoKSwwPCQoIi52aW5FeCIpLnZhbCgpLmxlbmd0aCYmJCgiLnZpbkV4IikubWluTGVuZ3RoKDE3KSk7Yy5maWx0ZXIoIi5lbWFpbCIpLmVhY2goZnVuY3Rpb24oKXsoJCh0aGlzKS5pcygiLnJlcXVpcmVkIil8fDAhPSQodGhpcykudmFsKCkubGVuZ3RoKSYmJCh0aGlzKS52YWxpZEVtYWlsQWRkcmVzcygpfSk7JChhKS5maW5kKCIudmFsaWRhdGUtZ3JvdXAiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGw9JCh0aGlzKS52YWwoKTskKGwsYSkudmFsaWRBbGxvck5vbmUoKX0pO2MuZmlsdGVyKCIudXBsb2FkIikuZWFjaChmdW5jdGlvbigpeyEkKHRoaXMpLmlzKCIucmVxdWlyZWQiKSYmCjA9PSQodGhpcykudmFsKCkubGVuZ3RofHwiIiE9JCh0aGlzKS52YWwoKXx8KCQoIiN1cGxvYWRTdGF0dXMiKS5jc3MoImNvbG9yIiwicmVkIiksJCgiI3VwbG9hZFN0YXR1cyIpLmh0bWwoJCgiI2ZpbGVVcGxvYWRSZXF1ZXN0IikudmFsKCkpLCQoIiN1cGxvYWRTdGF0dXMiKS5zaG93KCkpfSk7ZD0kLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnM7JCgiI2VtYWlsIikubWF0Y2goImVtYWlsIik7JC52YWxpZGl0eS5yZXBvcnQuZXJyb3JzPmQmJihmPSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLnRleHQoKSsiLjxici8+IiskKCIjZW1haWxFcnJvck1zZyIsIiN1c2VySW5mb0Zvcm0iKS52YWwoKSsiLiIsMD09ZCYmKGY9JCgiI2VtYWlsRXJyb3JNc2ciLCIjdXNlckluZm9Gb3JtIikudmFsKCkpLCQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmh0bWwoZikpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJJbmZvJiYiZnVuY3Rpb24iPT10eXBlb2YgbWFpbFVzZXJJbmZvLmFkZGVkVmFsaWRhdGlvbiYmCm1haWxVc2VySW5mby5hZGRlZFZhbGlkYXRpb24oYSk7JC52YWxpZGl0eS5lbmQoKS52YWxpZD9nPSEwOigkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5zaG93KCksJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuY2VudGVyKCksJChkb2N1bWVudCkub25lKCJtb3VzZWRvd24iLGZ1bmN0aW9uKGwpeyQudmFsaWRpdHkuY2xlYXIoKTskKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5oaWRlKCk7JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbChrKX0pKTtyZXR1cm4gZ319O3ZhciBtYWlsUGFnZT1uZXcgR2VuZXJpY01haWw7CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7MDwkKCIjdG9waXNtb2JpbGUiKS5sZW5ndGgmJjE8JCgiI3RvcGlzbW9iaWxlIikudmFsKCkmJihtYWlsUGFnZS5qcVNjb3BlPSIubmV3LWRldGFpbHMiKTskKCIjc2VuZEVtYWlsRm9ybSBidXR0b24iKS5vbigiY2xpY2sgdGFwIixtYWlsUGFnZS5zYXZlKTskKCIjc2VuZEVtYWlsRm9ybVN1Ym1pdCIpLm9uKCJjbGljayB0YXAiLG1haWxQYWdlLnNhdmUpO21haWxQYWdlLm1haWxJRD0kKCIjdGV4dFNhdmVNYWlsSUQiKS52YWwoKTskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJzdW1tYXJ5IixzY3JvbGxUbzohMX0pO2pRdWVyeS5mbi5jZW50ZXI9ZnVuY3Rpb24oKXskKCJpc21vYmlsZSIpJiYwPCQoIiNzZW5kRW1haWxGb3JtU3VibWl0IikubGVuZ3RoP3RoaXMuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6KCQod2luZG93KS53aWR0aCgpLSQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLm91dGVyV2lkdGgoKSkvMiwKdG9wOiQoIiNzZW5kRW1haWxGb3JtU3VibWl0IikucG9zaXRpb24oKS50b3AtMTB9KTp0aGlzLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OigkKHdpbmRvdykud2lkdGgoKS0kKCIjY29udGFpbmVyIikub3V0ZXJXaWR0aCgpKS8yLHRvcDooJCh3aW5kb3cpLmhlaWdodCgpLSQoIiNjb250YWluZXIiKS5vdXRlckhlaWdodCgpKS8yfSk7cmV0dXJuIHRoaXN9OyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFBhZ2UubWFpbElEJiZlbWFpbEhhbmRsZXIubG9nRm9ybVJlcXVlc3QoIkZvcm1Mb2FkZWQiLG1haWxQYWdlLm1haWxJRCl9KTsKLyoqIC9tL2pzL3BvcHVwaXplci5qcyAqKi8KdmFyIF9fX2QyY19wb3B1cGl6ZXJqc19jX29uPSIyMDI2LTA2LTA0IDA5OjMwOjEzIjsndXNlIHN0cmljdCc7aXNTY3JhdGNoQW5kU2F2ZT0idW5kZWZpbmVkIj09dHlwZW9mIGlzU2NyYXRjaEFuZFNhdmU\/IiI6aXNTY3JhdGNoQW5kU2F2ZTtwb3B1cFdpZGdldF9wYWdlVmlld3NJbmNyZW1lbnRlZD0idW5kZWZpbmVkIj09dHlwZW9mIHBvcHVwV2lkZ2V0X3BhZ2VWaWV3c0luY3JlbWVudGVkPyIiOnBvcHVwV2lkZ2V0X3BhZ2VWaWV3c0luY3JlbWVudGVkO3Nob3dQb3B1cFdpZGdldD0iZnVuY3Rpb24iIT10eXBlb2Ygc2hvd1BvcHVwV2lkZ2V0P2Z1bmN0aW9uKCl7fTpzaG93UG9wdXBXaWRnZXQ7YWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ9ImZ1bmN0aW9uIiE9dHlwZW9mIGFjdGl2YXRlUG9wdXBCZWZvcmVMb2FkP2Z1bmN0aW9uKCl7fTphY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZDsKdmFyIHBvcHVwSXNTdWJtaXR0aW5nPSExLENQb3B1cFN1cGVydmlzb3I9ZnVuY3Rpb24oKXt2YXIgYz10aGlzO2Mub25sb2FkUXVldWU9W107Yy5pbmRleD0wO2MuaXNBbmltYXRpbmc9ITE7Yy5wb3B1cHM9W107Yy5yZWdpc3Rlcj1mdW5jdGlvbihhKXt2YXIgaz0wOzA8TnVtYmVyKGEuc2V0dGluZ3Muc2hvd29ubG9hZCkmJiEwIT09YS5zZXR0aW5ncy5zaG93b25sb2FkJiYoaz1hLnNldHRpbmdzLnNob3dvbmxvYWQpO3ZhciBiPTE7MTxhLnNldHRpbmdzLnByaW9yaXR5JiYoYj1hLnNldHRpbmdzLnByaW9yaXR5KTsxIT1Db29raWVzLmdldCgibm91c2VkY3RhIil8fCJ1c2VkY2Fycy5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpJiYiY2FyZGV0YWlsLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCk\/Yy5vbmxvYWRRdWV1ZS5wdXNoKHtwb3B1cDphLGRlbGF5OmsscHJpb3JpdHk6Yn0pOmNvbnNvbGUubG9nKCJOb3Qgc2hvd2luZyBwb3B1cCBvbmxvYWQsIGJlY2F1c2UgaXRzIGEgdXNlZCBwYWdlIGFuZCB0aGUgY29va2llIG5vdXNlZGN0YSBpcyBzZXQiKX07CmMucmVwb3NpdGlvbj1mdW5jdGlvbigpe2lmKCEocG9wdXBpemVyQWN0aXZlKCl8fCJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJm1vZGVsQ29uZmlnLmlzQWN0aXZlJiZtb2RlbENvbmZpZy5pc0FjdGl2ZSgpKSlyZXR1cm4gJCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLCIiKSwhMTtpZihjLmlzQW5pbWF0aW5nKXJldHVybiExO3ZhciBhPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDokKHdpbmRvdykuaGVpZ2h0KCksaz0kKGRvY3VtZW50KS5zY3JvbGxUb3AoKSxiPS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPzU6MjA7JCgiLnJldmVhbC1tb2RhbCIpLmVhY2goZnVuY3Rpb24oZCxlKXtkPSQodGhpcyk7aWYoInZpc2libGUiPT1kLmNzcygidmlzaWJpbGl0eSIpKXtlPWQub2Zmc2V0KCkudG9wO3ZhciBoPWQub3V0ZXJIZWlnaHQoKSxsPWUraDtpZihhPGgrYnx8bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvKGlQaG9uZXxpUG9kKS9nKSl7aWYoJCgiYm9keSIpLmNzcygib3ZlcmZsb3ciLAoiYXV0byIpLGs+bHx8aythPGUpZT1rK2IsYy5pc0FuaW1hdGluZz0hMCxkLmFuaW1hdGUoe3RvcDplKyJweCJ9LDIwMCxmdW5jdGlvbigpe2MuaXNBbmltYXRpbmc9ITF9KX1lbHNlIGU9aysoYS1oKS8yLGU9ZTxiP2I6ZSxjLmlzQW5pbWF0aW5nPSEwLGQuYW5pbWF0ZSh7dG9wOmUrInB4In0sMjAwLGZ1bmN0aW9uKCl7Yy5pc0FuaW1hdGluZz0hMX0pfX0pfTtjLnNob3c9ZnVuY3Rpb24oKXtpZighKDA8JCgiI2Rpc2FibGVQb3B1cHMiKS5sZW5ndGgmJiIxIj09JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKSkmJihjLm9ubG9hZFF1ZXVlLnNvcnQoZnVuY3Rpb24oYSxrKXtpZihhLnByaW9yaXR5PmsucHJpb3JpdHkpcmV0dXJuIDE7aWYoYS5wcmlvcml0eTxrLnByaW9yaXR5KXJldHVybi0xO2lmKGEucHJpb3JpdHk9PWsucHJpb3JpdHkpcmV0dXJuIGEuZGVsYXk8ay5kZWxheT8xOi0xfSksKCJCVUlMREFORFBSSUNFIiE9cGFnZXx8Ii0xIiE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigic3RlcD1yZXN1bWUiKSkmJgowPGMub25sb2FkUXVldWUubGVuZ3RoKSl7Zm9yKGtleSBpbiBjLm9ubG9hZFF1ZXVlKWlmKDE9PWMub25sb2FkUXVldWVba2V5XS5wb3B1cC5zZXR0aW5ncy5lbmRQb3B1cFF1ZXVlKXJldHVybiBjLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAub3BlbihjLm9ubG9hZFF1ZXVlW2tleV0uZGVsYXkpLCExO2ZvcihrZXkgaW4gYy5vbmxvYWRRdWV1ZSljLm9ubG9hZFF1ZXVlW2tleV0ucG9wdXAub3BlbihjLm9ubG9hZFF1ZXVlW2tleV0uZGVsYXkpfX07dmFyIG09ZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJBY3RpdmUoKSlyZXR1cm4gc2V0VGltZW91dChtLDUwMCksITE7c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHBvcHVwaXplckFjdGl2ZSgpKXJldHVybiBtKCk7JC5wb3N0TWVzc2FnZSgiY2xvc2VQb3B1cCIsIioiLHdpbmRvdy5wYXJlbnQpfSwxRTMpfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7MDwkKCIjYXV0b2F1YmFpbmVfcG9wdXAiKS5sZW5ndGgmJiJmYWxzZSIhPSQoIiNhdXRvYXViYWluZV9wb3B1cCIpLnZhbCgpJiYKbSgpfSw1RTMpfSxwb3B1cFN1cGVydmlzb3I9bmV3IENQb3B1cFN1cGVydmlzb3IscG9wdXBpemVyQWN0aXZlPWZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQ29uZmlnLnBvcHVwT3BlbilyZXR1cm4hMDt2YXIgYz0hMTskKCIucmV2ZWFsLW1vZGFsLCAucmV2ZWFsLW1vZGVsLWRvLW5vdC1zaG93IikuZWFjaChmdW5jdGlvbigpe2lmKDEhPWMpe3ZhciBtPSQodGhpcyk7aWYoIW0uaXMoIjpoaWRkZW4iKSlzd2l0Y2gobS5jc3MoInZpc2liaWxpdHkiKSl7Y2FzZSAidW5kZWZpbmVkIjpjYXNlICJ2aXNpYmxlIjpjPSEwfX19KTtpZigkKCIucHBfb3ZlcmxheSIpLmlzKCI6dmlzaWJsZSIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubW9kYWwtb3ZlcmxheSIpKWM9ITA7cmV0dXJuIGN9LHBvcHVwaXplckNvbmZpZz17fTskLmV4dGVuZCghMCxwb3B1cGl6ZXJDb25maWcse3BvcHVwT3BlbjohMX0pOwp2YXIgcG9wdXBpemVyPWZ1bmN0aW9uKGMsbSl7dmFyIGE9dGhpcyxrPSJhdXRvIjtjP2EudGFyZ2V0PWM6Yz1hLnRhcmdldDthLnNldHRpbmdzPW07YS5zZXRUcmlnZ2VyPWZ1bmN0aW9uKGIpe2s9InN0cmluZyI9PXR5cGVvZiBiJiYiY2xpY2siPT1iLnRvTG93ZXJDYXNlKCk\/ImNsaWNrIjoiYXV0byI7YS5zZXR0aW5ncy50cmlnZ2VyPWs7cmV0dXJuIGF9O2EuaW5pdD1mdW5jdGlvbigpe3ZhciBiPSJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlSW5pdGlhbGl6ZSxkPSJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplO2lmKGEuaXNDb250ZW50TG9hZGVkKCl8fCFiJiYhZCl7aWYoYil7dmFyIGU9YS5zZXR0aW5ncy5vbkJlZm9yZUluaXRpYWxpemUuY2FsbChjLGEpO2lmKDA9PWUpcmV0dXJufWI9ITE7aWYoYS5zZXR0aW5ncy50aHJlc2hvbGQmJmEuc2V0dGluZ3MubWFpbnBvcHVwKXthLnNldHRpbmdzLnNob3dvbmxvYWQ9ITE7CmlmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplJiYoYj0hMCxlPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWUpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn10aHJlc2hvbGRFeGVjKGEuc2V0dGluZ3MudGhyZXNob2xkVmFsdWUvMTAwLGEuZXhlY09wZW4pfWlmKGEuc2V0dGluZ3Muc2Nyb2xsdXAmJmEuc2V0dGluZ3MubWFpbnBvcHVwKXthLnNldHRpbmdzLnNob3dvbmxvYWQ9ITE7aWYoZCYmKGI9ITAsZT1hLnNldHRpbmdzLm9uQWZ0ZXJJbml0aWFsaXplLmNhbGwoYyxhKSwwPT1lKSl7YS5zYXZlU2V0dGluZ3MoKTtyZXR1cm59c2Nyb2xsdXBFeGVjKGEuZXhlY09wZW4pfWMuYWRkQ2xhc3MoInJldmVhbC1tb2RhbCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hZGRlZENsYXNzZXMmJjA8YS5zZXR0aW5ncy5hZGRlZENsYXNzZXMubGVuZ3RoJiZjLmFkZENsYXNzKGEuc2V0dGluZ3MuYWRkZWRDbGFzc2VzKTsKJCgiZm9ybSIsYykub24oInN1Ym1pdCIsYS5zdWJtaXQpO2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7YS5zZXR0aW5ncy5hbmltYXRpb24mJmUuZ2V0Q29udGV4dCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hbmltYXRpb24uZWZmZWN0JiYoYS5zZXR0aW5ncy5yZXZlYWwuYW5pbWF0aW9uPSJleHRlcm5hbEFuaW1hdGlvbiIsYy5hZGRDbGFzcyhhLnNldHRpbmdzLmFuaW1hdGlvbi5lZmZlY3QpKSwidW5kZWZpbmVkIiE9dHlwZW9mIGEuc2V0dGluZ3MuYW5pbWF0aW9uLnNwZWVkJiZjLmFkZENsYXNzKGEuc2V0dGluZ3MuYW5pbWF0aW9uLnNwZWVkKSk7YS5zZXR0aW5ncy5pbml0aWFsaXplZD0hMDtjLnRyaWdnZXIoInBvcHVwaXplci5pbml0aWFsaXplZCIsYSk7aWYoZCYmIWImJihlPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWUpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn1hLnNhdmVTZXR0aW5ncygpO2Q9JCgiI2hpZGRlblNraXBPbmxvYWRQcmludHNjcmVlbiIpOwppZigwPGQubGVuZ3RoJiYiRE9fU0tJUF9QT1BVUCI9PWQudmFsKCkpcmV0dXJuITE7IWEuc2V0dGluZ3Muc2hvd29ubG9hZHx8bnVsbCE9Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpfHxudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpfHwxIT1hLnNldHRpbmdzLmNsb3NlQnV0dG9uJiYwIT1hLnNldHRpbmdzLmNsb3NlQnV0dG9ufHwoLTEhPXdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoIi9yZXF1ZXN0LyIpfHwtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL2RlbWFuZGVzLyIpKSYmLTE9PWEuc2V0dGluZ3MubmFtZS5pbmRleE9mKCJpbWFnZVBvcHVwIil8fHBvcHVwU3VwZXJ2aXNvci5yZWdpc3RlcihhKTskKGRvY3VtZW50KS5vZmYoImNsaWNrIiwiLiIrbS5yZXZlYWwuZGlzbWlzc21vZGFsY2xhc3MpLm9uKCJjbGljayIsIi4iK20ucmV2ZWFsLmRpc21pc3Ntb2RhbGNsYXNzLGZ1bmN0aW9uKGgpe2MudHJpZ2dlcigicG9wdXBpemVyLmNsb3NlIiwKYyl9KTskKGRvY3VtZW50KS5vZmYoImtleXVwIikub24oImtleXVwIixmdW5jdGlvbihoKXsyNz09PWgud2hpY2gmJmMudHJpZ2dlcigicG9wdXBpemVyLmNsb3NlIixjKX0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuc2V0dGluZ3MuZm9ybS5mcm9tQUEmJihlbWFpbEhhbmRsZXIuZnJvbUFBPWEuc2V0dGluZ3MuZm9ybS5mcm9tQUEpO3JldHVybiBhfWEubG9hZChhLmluaXQpfTthLm9uT3Blbj1mdW5jdGlvbigpe2EuaXNDb250ZW50TG9hZGVkKCl8fGEubG9hZCgpO2lmKCJhdXRvIj09ayYmbnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSlyZXR1cm4hMTt2YXIgYj1lbWFpbEhhbmRsZXIuZ2V0TmV3U2VxdWVuY2UoKTtiLnNldEFjdGlvbihmdW5jdGlvbigpe2VtYWlsSGFuZGxlci5kZWFsZXJTZWxlY3RGdW5jKCEwLHRoaXMpfSk7dmFyIGQ9ZW1haWxIYW5kbGVyLmdldE5ld1NlcXVlbmNlKCk7ZC5zZXRBY3Rpb24oZnVuY3Rpb24oKXtjLmZpbmQoIi5wb3B1cGl6ZXJCb2R5Iikuc2hvdygpOwppZihudWxsIT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIil8fG51bGwhPUNvb2tpZXMuZ2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSkpYy5maW5kKCIuY2xvc2UtcmV2ZWFsLW1vZGFsIikucmVtb3ZlQ2xhc3MoIm1vZGFsLWNsb3NlLWhpZGUiKSxjLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5zaG93KCk7YS5jcmVhdGVDb25maXJtRm9ybSgpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlT3BlbiYmMD09YS5zZXR0aW5ncy5vbkJlZm9yZU9wZW4uY2FsbChjLGEpKXJldHVybiExO3ZhciBlPSIvcG9wdXAtIithLnRhcmdldC5maW5kKCIuZW1haWxTdWJqZWN0IikudGV4dCgpLnJlcGxhY2UoL1tcblxyXS9nLCIgIik7YS50YXJnZXQuZmluZCgiI2ltYWdlUG9wdXBMZWFkVHlwZSIpLmxlbmd0aCYmKGU9Ii9wb3B1cC0iK2EudGFyZ2V0LmZpbmQoIiNpbWFnZVBvcHVwTGVhZFR5cGUiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWQiKS5yZXBsYWNlKC9bXG5ccl0vZywKIiAiKSk7YS50YXJnZXQuZmluZCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIikubGVuZ3RoJiYoZT0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyIvbmV1ZnMvY2FsY3VsYXRyaWNlLXByZXQtYXV0by1wb3B1cC5odG1sIjoiL25ldy9jYXItbG9hbi1jYWxjdWxhdG9yLXBvcHVwLmh0bWwiKTtnYVBhZ2VWaWV3KGUpO2dhNFBhZ2VWaWV3KGUpO2EubG9nRXZlbnQoInBvcHVwLm9wZW4iKTsibGl2ZSI9PSQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLnZhbCgpJiZnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiUG9wdXAtTGF1bmNoZWQiLGEuc2V0dGluZ3MubmFtZSx3aW5kb3cubG9jYXRpb24uaHJlZiwxKTthLnNldHRpbmdzLmNvdW50ZG93biYmYS5pbml0Q291bnRkb3duKCk7Yy5kYXRhKCJvcGVuIiwhMCk7cG9wdXBpemVyQ29uZmlnLnBvcHVwT3Blbj0hMDsib25PcGVuIj09YS5zZXR0aW5ncy5jb29raWVDcmVhdGUmJmEuc2V0Q29va2llKCk7ZT1jLmZpbmQoImZvcm0iKS5maXJzdCgpOwplLmZpbmQoJ2lucHV0IFt0eXBlPSJ0ZXh0Il0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5vZmYoImZvY3VzIGJsdXIgY2hhbmdlIikuY3NzKCJjb2xvciIsIiMwMDAiKTskKHRoaXMpLmF0dHIoInBsYWNlaG9sZGVyIiwkKHRoaXMpLmF0dHIoImFsdCIpKX0pO3ZhciBoPW5ldyBGb3JtO2gubWFza1Bob25lKGMuZmluZCgiZm9ybSIpLnNlbGVjdG9yKyIgaW5wdXQucGhvbmUiKTtoLm1hc2tQaG9uZShjLmZpbmQoImZvcm0iKS5zZWxlY3RvcisiIGlucHV0Lm1vYmlsZSIpOzA8ZS5maW5kKCIucGhvbmUucmVxdWlyZWQiKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PTE6ZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PTA7YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQmJmVtYWlsSGFuZGxlci5sb2dGb3JtUmVxdWVzdCgiRm9ybUxvYWRlZCIsYS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQsYS5zZXR0aW5ncy5mb3JtLm9mZmVydHlwZSk7YS5zZXR0aW5ncy5yZXZlYWwuY2xvc2VkPQphLm9uQ2xvc2U7Yy5yZXZlYWwoYS5zZXR0aW5ncy5yZXZlYWwpOyQoIiNmbG9hdFByb21vVG9wQnRuQ29udGFpbmVyIikuaGlkZSgpOyQoIiNjb250YWluZXJGbEIiKS5oaWRlKCk7JCgiI3RvYXN0LWNvbnRhaW5lciIpLmhpZGUoKTskKCIjYWxlcnRNc2dDb250YWluZXIiKS5oaWRlKCk7YS5zZXR0aW5ncy5mb3JtLk9LQnV0dG9uQ2xhc3MmJihlPWEuc2V0dGluZ3MuZm9ybS5PS0J1dHRvbkNsYXNzLCIuIj09ZVswXSYmKGU9ZS5zdWJzdHJpbmcoMSkpLCQoIi4iK2UsYykub2ZmKCJjbGljayIpLm9uKCJjbGljayIsYS5zdWJtaXQpKTthLnNldHRpbmdzLmZvcm0uQ2FuY2VsQnV0dG9uQ2xhc3MmJihlPWEuc2V0dGluZ3MuZm9ybS5DYW5jZWxCdXR0b25DbGFzcywiLiI9PWVbMF0mJihlPWUuc3Vic3RyaW5nKDEpKSwkKCIuIitlLGMpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGEuY2FuY2VsKSk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25PcGVuIixhKX0pOyQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfQkVGT1JFX1BPUFVQIikubGVuZ3RoJiYKIjEiPT0kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX0JFRk9SRV9QT1BVUCIpLnZhbCgpPyJhdXRvIiE9az9iLnNldE5leHQoZCkuZXhldXRlKCk6ZC5leGV1dGUoKTpkLmV4ZXV0ZSgpfTthLm9uQ2xvc2U9ZnVuY3Rpb24oKXtjLmRhdGEoIm9wZW4iLCExKTtwb3B1cGl6ZXJDb25maWcucG9wdXBPcGVuPSExO2Euc2V0dGluZ3Muc3VibWl0dGVkfHxhLmxvZ0V2ZW50KCJwb3B1cC5jYW5jZWwiKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiI3RvYXN0LWNvbnRhaW5lciIpLnNob3coKX0sNTAwKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiLnJldmVhbC1tb2RhbC1iZyIpLmxlbmd0aCYmJCgiLnJldmVhbC1tb2RhbC1iZyIpLnJlbW92ZSgpfSwxRTMpO2MudHJpZ2dlcigicG9wdXBpemVyLm9uQ2xvc2UiLGEpOyJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQ2xvc2UmJmEuc2V0dGluZ3Mub25DbG9zZS5jYWxsKGMsYSl9O2Euc3VibWl0PWZ1bmN0aW9uKCl7aWYocG9wdXBJc1N1Ym1pdHRpbmcpcmV0dXJuITE7CnBvcHVwSXNTdWJtaXR0aW5nPSEwO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtwb3B1cElzU3VibWl0dGluZz0hMX0sM0UzKTt2YXIgYj1jLmZpbmQoImZvcm0iKS5maXJzdCgpLGQ9W10sZT0iIixoPSIiLGw9W10scD1bXSxnPSEwLHQ9IiIsej0iIixBPSIiO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlVmFsaWRhdGlvbilzd2l0Y2goYS5zZXR0aW5ncy5vbkJlZm9yZVZhbGlkYXRpb24uY2FsbChiLGMsYSkpe2Nhc2UgITE6Y2FzZSAwOnJldHVybiBwb3B1cElzU3VibWl0dGluZz0hMTtjYXNlIC0xOmc9ITF9aWYoZyl7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKTtiLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7Yi5maW5kKCJpbnB1dC5yZXF1aXJlZCwgc2VsZWN0LnJlcXVpcmVkLCB0ZXh0YXJlYS5yZXF1aXJlZCIpLnJlcXVpcmUoKTt2YXIgdj0hMSxCPSExLAp3PSExO2IuZmluZCgiaW5wdXQiKS5maWx0ZXIoIi5yZXFSYWRpbyIpLnJhZGlvT3B0aW9uQ2hvc2VuKCk7Yi5maW5kKCJpbnB1dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZj0kKHRoaXMpO2YuaGFzQ2xhc3MoImVtYWlsIikmJihmLmhhc0NsYXNzKCJyZXF1aXJlZCIpfHwwPGYudmFsKCkubGVuZ3RoKSYmKHc9ITApO2lmKGYuaGFzQ2xhc3MoInBob25lIil8fGYuaGFzQ2xhc3MoIm1vYmlsZSIpKWlmKEI9ITAsZi5oYXNDbGFzcygicmVxdWlyZWQiKXx8MDxmLnZhbCgpLmxlbmd0aCl2PSEwfSk7MD09diYmMD09dyYmKEI\/dj0hMDp3PSEwKTtiLmZpbmQoImlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBmPSQodGhpcyk7Zi5oYXNDbGFzcygiZW1haWwiKSYmZi52YWxpZEVtYWlsQWRkcmVzcygpO2YuaGFzQ2xhc3MoInBob25lIikmJmYudmFsaWRhdGVQaG9uZSgpO2YuaGFzQ2xhc3MoIm1vYmlsZSIpJiZmLnZhbGlkYXRlTW9iaWxlKCl9KTsxPmMuZmluZCgiLk1pc3NpbmdWYWxpZGF0aW9uTXNnIikubGVuZ3RoJiYKYy5hcHBlbmQoJzxkaXYgY2xhc3M9Ik1pc3NpbmdWYWxpZGF0aW9uTXNnIj48L2Rpdj4nKTtpZighJC52YWxpZGl0eS5lbmQoKS52YWxpZClyZXR1cm4gJCgiLk1pc3NpbmdWYWxpZGF0aW9uTXNnIixjKS5zaG93KCksJChkb2N1bWVudCkub24oIm1vdXNlZG93biIsZnVuY3Rpb24oZil7JCgiLk1pc3NpbmdWYWxpZGF0aW9uTXNnIixjKS5oaWRlKCk7JCh0aGlzKS5vZmYoZil9KSxhLmxvZ0V2ZW50KCJwb3B1cC52YWxpZGF0aW9uRmFpbGVkIikscG9wdXBJc1N1Ym1pdHRpbmc9ITF9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVzdWJtaXQpe2c9ITA7dHJ5e2c9YS5zZXR0aW5ncy5vbkJlZm9yZXN1Ym1pdC5jYWxsKGMsYSl9Y2F0Y2goZil7Y29uc29sZS5sb2coIk9uIGJlZm9yZSBzdWJtaXQgZmFpbGVkLCByZXR1cm5pbmcgdHJ1ZS4iLGYpfWlmKDA9PWcpcmV0dXJuIGEuc2V0dGluZ3MuY2xvc2VPblN1Ym1pdCYmYS5jbG9zZSgpLCExfWEubG9nRXZlbnQoInBvcHVwLnN1Ym1pdCIpOwpiLmZpbmQoImlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBmPSQodGhpcyk7KGYuaGFzQ2xhc3MoImVtYWlsIil8fCJlbWFpbCI9PT1mLmF0dHIoInR5cGUiKSkmJmQucHVzaChmLnZhbCgpKTtmLmhhc0NsYXNzKCJwb3N0YWwiKSYmKGU9Zi52YWwoKSk7Zi5oYXNDbGFzcygidHJhZGVpbiIpJiYoaD1mLnZhbCgpKTsoZi5oYXNDbGFzcygicGhvbmUiKXx8Zi5oYXNDbGFzcygibW9iaWxlIil8fCJ0ZWwiPT09Zi5hdHRyKCJ0eXBlIikpJiZwLnB1c2goZi52YWwoKSk7InVuZGVmaW5lZCI9PXR5cGVvZiBmLmF0dHIoIm5hbWUiKSYmZi5hdHRyKCJuYW1lIiwiIik7KGYuaGFzQ2xhc3MoIm5hbWUiKXx8Im5hbWUiPT1mLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKSYmbC5wdXNoKGYudmFsKCkpOyhmLmhhc0NsYXNzKCJmaXJzdG5hbWUiKXx8ImZpcnN0bmFtZSI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpJiZsLnVuc2hpZnQoZi52YWwoKSk7KGYuaGFzQ2xhc3MoImxhc3RuYW1lIil8fAoibGFzdG5hbWUiPT1mLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKSYmbC5wdXNoKGYudmFsKCkpO2lmKGYuaGFzQ2xhc3MoImNvbW1lbnQiKXx8ImNvbW1lbnQiPT1mLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKXQ9Zi52YWwoKTtpZihmLmhhc0NsYXNzKCJhZGRyZXNzIil8fCJhZGRyZXNzIj09Zi5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSl6PWYudmFsKCk7aWYoZi5oYXNDbGFzcygiYmlydGhkYXRlIil8fCJiaXJ0aGRhdGUiPT1mLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKUE9Zi52YWwoKX0pO2c9Yi5zZXJpYWxpemVBcnJheSgpO3ZhciB4PSQoIi5lbWFpbEJvZHkiLGMpLmh0bWwoKSsiIix1PSQoIi5lbWFpbFN1YmplY3QiLGMpLmh0bWwoKSsiIjsiUHJpY2VWZWhpY2xlIj09YS5zZXR0aW5ncy5mb3JtLmVtYWlsaWQmJjA9PWIuZmluZCgiW25hbWU9bm9DQkJdIikudmFsKCkmJiJTTVMiPT1iLmZpbmQoIiN0cmFkZUluQmFyU21zT3JFbWFpbFNtczpjaGVja2VkIikudmFsKCkmJgoodSs9IiAoU01TKSIpO3ZhciBxPVtdO1tdLnB1c2guYXBwbHkocSxnKTtbXS5wdXNoLmFwcGx5KHEsYS5nbG9iYWxSZXBsYWNlbWVudHMoKSk7JC5lYWNoKHEsZnVuY3Rpb24oKXt2YXIgZj1uZXcgUmVnRXhwKCJ7XFwkIit0aGlzLm5hbWUudG9VcHBlckNhc2UoKSsifSIsImciKSxuPXRoaXMudmFsdWU7IlNFQVJDSEVEVkVISUNMRSI9PXRoaXMubmFtZS50b1VwcGVyQ2FzZSgpJiYobj0iPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+IituKyI8L3NwYW4+Iik7eD14LnJlcGxhY2UoZixuKTt1PXUucmVwbGFjZShmLHRoaXMudmFsdWUpfSk7Zz17c2VuZFRvOmEuc2V0dGluZ3MuZm9ybS5zZW5kVG8sc2VuZFRvQURGRm9ybWF0OmEuc2V0dGluZ3MuZm9ybS5zZW5kVG9BREYsY29uZGl0aW9uOmEuc2V0dGluZ3MudmVoaWNsZVN0YXRlLG1haWxJRDphLnNldHRpbmdzLmZvcm0uZW1haWxpZCxzdWJqZWN0OnUsYm9keTp4LHVzZXJQb3N0YWw6ZSxhZGRyZXNzOnosYmlydGhkYXRlOkEsdHJhZGVpbjpoLApwb3B1cGRpdjoiIix1c2VyRW1haWw6ZC5qb2luKCI7IiksdXNlck5hbWU6bC5qb2luKCIgIiksdXNlclBob25lOnAuam9pbigiLCIpLHNtczphLnNldHRpbmdzLmZvcm0uc21zLHBvcHVwT2ZmZXJUeXBlOmEuc2V0dGluZ3MuZm9ybS5vZmZlcnR5cGUsY29tbWVudHM6dH07JC5leHRlbmQoITAsZW1haWxIYW5kbGVyLGcpOyJzdHJpbmciPT10eXBlb2YgZW1haWxIYW5kbGVyLnVzZXJOYW1lJiYoZz1lbWFpbEhhbmRsZXIudXNlck5hbWUuc3BsaXQoIiAiKSxlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1nLnNoaWZ0KCksZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1nLmpvaW4oIiAiKSk7ZW1haWxIYW5kbGVyLnBvcHVwZGl2PWEudGFyZ2V0LmF0dHIoImlkIik7aWYoYS5zZXR0aW5ncy5maWxsZmxhZyl2YXIgQz1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJwb3B1cEZvcm1GaWxsZWQiLCIxIiw5MCwiLyIpO2MudHJpZ2dlcigicG9wdXBpemVyLmZvcm1GaWxsZWQiLGEpfTtpZigiZnVuY3Rpb24iPT0KdHlwZW9mIGVtYWlsSGFuZGxlci5jYWxsYmFjayYmMDxlbWFpbEhhbmRsZXIuY2FsbGJhY2subGVuZ3RoKXZhciBEPWVtYWlsSGFuZGxlci5jYWxsYmFjazt2YXIgRT1mdW5jdGlvbigpe3JldHVybiEwfTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFmdGVyc3VibWl0JiYoRT1hLnNldHRpbmdzLm9uQWZ0ZXJzdWJtaXQpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PWZ1bmN0aW9uKCl7Yy5jc3Moe29wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD1mdW5jdGlvbihmKXthLnNldHRpbmdzLmNsb3NlT25TdWJtaXQ\/YS5jbG9zZSgpOmMucmV2ZWFsKGEuc2V0dGluZ3MucmV2ZWFsKTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkR1cGxpY2F0ZVNlbmQ9CmZ1bmN0aW9uKCl7YS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0JiZhLmNsb3NlKCk7ZW1haWxIYW5kbGVyLnJlc2V0Q2FsbGJhY2tzKCl9O2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihmKXt2YXIgbj0hMTthLnNldHRpbmdzLmZvcm0uc2hvd0VtYWlsQ29uZmlybWF0aW9uJiYobj1nZXRNYWlsU2VudEhhbmRsZXIoIl8iK2MuYXR0cigiaWQiKSksbi50aW1lb3V0Q2FsbGJhY2s9ZnVuY3Rpb24oKXtiLnRyaWdnZXIoInJlc2V0Iil9KTt2YXIgRj1hLnNldHRpbmdzLmNsb3NlT25TdWJtaXQ7aWYoZilhLmxvZ0V2ZW50KCJwb3B1cC5sZWFkX3NlbnQiKSwwPT1FLmNhbGwoYyxhKSYmKEY9ITEpLCJmdW5jdGlvbiI9PXR5cGVvZiBDJiZDKCksImZ1bmN0aW9uIj09dHlwZW9mIEQmJkQoKSwib25TdWJtaXQiPT1hLnNldHRpbmdzLmNvb2tpZUNyZWF0ZSYmYS5zZXRDb29raWUoKSxGJiYiaGlkZGVuIiE9Yy5jc3MoInZpc2liaWxpdHkiKSYmYS5jbG9zZSgiQ09OU0VOVCIpLGEuc2V0dGluZ3MubWFpbnBvcHVwJiYKKGVtYWlsSGFuZGxlci5tYWluUHJvbW89ITApLG4\/bi5zaG93U3VjY2VzcygpOjA8JCgiZm9ybSMiK2MuYXR0cigiaWQiKSsiX2NvbmZpcm0iKS5sZW5ndGgmJiQoImZvcm0jIitjLmF0dHIoImlkIikrIl9jb25maXJtIikudHJpZ2dlcigic3VibWl0Iik7ZWxzZXtufHwobj1nZXRNYWlsU2VudEhhbmRsZXIoKSk7dHJ5e24uc2hvd0ZhaWwoKX1jYXRjaChHKXt9fXNldFRpbWVvdXQoZW1haWxIYW5kbGVyLnJlc2V0Q2FsbGJhY2tzKCksMUUzKX07YS5zYXZlU2V0dGluZ3Moe3N1Ym1pdHRlZDohMH0pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQmVmb3JlU2VuZE1haWwmJjA9PWEuc2V0dGluZ3Mub25CZWZvcmVTZW5kTWFpbC5jYWxsKGMsYSkpcmV0dXJuITE7YS5zZXREZWZhdWx0QURGKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BREYmJihnPWEuc2V0dGluZ3Mub25BREYuY2FsbChjLGEpLCJvYmplY3QiPT10eXBlb2YgZyYmJC5leHRlbmQoYS5zZXR0aW5ncy5BREYsCmcpKTtnPSJtYWtlIG1vZGVsIHllYXIgc3RvY2tOdW1iZXIgdHJpbSB2aW4gcHJpY2UgY2FyaWQiLnNwbGl0KCIgIik7cT1hLnNldHRpbmdzLkFERjtmb3IodmFyIHk9MDt5PGcubGVuZ3RoO3krKyl7dmFyIHI9Z1t5XTtlbWFpbEhhbmRsZXJbcl09IiIhPWVtYWlsSGFuZGxlcltyXT9lbWFpbEhhbmRsZXJbcl06cVtyXT9xW3JdOmVtYWlsSGFuZGxlcltyXX1lbWFpbEhhbmRsZXIuYm9keT1hLmNsZWFuQmxhbmtWYXJpYWJsZXMoZW1haWxIYW5kbGVyLmJvZHkpO2Euc2hvd1B1cmNoYXNlSW50ZW50UG9wdXAoKXx8ZW1haWxIYW5kbGVyLnNlbmRNYWlsKGEuc2V0dGluZ3MuYnlwYXNzQ29uc2VudCk7cmV0dXJuITB9O2Euc2hvd1B1cmNoYXNlSW50ZW50UG9wdXA9ZnVuY3Rpb24oKXtpZihhLnNldHRpbmdzLnB1cmNoYXNlSW50ZW50UG9wdXApe3ZhciBiPSQoIiNpbnRlcnN0aXRpYWxWZWhpY2xlSW50ZW50Iik7aWYoMT5iLmxlbmd0aHx8bnVsbCE9Q29va2llcy5nZXQoInB1cmNoYXNlX2ludGVudCIpKXJldHVybiExOwpnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkludGVudGlvbnMgZCdhY2hhdCIsIlBvcHVwIHZ1cyIsYS5zZXR0aW5ncy5nb29nbGVUcmFja2luZy5sYWJlbCwxKTtjLmNzcyh7b3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtiLmZpbmQoImZvcm0iKS5vbigic3VibWl0IixmdW5jdGlvbigpe3ZhciBkPSQodGhpcyksZT1kLmZpbmQoImlucHV0Iik7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAifSkuc3RhcnQoKTtkLmZpbmQoImlucHV0Om5vdCg6aGlkZGVuKSwgdGV4dGFyZWEiKS5ub25IdG1sKCk7ZS5maWx0ZXIoIi5yZXF1aXJlZCIpLnJlcXVpcmUoKS5ub25IdG1sKCk7ZS5maWx0ZXIoIi5yZXFSYWRpbyIpLnJhZGlvT3B0aW9uQ2hvc2VuKCk7aWYoJC52YWxpZGl0eS5lbmQoKS52YWxpZCl7Yi50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKTt2YXIgaD17cHVyY2hhc2VfaW50ZW50OiEwfTtkLnNlcmlhbGl6ZUFycmF5KCkubWFwKGZ1bmN0aW9uKGwscCxnKXtoW2wubmFtZV09CmwudmFsdWV9KTtDb29raWVzLnNldCgicHVyY2hhc2VfaW50ZW50IixoLnB1cmNoYXNlX2ludGVudCwzMCwiLyIpO2dhVHJhY2soIl90cmFja0V2ZW50IiwiSW50ZW50aW9ucyBkJ2FjaGF0IiwiUmVwb25zZXMiLGgucHVyY2hhc2VfaW50ZW50LDEpO2VtYWlsSGFuZGxlci5zZW5kTWFpbChhLnNldHRpbmdzLmJ5cGFzc0NvbnNlbnQpfXJldHVybiExfSk7Yi5yZXZlYWwoe2Nsb3NlX29uX2JhY2tncm91bmRfY2xpY2s6ITEsZGlzbWlzc19tb2RhbF9jbGFzczoiX19OVUxMX18ifSk7cmV0dXJuITB9cmV0dXJuITF9O2EuZ2xvYmFsUmVwbGFjZW1lbnRzPWZ1bmN0aW9uKCl7dmFyIGI9W107JCgiaW5wdXRbdHlwZT1oaWRkZW5dIikuZWFjaChmdW5jdGlvbigpe3ZhciBnPSQodGhpcykuYXR0cigibmFtZSIpO2c9InVuZGVmaW5lZCIhPXR5cGVvZiBnP2c6JCh0aGlzKS5hdHRyKCJpZCIpO2lmKCFnKXJldHVybiEwO3ZhciB0PSExOyJlbWFpbGJ1aWxkYW5kcHJpY2UiPT1nLnRvTG93ZXJDYXNlKCkmJgoiIj09JCh0aGlzKS52YWwoKS5yZXBsYWNlKC8gL2csIiIpJiYodD0hMCk7dHx8KCJicmFuZCI9PWcudG9Mb3dlckNhc2UoKSYmYi5wdXNoKHtuYW1lOiJtYWtlIix2YWx1ZTokKHRoaXMpLnZhbCgpfSksYi5wdXNoKHtuYW1lOmcsdmFsdWU6JCh0aGlzKS52YWwoKX0pKX0pO3ZhciBkPSIiO2lmKDA8JCgiI2xhc3R2aWV3ZWRtYWtlIikubGVuZ3RoJiYwPCQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpLmxlbmd0aCl7dmFyIGU9JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpO2Q9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCk7dmFyIGg9JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpLGw9JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKCkscD0kKCIjbGFzdHZpZXdlZHRyaW0iKS52YWwoKXx8IiI7ZD1kKyIgIitoKyIgIitsKyhwLmxlbmd0aD8iICIrcDoiIik7ZCs9MDxlLmxlbmd0aD8iIChTdG9jayMgIitlKyIpIjoiIn1iLnB1c2goe25hbWU6IkxBU1RWRUhJQ0xFVklFV0VEIiwKdmFsdWU6ZH0pO3JldHVybiBifTthLmNsZWFuQmxhbmtWYXJpYWJsZXM9ZnVuY3Rpb24oYil7dmFyIGQ9Yi5yZXBsYWNlKC97XCRRVUVTVElPTlN9L2csIiIpLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMTUFLRX0vZywiIikucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZywiIikucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLCIiKS5yZXBsYWNlKC97XCRQQVlNRU5UfS9nLCIiKS5yZXBsYWNlKC97XCRQQVlNRU5UVEVSTX0vZywiIikucmVwbGFjZSgve1wkT0ZGRVJ9L2csIiIpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLCIiKS5yZXBsYWNlKC97XCRDT0xPUn0vZywiIikucmVwbGFjZSgve1wkRk5BTUV9L2csIiIpLnJlcGxhY2UoL3tcJExOQU1FfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTH0vZywiIikucmVwbGFjZSgve1wkVVNFUlBIT05FfS9nLCIiKTttYWlsUGFnZSYmYi5yZXBsYWNlKC97XCRFTUFJTEJVSUxEQU5EUFJJQ0V9L2csCm1haWxQYWdlLmJhbmRwTGluaygpKTtyZXR1cm4gZH07YS5jYW5jZWw9ZnVuY3Rpb24oKXthLmNsb3NlKCJDQU5DRUwiKX07YS5vcGVuPWZ1bmN0aW9uKGIpe2lmKDE9PWMuZGF0YSgib3BlbiIpKXJldHVybiExOyJvYmplY3QiPT10eXBlb2YgYiYmLTEhPSJjbGljayB0YXAiLmluZGV4T2YoYi50eXBlLnRvTG93ZXJDYXNlKCkpJiYoaz0iY2xpY2siKTtpZighaXNOYU4oYikpcmV0dXJuIHNldFRpbWVvdXQoYS5vcGVuLDFFMypiKTtpZighYS5pc0NvbnRlbnRMb2FkZWQoKSlyZXR1cm4gYS5sb2FkKGEub3Blbik7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93Lm5ld1ZEUFZpZGVvSXNQbGF5aW5nJiYxPT13aW5kb3cubmV3VkRQVmlkZW9Jc1BsYXlpbmcmJiJjbGljayIhPWt8fGEuaXNBY3RpdmUoKSlyZXR1cm4gYS5vcGVuKDUpO2Eub25PcGVuKCk7cmV0dXJuIGF9O2EuZXhlY09wZW49ZnVuY3Rpb24oKXtudWxsPT1Db29raWVzLmdldCgicG9wdXBTaG93bkV4ZWMiKSYmKENvb2tpZXMuc2V0KCJwb3B1cFNob3duRXhlYyIsCiIxIixudWxsLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSksYS5vcGVuKDApKX07YS5pbml0Q291bnRkb3duPWZ1bmN0aW9uKCl7dHJ5e3ZhciBiPW5ldyBEYXRlKDFFMyphLnNldHRpbmdzLmNvdW50ZG93bik7aWYoMDxjLmZpbmQoIi5jb3VudGRvd24iKS5sZW5ndGgpe3ZhciBkPWMuZmluZCgiLmNvdW50ZG93biIpLGU9bmV3IERhdGUsaD1iLmdldFRpbWUoKS1lLmdldFRpbWUoKTtpZigwPGgpe3ZhciBsPVtNYXRoLmZsb29yKGgvODY0RTUpLE1hdGguZmxvb3IoaCU4NjRFNS8zNkU1KSxNYXRoLmZsb29yKGglODY0RTUlMzZFNS82RTQpLE1hdGguZmxvb3IoaCU4NjRFNSUzNkU1JTZFNC8xRTMpXTtmb3IoYj0wO2I8bC5sZW5ndGg7YisrKWxbYl09OTxsW2JdP2xbYl0udG9TdHJpbmcoKToiMCIrbFtiXTt2YXIgcD1sLmpvaW4oIjoiKTtkLmNvdW50ZG93bih7c3RhcnRUaW1lOnAsaW1hZ2U6Ii9pbWFnZXMvZGlnaXRzX3NtYWxsLnBuZyIsZGlnaXRXaWR0aDoyOSxkaWdpdEhlaWdodDo0M30pfWVsc2UgZC5oaWRlKCl9fWNhdGNoKGcpeyJ1bmRlZmluZWQiIT09CnR5cGVvZiBkZWJ1ZyYmKGRlYnVnKGcpLGRlYnVnKCJJbnZhbGlkIGRhdGUgIixhLnNldHRpbmdzLmNvdW50ZG93bikpfX07YS5jbG9zZT1mdW5jdGlvbihiKXtpZigiQ0FOQ0VMIj09YiYmImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVDYW5jZWwpe3ZhciBkPWEuc2V0dGluZ3Mub25CZWZvcmVDYW5jZWwuY2FsbChjLGEpO2lmKDA9PWQpcmV0dXJuITF9aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVDbG9zZSYmKGQ9YS5zZXR0aW5ncy5vbkJlZm9yZUNsb3NlLmNhbGwoYyxhLGIpLDA9PWQpKXJldHVybiExO2MudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9O2EuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gcG9wdXBpemVyQWN0aXZlKCl9O2Euc2V0Q29va2llPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lLCIxIixhLnNldHRpbmdzLmNvb2tpZUR1cmF0aW9uLCIvIik7dmFyIGI9YS5zZXR0aW5ncy5jb29raWVOYW1lLnRvTG93ZXJDYXNlKCk7CmlmKCJyZWJhdGVzaG93biI9PWJ8fCJyZWJhdGVvdGhlcnNob3duIj09YiYmInVzZWQiPT0kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpKWI9bmV3IERhdGUsYi5zZXRUaW1lKGIuZ2V0VGltZSgpKzE4RTQpLENvb2tpZXMuc2V0KCJ1c2VkU2xpZGVyUG9wdXBEaXNwbGF5ZWQiLCIxIixiLCIvIil9O2Euc2F2ZVNldHRpbmdzPWZ1bmN0aW9uKGIpe2I9InVuZGVmaW5lZCI9PXR5cGVvZiBiP3t9OmI7Yj0ib2JqZWN0IiE9dHlwZW9mIGI\/e3VzZXJEZWZpbmVkTm9uT2JqZWN0OmJ9OmI7Yy5kYXRhKCJwb3B1cFNldHRpbmdzIiwkLmV4dGVuZCghMCxhLnNldHRpbmdzLGIpKX07YS5zZXREZWZhdWx0QURGPWZ1bmN0aW9uKCl7dmFyIGI9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLGQ9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSxlPSQoIiNwb3B1cHllYXIiKS52YWwoKTswPCQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoKS5sZW5ndGgmJjA8JCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbCgpLmxlbmd0aCYmCjA8JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCkubGVuZ3RoJiYoYj0kKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKCksZD0kKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCksZT0kKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoKSk7YS5zZXR0aW5ncy5BREY9e21ha2U6Yixtb2RlbDpkLHllYXI6ZSxzdG9ja051bWJlcjokKCIjcG9wdXBzdG9ja251bWJlciIpLnZhbCgpfX07YS5sb2dFdmVudD1mdW5jdGlvbihiKXt2YXIgZD1hLnNldHRpbmdzLmZvcm07ZD1kLm9mZmVydHlwZT9kLm9mZmVydHlwZToiRU1BSUxJRF8iK2QuZW1haWxpZDtpZighYilyZXR1cm4hMTskKGEudGFyZ2V0KS50cmlnZ2VyKGIpO2lmKCJwb3B1cC5sZWFkX3NlbnQiPT1iKXt2YXIgZT1rLnJlcGxhY2UoLyheW2Etel17MX0pL2csZnVuY3Rpb24obCl7cmV0dXJuIGwudG9VcHBlckNhc2UoKX0pLGg9ZDJjbWVkaWEucGFnZURlcGFydG1lbnQoKTtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiUG9wdXAtbGVhZHMiLGUsaCwKMSl9InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsYixkLGEpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYixkKSk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGQpfTthLmlzQ29udGVudExvYWRlZD1mdW5jdGlvbigpe2lmKCFhLnRhcmdldFswXS5oYXNBdHRyaWJ1dGUoImRhdGEtbGF6eWxvYWRpZCIpKXJldHVybiEwO3ZhciBiPTA9PT1hLnRhcmdldC5odG1sKCkudHJpbSgpLmxlbmd0aCxkPWEuc2V0dGluZ3MuY29udGVudExvYWRlZHx8ITE7cmV0dXJuIWImJmR9O2EubG9hZD1mdW5jdGlvbihiKXthLmlzQ29udGVudExvYWRlZCgpPyhhLnNldHRpbmdzLmNvbnRlbnRMb2FkZWQ9ITAsYigpKToKJC5hamF4KHt0eXBlOiJHRVQiLGNhY2hlOiEwLHVybDooIkVOR0xJU0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UG9wdXBDb250ZW50IixkYXRhOnt3c3dpZHRoOiIwIixfOmEuc2V0dGluZ3MuaWRlbnQsaWQ6YS50YXJnZXQuZGF0YSgibGF6eWxvYWRpZCIpLG1ha2U6JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCl8fCIiLG1vZGVsOiQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKXx8IiIseWVhcjokKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKXx8IiIsdHJpbTokKCIjbGFzdHZpZXdlZHRyaW0iKS52YWwoKXx8IiIsc3RvY2tOdW1iZXI6JCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpfHwiIix2ZWhpY2xlSWQ6JCgiI3RvcGNhcmlkIikudmFsKCl8fDB9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7YS50YXJnZXQuaHRtbChkKTthLnNldHRpbmdzLmNvbnRlbnRMb2FkZWQ9ITA7ImZ1bmN0aW9uIj09PQp0eXBlb2YgYWRkTm9UcmFuc2xhdGVFbWFpbERlZiYmYWRkTm9UcmFuc2xhdGVFbWFpbERlZigpO2IoKX19KX07YS5jcmVhdGVDb25maXJtRm9ybT1mdW5jdGlvbigpe3ZhciBiPWEudGFyZ2V0LmF0dHIoImlkIikrIl9jb25maXJtIjsxPiQoIiNjb25maXJtX2Zvcm1zIikubGVuZ3RoJiYkKCJib2R5IikuYXBwZW5kKCQoIjxkaXY+PC9kaXY+IikuYXR0cigiaWQiLCJjb25maXJtX2Zvcm1zIikpO2lmKDE+JCgiIyIrYikubGVuZ3RoJiZhLnNldHRpbmdzLmNvbmZpcm1Gb3JtJiYwIT09YS5zZXR0aW5ncy5jb25maXJtRm9ybS5sZW5ndGgpe2I9JCgiPGZvcm0+PC9mb3JtPiIpLmF0dHIoImlkIixiKS5hdHRyKCJtZXRob2QiLCJQT1NUIikuYXR0cigiYWN0aW9uIiwiL2NvbmZpcm1hdGlvbi5odG1sIikuYXR0cigidGFyZ2V0IiwiaWZyYW1lZ3RyYWNrIik7dmFyIGQ9JCgiI2F1dG9hdWJhaW5lX3BvcHVwIik7ZD1be25hbWU6Imd0YWdfY29udmVyc2lvbiIsdmFsdWU6Imd0YWcifSx7bmFtZToibGVhZF9kZXBhcnRtZW50IiwKdmFsdWU6IiJ9LHtuYW1lOiJsZWFkVHlwZSIsdmFsdWU6IiJ9LHtuYW1lOiJwYWdlSUQiLHZhbHVlOiIifSx7bmFtZToiY3VycmVudFVSTCIsdmFsdWU6IiJ9LHtuYW1lOiJidXR0b25Qb3NpdGlvbiIsdmFsdWU6IiJ9LHtuYW1lOiJkZWFsZXJOYW1lIix2YWx1ZToiIn0se25hbWU6ImlzRnVsbFdpZHRoIix2YWx1ZToiIn0se25hbWU6ImlzTW9iaWxlTmV3VkRQIix2YWx1ZToiIn0se25hbWU6InRlc3Rtb2RlIix2YWx1ZToiMCIsY2xhc3M6InRlc3Rtb2RlIn0se25hbWU6ImZyb21BdXRvQXViYWluZSIsdmFsdWU6MDxkLmxlbmd0aCYmImZhbHNlIiE9ZC52YWwoKX1dO1tdLnB1c2guYXBwbHkoZCxhLnNldHRpbmdzLmNvbmZpcm1Gb3JtKTtmb3IodmFyIGU9MDtlPGQubGVuZ3RoO2UrKykkKCI8aW5wdXQgLz4iKS5hdHRyKCJ0eXBlIiwiaGlkZGVuIikuYXR0cihkW2VdKS5hcHBlbmRUbyhiKTskKCIjY29uZmlybV9mb3JtcyIpLmFwcGVuZChiKTtiLm9uKCJzdWJtaXQiLG9uQ29uZmlybVN1Ym1pdCl9MT4KJCgiI2d0cmFja0ZyYW1lIikubGVuZ3RoJiYkKCI8aWZyYW1lPjwvaWZyYW1lPiIpLmF0dHIoe3dpZHRoOjEsaGVpZ2h0OjEsZnJhbWVCb3JkZXI6MCxpZDoiZ3RyYWNrRnJhbWUiLG5hbWU6ImlmcmFtZWd0cmFjayIsc3R5bGU6IndpZHRoOiAxcHg7IGhlaWdodDogMXB4OyJ9KS5hcHBlbmRUbygiI2NvbmZpcm1fZm9ybXMiKX07cmV0dXJuIGF9OwpqUXVlcnkoZnVuY3Rpb24oYyl7dmFyIG09YygiI3NpdGVjb21waWxlaWQiKS5sZW5ndGg\/YygiI3NpdGVjb21waWxlaWQiKS52YWwoKTpNYXRoLnJvdW5kKDFFNypNYXRoLnJhbmRvbSgpKS50b1N0cmluZygxNik7Yy5mbi5wb3B1cGl6ZT1mdW5jdGlvbihhKXthPWE\/YTp7fTt2YXIgaz17cmV2ZWFsOnthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSxmb3JtOntlbWFpbGlkOjAsb2ZmZXJ0eXBlOjAsbmFtZTowLHNlbmRUbzowLHNlbmRUb0FERjowLE9LQnV0dG9uQ2xhc3M6InN1Ym1pdEJ0biIsQ2FuY2VsQnV0dG9uQ2xhc3M6ImNhbmNlbEJ0biIsc2hvd0VtYWlsQ29uZmlybWF0aW9uOiExfSxBREY6e21ha2U6IiIsbW9kZWw6IiIseWVhcjoiIixzdG9ja051bWJlcjoiIn0saWRlbnQ6bSxlbmRQb3B1cFF1ZXVlOiExLHByaW9yaXR5OjEsYW5pbWF0aW9uOiExLApub3RyYW5zZm9ybTohMSxmaWxsZmxhZzohMSxzdWJtaXR0ZWQ6ITEsc2hvd29ubG9hZDohMSxjb29raWVOYW1lOiExLGNvb2tpZUR1cmF0aW9uOjYwLGNsb3NlT25TdWJtaXQ6ITAsYWRkZWRDbGFzc2VzOiIifTtpZigxPT10aGlzLmxlbmd0aCl7dmFyIGI9dGhpcy5kYXRhKCJwb3B1cFNldHRpbmdzIik\/dGhpcy5kYXRhKCJwb3B1cFNldHRpbmdzIik6e307c2V0dGluZ3M9e307Yy5leHRlbmQoITAsc2V0dGluZ3MsayxiLGEpOyFzZXR0aW5ncy5jb29raWVOYW1lJiYwPHRoaXMuYXR0cigiaWQiKS5sZW5ndGgmJihzZXR0aW5ncy5jb29raWVOYW1lPSJjcHBfIit0aGlzLmF0dHIoImlkIikpOyFzZXR0aW5ncy5uYW1lJiYwPHRoaXMuYXR0cigiaWQiKS5sZW5ndGgmJihzZXR0aW5ncy5uYW1lPXRoaXMuYXR0cigiaWQiKS5yZXBsYWNlKC9Db250YWluZXJcYi8sIiIpKTt0aGlzLmRhdGEoInBvcHVwU2V0dGluZ3MiLHNldHRpbmdzKTthPW5ldyBwb3B1cGl6ZXIodGhpcyxzZXR0aW5ncyk7CnNldHRpbmdzLmluaXRpYWxpemVkfHwoYS5pbml0KCkscG9wdXBTdXBlcnZpc29yLnBvcHVwcy5wdXNoKGEpKTtyZXR1cm4gYX1wb3B1cHM9W107dGhpcy5lYWNoKGZ1bmN0aW9uKCl7cG9wdXBzLnB1c2goYyh0aGlzKS5wb3B1cGl6ZSgpKX0pO3JldHVybiBwb3B1cHN9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYT1udWxsO2Mod2luZG93KS5vbigidG91Y2htb3ZlLCBvbnNjcm9sbCwgc2Nyb2xsIG1vdXNld2hlZWwgcmVzaXplIixmdW5jdGlvbihrKXtjbGVhclRpbWVvdXQoYSk7YT1zZXRUaW1lb3V0KHBvcHVwU3VwZXJ2aXNvci5yZXBvc2l0aW9uLDFFMyl9KX0sMUUzKX0pOwovKiogL20vanMvdnRpcC5qcyAqKi8KdmFyIF9fX2QyY192dGlwanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDo0NyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfdnRpcGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzU6MzkiOyJ1c2Ugc3RyaWN0IjsKdGhpcy52dGlwPWZ1bmN0aW9uKCl7dGhpcy54T2Zmc2V0PS0xMDt0aGlzLnlPZmZzZXQ9MTA7JCgiLnZ0aXAiKS5vZmYoKS5vbigiaG92ZXIiLGZ1bmN0aW9uKGEpe3RoaXMudD10aGlzLnRpdGxlO3RoaXMudGl0bGU9IiI7dGhpcy50b3A9YS5wYWdlWSt5T2Zmc2V0O3RoaXMubGVmdD1hLnBhZ2VYK3hPZmZzZXQ7JCgiYm9keSIpLmFwcGVuZCgnPHAgaWQ9InZ0aXAiIHN0eWxlPSJ6LWluZGV4OjEwMDAwMDsiPjxpbWcgaWQ9InZ0aXBBcnJvdyIgLz4nK3RoaXMudCsiPC9wPiIpOyQoInAjdnRpcCAjdnRpcEFycm93IikuYXR0cigic3JjIiwiL2ltYWdlcy9zY3JhdGNoL3Z0aXBfYXJyb3cucG5nIik7JCgicCN2dGlwIikuY3NzKCJ0b3AiLHRoaXMudG9wKyJweCIpLmNzcygibGVmdCIsdGhpcy5sZWZ0KyJweCIpLmZhZGVJbigic2xvdyIpfSxmdW5jdGlvbigpe3RoaXMudGl0bGU9dGhpcy50OyQoInAjdnRpcCIpLmZhZGVPdXQoInNsb3ciKS5yZW1vdmUoKX0pLm9uKCJtb3VzZW1vdmUiLApmdW5jdGlvbihhKXt0aGlzLnRvcD1hLnBhZ2VZK3lPZmZzZXQ7dGhpcy5sZWZ0PWEucGFnZVgreE9mZnNldDskKCJwI3Z0aXAiKS5jc3MoInRvcCIsdGhpcy50b3ArInB4IikuY3NzKCJsZWZ0Iix0aGlzLmxlZnQrInB4Iil9KX07alF1ZXJ5KGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbihhKXt2dGlwKCl9KTsKLyoqIC9tL2pzL3dTY3JhdGNoUGFkLmpzICoqLwp2YXIgX19fZDJjX3dTY3JhdGNoUGFkanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMzozNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfd1NjcmF0Y2hQYWRqc19jX29uPSIyMDI0LTA0LTEyIDE4OjMwOjA2IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihkKXtmdW5jdGlvbiBoKGIsYSl7dGhpcy5zcD1udWxsO3RoaXMuc2V0dGluZ3M9Yjt0aGlzLiRlbGVtPWE7dGhpcy5lbmFibGVkPSEwO3RoaXMuc2NyYXRjaD0hMTt0aGlzLmN0eD10aGlzLmNhbnZhcz1udWxsO3JldHVybiB0aGlzfWQuZm4ud1NjcmF0Y2hQYWQ9ZnVuY3Rpb24oYixhKXtpZigiZW5hYmxlIj09YilkKHRoaXMpLmRhdGEoIl93U2NyYXRjaFBhZCIpLmVuYWJsZSgpO2Vsc2V7aWYoIm9iamVjdCI9PT10eXBlb2YgYilhPWI7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGIpe3ZhciBjPVtdLGY9dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ZCh0aGlzKS5kYXRhKCJfd1NjcmF0Y2hQYWQiKTtlJiYoInJlc2V0Ij09PWI\/ZS5yZXNldCgpOiJjbGVhciI9PT1iP2UuY2xlYXIoKToiZW5hYmxlZCI9PT1iP2UuZW5hYmxlZD0hMD09PWE6dm9pZCAwIT09ZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3NbYl0mJih2b2lkIDAhPT1hP2Uuc2V0dGluZ3NbYl09CmE6Yy5wdXNoKGUuc2V0dGluZ3NbYl0pKSl9KTtyZXR1cm4gMT09PWMubGVuZ3RoP2NbMF06MDxjLmxlbmd0aD9jOmZ9YT1kLmV4dGVuZCh7fSxkLmZuLndTY3JhdGNoUGFkLmRlZmF1bHRTZXR0aW5ncyxhfHx7fSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBlPWQodGhpcyksZz1qUXVlcnkuZXh0ZW5kKCEwLHt9LGEpO2lmKCFkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKS5nZXRDb250ZXh0KXt2YXIgaz0iQnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IEhUTUw1IGNhbnZhcywgcGxlYXNlIHVwZ3JhZGUgdG8gYSBtb3JlIG1vZGVybiBicm93c2VyLiI7ZCgiI3RleHREb2VzTm90U3VwcG9ydEhUTUw1IikubGVuZ3RoJiYoaz1kKCIjdGV4dERvZXNOb3RTdXBwb3J0SFRNTDUiKS52YWwoKSk7ZS5jc3MoInBhZGRpbmctdG9wIiwiNjBweCIpO2UuY3NzKCJoZWlnaHQiLCI1NXB4Iik7ZS5odG1sKGspOyJ1bmRlZmluZWQiIT10eXBlb2YgZy5pZFRvQWRkJiZkKCIjYmxvY2thZ2UiKwpnLmlkVG9BZGQpLmxlbmd0aCYmZCgiI2Jsb2NrYWdlIitnLmlkVG9BZGQpLmNzcygidG9wIixwYXJzZUludChkKCIjYmxvY2thZ2UiK2cuaWRUb0FkZCkuY3NzKCJ0b3AiKSkrMzArInB4Iik7cmV0dXJuITF9Zz1uZXcgaChnLGUpO2UuYXBwZW5kKGcuZ2VuZXJhdGUoKSk7Zy5waXhlbHM9Zy5jYW52YXMud2lkdGgqZy5jYW52YXMuaGVpZ2h0O2UuZGF0YSgiX3dTY3JhdGNoUGFkIixnKTtnLmluaXQoKX0pfX07ZC5mbi53U2NyYXRjaFBhZC5kZWZhdWx0U2V0dGluZ3M9e3dpZHRoOjYwMCxoZWlnaHQ6MTE1LGltYWdlOiIvaW1hZ2VzL3NjcmF0Y2gvc2xpZGUyLnBuZyIsaW1hZ2UyOiIvaW1hZ2VzL3BvcHVwcy9zdHlsZTIvc2NyYXRjaC5wbmciLGltYWdlRGlzYWJsZWQ6Ii9pbWFnZXMvcG9wdXBzL3N0eWxlMi9zY3JhdGNoX2Rpc2FibGVkLnBuZyIsY29sb3I6IiMzMzY2OTkiLG92ZXJsYXk6Im5vbmUiLHNpemU6MzAscmVhbHRpbWVQZXJjZW50OiExLHNjcmF0Y2hEb3duOm51bGwsc2NyYXRjaFVwOm51bGwsCnNjcmF0Y2hNb3ZlOm51bGwsY3Vyc29yOm51bGwsaWRUb0FkZDoiIixiYWNrZ3JvdW5kQ29sb3I6IiMwMTBhMjgiLGVuYWJsZWQ6ITB9O2gucHJvdG90eXBlPXtnZW5lcmF0ZTpmdW5jdGlvbigpe3RoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO3RoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIik7dGhpcy5zcD1kKCI8ZGl2PjwvZGl2PiIpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLmFwcGVuZChkKHRoaXMuY2FudmFzKS5hdHRyKCJ3aWR0aCIsdGhpcy5zZXR0aW5ncy53aWR0aCsicHgiKS5hdHRyKCJoZWlnaHQiLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KyJweCIpLmF0dHIoInN0eWxlIiwicG9zaXRpb246YWJzb2x1dGU7bGVmdDotMnB4O3RvcDotMXB4O3otaW5kZXg6MTsiKSk7dGhpcy5zZXR0aW5ncy5lbmFibGVkJiZ0aGlzLmVuYWJsZSgpO3JldHVybiB0aGlzLnNwfSxlbmFibGU6ZnVuY3Rpb24oKXt0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlMiwKITApO3RoaXMuYmluZEJyb3dzZXIoKTt0aGlzLmJpbmRNb2JpbGUodGhpcy5zcCl9LGJpbmRCcm93c2VyOmZ1bmN0aW9uKGIpe3ZhciBhPXRoaXM7ZCh0aGlzLmNhbnZhcykub24oIm1vdXNlZG93biIsZnVuY3Rpb24oYyl7aWYoIWEuZW5hYmxlZClyZXR1cm4hMDtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLmNhbnZhc19vZmZzZXQ9ZChhLmNhbnZhcykub2Zmc2V0KCk7YS5zY3JhdGNoPSEwO2Euc2NyYXRjaEZ1bmMoYyxhLCJEb3duIil9KS5vbigibW91c2Vtb3ZlIixmdW5jdGlvbihjKXtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLnNjcmF0Y2gmJmEuc2NyYXRjaEZ1bmMoYyxhLCJNb3ZlIil9KS5vbigibW91c2V1cCIsZnVuY3Rpb24oYyl7Yy5wcmV2ZW50RGVmYXVsdCgpO2Muc3RvcFByb3BhZ2F0aW9uKCk7YS5zY3JhdGNoJiYoYS5zY3JhdGNoPSExLGEuc2NyYXRjaEZ1bmMoYyxhLCJVcCIpKX0pfSxiaW5kTW9iaWxlOmZ1bmN0aW9uKGIpe2Iub24oInRvdWNoc3RhcnQgdG91Y2htb3ZlIHRvdWNoZW5kIHRvdWNoY2FuY2VsIiwKZnVuY3Rpb24oKXt2YXIgYT1ldmVudC5jaGFuZ2VkVG91Y2hlc1swXTtzd2l0Y2goZXZlbnQudHlwZSl7Y2FzZSAidG91Y2hzdGFydCI6dmFyIGM9Im1vdXNlZG93biI7YnJlYWs7Y2FzZSAidG91Y2htb3ZlIjpjPSJtb3VzZW1vdmUiO2JyZWFrO2Nhc2UgInRvdWNoZW5kIjpjPSJtb3VzZXVwIjticmVhaztkZWZhdWx0OnJldHVybn12YXIgZj1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudCIpO2YuaW5pdE1vdXNlRXZlbnQoYywhMCwhMCx3aW5kb3csMSxhLnNjcmVlblgsYS5zY3JlZW5ZLGEuY2xpZW50WCxhLmNsaWVudFksITEsITEsITEsITEsMCxudWxsKTthLnRhcmdldC5kaXNwYXRjaEV2ZW50KGYpO2V2ZW50LnByZXZlbnREZWZhdWx0KCl9KX0saW5pdDpmdW5jdGlvbigpe3RoaXMuc3AuY3NzKCJ3aWR0aCIsdGhpcy5zZXR0aW5ncy53aWR0aC0yKTt0aGlzLnNwLmNzcygiaGVpZ2h0Iix0aGlzLnNldHRpbmdzLmhlaWdodC0yKTt0aGlzLnNwLmNzcygiY3Vyc29yIix0aGlzLnNldHRpbmdzLmN1cnNvcj8KJ3VybCgiJyt0aGlzLnNldHRpbmdzLmN1cnNvcisnIiksIGRlZmF1bHQnOiJkZWZhdWx0Iik7ZCh0aGlzLmNhbnZhcykuY3NzKHtjdXJzb3I6dGhpcy5zZXR0aW5ncy5jdXJzb3I\/J3VybCgiJyt0aGlzLnNldHRpbmdzLmN1cnNvcisnIiksIGRlZmF1bHQnOiJkZWZhdWx0In0pO3RoaXMuY2FudmFzLndpZHRoPXRoaXMuc2V0dGluZ3Mud2lkdGg7dGhpcy5jYW52YXMuaGVpZ2h0PXRoaXMuc2V0dGluZ3MuaGVpZ2h0O3RoaXMucGl4ZWxzPXRoaXMuY2FudmFzLndpZHRoKnRoaXMuY2FudmFzLmhlaWdodDt0aGlzLnNldHRpbmdzLmltYWdlMj8odGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZTIpLHRoaXMuc2V0dGluZ3MuZW5hYmxlZHx8dGhpcy5kcmF3SW1hZ2UodGhpcy5zZXR0aW5ncy5pbWFnZURpc2FibGVkLCEwKSk6KCJub25lIiE9dGhpcy5zZXR0aW5ncy5vdmVybGF5Pyh0aGlzLnNldHRpbmdzLmltYWdlJiZ0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlKSwKdGhpcy5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPXRoaXMuc2V0dGluZ3Mub3ZlcmxheSk6dGhpcy5zZXRCZ0ltYWdlKCksdGhpcy5jdHguZmlsbFN0eWxlPXRoaXMuc2V0dGluZ3MuY29sb3IsdGhpcy5jdHguYmVnaW5QYXRoKCksdGhpcy5jdHgucmVjdCgwLDAsdGhpcy5zZXR0aW5ncy53aWR0aCx0aGlzLnNldHRpbmdzLmhlaWdodCksdGhpcy5jdHguZmlsbCgpKX0scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249InNvdXJjZS1vdmVyIjt0aGlzLmluaXQoKX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuc2V0dGluZ3Mud2lkdGgsdGhpcy5zZXR0aW5ncy5oZWlnaHQpfSxzZXRCZ0ltYWdlOmZ1bmN0aW9uKCl7dGhpcy5zZXR0aW5ncy5pbWFnZSYmKHRoaXMuc3AuYWRkQ2xhc3MoInNjcmF0Y2hEaXZUZXh0IiksdGhpcy5zcC5jc3MoImJhY2tncm91bmQtY29sb3IiLHRoaXMuc2V0dGluZ3MuYmFja2dyb3VuZENvbG9yKSwKdGhpcy5zcC5hcHBlbmQoIjxkaXYgaWQ9J3NjcmF0Y2hEaXZUZXh0Iit0aGlzLnNldHRpbmdzLmlkVG9BZGQrIicgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTozMHB4O2NvbG9yOiNmZmY7bWFyZ2luLWxlZnQ6MHB4O3BhZGRpbmctbGVmdDoxMHB4O3BhZGRpbmctcmlnaHQ6MTBweDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjBweDt6LWluZGV4OjA7Jz4iK2QoIiNzY3JhdGNoSW5wdXRUZXh0Iit0aGlzLnNldHRpbmdzLmlkVG9BZGQpLnZhbCgpKyI8L2Rpdj4iKSl9LGRyYXdJbWFnZTpmdW5jdGlvbihiLGEpe3ZhciBjPXRoaXMsZj1uZXcgSW1hZ2U7Zi5zcmM9YjtkKGYpLm9uKCJsb2FkIixmdW5jdGlvbigpe2MuY3R4LmRyYXdJbWFnZShmLDAsMCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhJiZhfHxjLnNldEJnSW1hZ2UoKX0pfSxzY3JhdGNoRnVuYzpmdW5jdGlvbihiLGEsYyl7Yi5wYWdlWD1NYXRoLmZsb29yKGIucGFnZVgtYS5jYW52YXNfb2Zmc2V0LmxlZnQpO2IucGFnZVk9Ck1hdGguZmxvb3IoYi5wYWdlWS1hLmNhbnZhc19vZmZzZXQudG9wKTthWyJzY3JhdGNoIitjXShiLGEpOyh0aGlzLnNldHRpbmdzLnJlYWx0aW1lUGVyY2VudHx8IlVwIj09YykmJmEuc2V0dGluZ3NbInNjcmF0Y2giK2NdJiZhLnNldHRpbmdzWyJzY3JhdGNoIitjXS5hcHBseShhLFtiLGEuc2NyYXRjaFBlcmNlbnRhZ2UoYSldKX0sc2NyYXRjaFBlcmNlbnRhZ2U6ZnVuY3Rpb24oYil7Zm9yKHZhciBhPTAsYz1iLmN0eC5nZXRJbWFnZURhdGEoMCwwLGIuY2FudmFzLndpZHRoLGIuY2FudmFzLmhlaWdodCksZj0wLGU9Yy5kYXRhLmxlbmd0aDtmPGU7Zis9NCkwPT1jLmRhdGFbZl0mJjA9PWMuZGF0YVtmKzFdJiYwPT1jLmRhdGFbZisyXSYmMD09Yy5kYXRhW2YrM10mJmErKztyZXR1cm4gYS9iLnBpeGVscyoxMDB9LHNjcmF0Y2hEb3duOmZ1bmN0aW9uKGIsYSl7YS5jdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uPSJkZXN0aW5hdGlvbi1vdXQiO2EuY3R4LmxpbmVKb2luPSJyb3VuZCI7CmEuY3R4LmxpbmVDYXA9InJvdW5kIjthLmN0eC5zdHJva2VTdHlsZT1hLnNldHRpbmdzLmNvbG9yO2EuY3R4LmxpbmVXaWR0aD1hLnNldHRpbmdzLnNpemU7YS5jdHguYmVnaW5QYXRoKCk7YS5jdHguYXJjKGIucGFnZVgsYi5wYWdlWSxhLnNldHRpbmdzLnNpemUvMiwwLDIqTWF0aC5QSSwhMCk7YS5jdHguY2xvc2VQYXRoKCk7YS5jdHguZmlsbCgpO2EuY3R4LmJlZ2luUGF0aCgpO2EuY3R4Lm1vdmVUbyhiLnBhZ2VYLGIucGFnZVkpfSxzY3JhdGNoTW92ZTpmdW5jdGlvbihiLGEpe2EuY3R4LmxpbmVUbyhiLnBhZ2VYLGIucGFnZVkpO2EuY3R4LnN0cm9rZSgpfSxzY3JhdGNoVXA6ZnVuY3Rpb24oYixhKXthLmN0eC5jbG9zZVBhdGgoKX19fSkoalF1ZXJ5KTsKLyoqIC9tL2pzL3N3ZnN0b3JlLmpzICoqLwp2YXIgX19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMjoyMSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM3OjUzIjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMy0wMS0xMiAxMTozNToxOCI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDQ6NTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQyOjMxIjsidXNlIHN0cmljdCI7CihmdW5jdGlvbigpe2Z1bmN0aW9uIGcoYSl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhKXRocm93IlN3ZlN0b3JlIEVycm9yOiBGdW5jdGlvbnMgY2Fubm90IGJlIHVzZWQgYXMga2V5cyBvciB2YWx1ZXMuIjt9dmFyIGg9MCxtPS9bXmEtejAtOV9dL2dpO3dpbmRvdy5Td2ZTdG9yZT1mdW5jdGlvbihhKXtmdW5jdGlvbiBlKGQpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYik7Yi5pZD0iU3dmU3RvcmVfIithLm5hbWVzcGFjZSsiXyIraCsrO2R8fChiLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYi5zdHlsZS50b3A9Ii0yMDAwcHgiLGIuc3R5bGUubGVmdD0iLTIwMDBweCIpO3JldHVybiBifWE9YXx8e307dmFyIGY9e3N3Zl91cmw6InN0b3JhZ2Uuc3dmIixuYW1lc3BhY2U6InN3ZnN0b3JlIixwYXRoOm51bGwsZGVidWc6ITEsdGltZW91dDoxMCxvbnJlYWR5Om51bGwsb25lcnJvcjpudWxsfTtmb3IoYyBpbiBmKWYuaGFzT3duUHJvcGVydHkoYykmJgooYS5oYXNPd25Qcm9wZXJ0eShjKXx8KGFbY109ZltjXSkpO2EubmFtZXNwYWNlPWEubmFtZXNwYWNlLnJlcGxhY2UobSwiXyIpO2lmKHdpbmRvdy5Td2ZTdG9yZVthLm5hbWVzcGFjZV0pdGhyb3ciVGhlcmUgaXMgYWxyZWFkeSBhbiBpbnN0YW5jZSBvZiBTd2ZTdG9yZSB1c2luZyB0aGUgJyIrYS5uYW1lc3BhY2UrIicgbmFtZXNwYWNlLiBVc2UgdGhhdCBpbnN0YW5jZSBvciBzcGVjaWZ5IGFuIGFsdGVybmF0ZSBuYW1lc3BhY2UgaW4gdGhlIGNvbmZpZy4iO3RoaXMuY29uZmlnPWE7aWYoYS5kZWJ1Zyl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgY29uc29sZSl7dmFyIG49ZSghMCk7d2luZG93LmNvbnNvbGU9e2xvZzpmdW5jdGlvbihkKXt2YXIgYj1lKCEwKTtiLmlubmVySFRNTD1kO24uYXBwZW5kQ2hpbGQoYil9fX10aGlzLmxvZz1mdW5jdGlvbihkLGIsayl7Yj0ic3dmU3RvcmUiPT09Yj8ic3dmIjpiO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGNvbnNvbGVbZF0pY29uc29sZVtkXSgiU3dmU3RvcmUgLSAiKwphLm5hbWVzcGFjZSsiICgiK2IrIik6ICIrayk7ZWxzZSBjb25zb2xlLmxvZygiU3dmU3RvcmUgLSAiK2EubmFtZXNwYWNlKyI6ICIrZCsiICgiK2IrIik6ICIrayl9fWVsc2UgdGhpcy5sb2c9ZnVuY3Rpb24oKXt9O3RoaXMubG9nKCJpbmZvIiwianMiLCJJbml0aWFsaXppbmcuLi4iKTtTd2ZTdG9yZVthLm5hbWVzcGFjZV09dGhpcztmPWUoYS5kZWJ1Zyk7dmFyIGM9IlN3ZlN0b3JlXyIrYS5uYW1lc3BhY2UrIl8iK2grKyxsPSJsb2dmbj1Td2ZTdG9yZS4iK2EubmFtZXNwYWNlKyIubG9nJmFtcDtvbmxvYWQ9U3dmU3RvcmUuIithLm5hbWVzcGFjZSsiLm9ubG9hZCZhbXA7b25lcnJvcj1Td2ZTdG9yZS4iK2EubmFtZXNwYWNlKyIub25lcnJvciZhbXA7IisoYS5wYXRoPyJMU09QYXRoPSIrYS5wYXRoKyImYW1wOyI6IiIpKyJMU09OYW1lPSIrYS5uYW1lc3BhY2U7Zi5pbm5lckhUTUw9JzxvYmplY3QgaGVpZ2h0PSIxMDAiIHdpZHRoPSI1MDAiIGNvZGViYXNlPSJodHRwczovL2Rvd25sb2FkLm1hY3JvbWVkaWEuY29tL3B1Yi9zaG9ja3dhdmUvY2Ficy9mbGFzaC9zd2ZsYXNoLmNhYiIgaWQ9IicrCmMrJyIgY2xhc3NpZD0iY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwIj4gICAgPHBhcmFtIHZhbHVlPSInK2Euc3dmX3VybCsnIiBuYW1lPSJtb3ZpZSI+ICA8cGFyYW0gdmFsdWU9IicrbCsnIiBuYW1lPSJGbGFzaFZhcnMiPiAgIDxwYXJhbSB2YWx1ZT0iYWx3YXlzIiBuYW1lPSJhbGxvd1NjcmlwdEFjY2VzcyI+ICA8ZW1iZWQgaGVpZ2h0PSIzNzUiIGFsaWduPSJtaWRkbGUiIHdpZHRoPSI1MDAiIHBsdWdpbnNwYWdlPSJodHRwczovL3d3dy5tYWNyb21lZGlhLmNvbS9nby9nZXRmbGFzaHBsYXllciIgZmxhc2h2YXJzPSInK2wrJyIgdHlwZT0iYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giIGFsbG93c2NyaXB0YWNjZXNzPSJhbHdheXMiIHF1YWxpdHk9ImhpZ2giIGxvb3A9ImZhbHNlIiBwbGF5PSJ0cnVlIiBuYW1lPSInK2MrJyIgYmdjb2xvcj0iI2ZmZmZmZiIgc3JjPSInK2Euc3dmX3VybCsnIj48L29iamVjdD4nO3RoaXMuc3dmPWRvY3VtZW50W2NdfHwKd2luZG93W2NdO3RoaXMuX3RpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe1N3ZlN0b3JlW2EubmFtZXNwYWNlXS5sb2coImVycm9yIiwianMiLCJUaW1lb3V0IHJlYWNoZWQsIGFzc3VtaW5nICIrYS5zd2ZfdXJsKyIgZmFpbGVkIHRvIGxvYWQgYW5kIGZpcmluZyB0aGUgb25lcnJvciBjYWxsYmFjay4iKTtpZihhLm9uZXJyb3IpYS5vbmVycm9yKCl9LDFFMyphLnRpbWVvdXQpfTtTd2ZTdG9yZS5wcm90b3R5cGU9e3ZlcnNpb246IjEuOSIscmVhZHk6ITEsc2V0OmZ1bmN0aW9uKGEsZSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7ZyhlKTt0aGlzLnN3Zi5zZXQoYSxlKX0sZ2V0OmZ1bmN0aW9uKGEpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO3JldHVybiB0aGlzLnN3Zi5nZXQoYSl9LGdldEFsbDpmdW5jdGlvbigpe3RoaXMuX2NoZWNrUmVhZHkoKTt2YXIgYT10aGlzLnN3Zi5nZXRBbGwoKTthLl9fZmxhc2hCdWdGaXgmJmRlbGV0ZSBhLl9fZmxhc2hCdWdGaXg7cmV0dXJuIGF9LApjbGVhcjpmdW5jdGlvbihhKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTt0aGlzLnN3Zi5jbGVhcihhKX0sX2NoZWNrUmVhZHk6ZnVuY3Rpb24oKXtpZighdGhpcy5yZWFkeSl0aHJvdyJTd2ZTdG9yZSBpcyBub3QgeWV0IGZpbmlzaGVkIGluaXRpYWxpemluZy4gUGFzcyBhIGNvbmZpZy5vbnJlYWR5IGNhbGxiYWNrIG9yIHdhaXQgdW50aWwgdGhpcy5yZWFkeSBpcyB0cnVlIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGEgU3dmU3RvcmUgaW5zdGFuY2UuIjt9LG9ubG9hZDpmdW5jdGlvbigpe3ZhciBhPXRoaXM7c2V0VGltZW91dChmdW5jdGlvbigpe2NsZWFyVGltZW91dChhLl90aW1lb3V0KTthLnJlYWR5PSEwO2Euc2V0KCJfX2ZsYXNoQnVnRml4IiwiMSIpO2lmKGEuY29uZmlnLm9ucmVhZHkpYS5jb25maWcub25yZWFkeSgpfSwwKX0sb25lcnJvcjpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KTtpZih0aGlzLmNvbmZpZy5vbmVycm9yKXRoaXMuY29uZmlnLm9uZXJyb3IoKX19fSkoKTsKLyoqIC9tL2pzL2pxdWVyeS5jb3VudGRvd24uanMgKiovCnZhciBfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTozMiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNjoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIzLTAxLTEyIDExOjQwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NTA6MTAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMS0xMi0xNSAxMjo1MDozNSI7InVzZSBzdHJpY3QiOwpqUXVlcnkuZm4uY291bnRkb3duPWZ1bmN0aW9uKGgpe2lmKDE8dGhpcy5sZW5ndGgpcmV0dXJuICQodGhpcykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuY291bnRkb3duKGgpfSksdGhpcztpZih0aGlzLmRhdGEoImNvdW50aW5nIikpcmV0dXJuIHRoaXM7dGhpcy5kYXRhKCJjb3VudGluZyIsITApO3ZhciBhPXtzdGVwVGltZTo2MCxmb3JtYXQ6ImRkOmhoOm1tOnNzIixzdGFydFRpbWU6IjAxOjEyOjMyOjU1IixkaWdpdEltYWdlczo2LGRpZ2l0V2lkdGg6NTMsZGlnaXRIZWlnaHQ6NzcsdGltZXJFbmQ6ZnVuY3Rpb24oKXt9LGltYWdlOiJkaWdpdHMucG5nIn0sYz1bXSxmPWZ1bmN0aW9uKGIsZCl7cmV0dXJuIHZvaWQgMCE9PWQ\/Y1tiXS5jc3Moe21hcmdpblRvcDpkKyJweCJ9KTpwYXJzZUludChjW2JdLmNzcygibWFyZ2luVG9wIikucmVwbGFjZSgicHgiLCIiKSl9LGs9ZnVuY3Rpb24oYil7Y1tiXS5fZGlnaXRJbml0aWFsPS0oY1tiXS5fX21heCphLmRpZ2l0SGVpZ2h0KmEuZGlnaXRJbWFnZXMpOwpyZXR1cm4gZnVuY3Rpb24gZSgpe210b3A9ZihiKSthLmRpZ2l0SGVpZ2h0O2lmKG10b3A9PWEuZGlnaXRIZWlnaHQpaWYoZihiLGNbYl0uX2RpZ2l0SW5pdGlhbCksMDxiKWsoYi0xKSgpLDA8YiYmdm9pZCAwIT09Y1tiXS5fX2NvbmRtYXgmJmNbYi0xXS5fZGlnaXRJbml0aWFsPT1mKGItMSkmJmYoYiwtKGNbYl0uX19jb25kbWF4KmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcykpO2Vsc2V7Y2xlYXJJbnRlcnZhbChsKTtmb3IodmFyIGc9MDtnPGMubGVuZ3RoO2crKylmKGcsMCk7YS50aW1lckVuZCgpfWVsc2UgZihiLG10b3ApLDAhPWYoYikvYS5kaWdpdEhlaWdodCVhLmRpZ2l0SW1hZ2VzJiZzZXRUaW1lb3V0KGUsYS5zdGVwVGltZSksMD09bXRvcCYmKGNbYl0uX19pc21heD0hMCl9fTskLmV4dGVuZChhLGgpO3RoaXMuY3NzKHtoZWlnaHQ6YS5kaWdpdEhlaWdodCxvdmVyZmxvdzoiaGlkZGVuIn0pOyhmdW5jdGlvbihiKXtmb3IodmFyIGQ9MCxlPTA7ZTxhLnN0YXJ0VGltZS5sZW5ndGg7ZSsrKXtpZigwPD0KcGFyc2VJbnQoYS5zdGFydFRpbWVbZV0pKXtlbGVtPSQoJzxkaXYgaWQ9ImNudF8nK2UrJyIgY2xhc3M9ImNudERpZ2l0IiAvPicpLmNzcyh7aGVpZ2h0OmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcyoxMCxmbG9hdDoibGVmdCIsYmFja2dyb3VuZDoidXJsKCciK2EuaW1hZ2UrIicpIix3aWR0aDphLmRpZ2l0V2lkdGh9KTtjLnB1c2goZWxlbSk7ZihkLC0ocGFyc2VJbnQoYS5zdGFydFRpbWVbZV0pKmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcykpO2NbZF0uX19tYXg9OTtzd2l0Y2goYS5mb3JtYXRbZV0pe2Nhc2UgImgiOmNbZF0uX19tYXg9MD09ZCUyPzI6OTswPT1kJTImJihjW2RdLl9fY29uZG1heD00KTticmVhaztjYXNlICJkIjpjW2RdLl9fbWF4PTk7YnJlYWs7Y2FzZSAibSI6Y2FzZSAicyI6Y1tkXS5fX21heD0wPT1kJTI\/NTo5fSsrZH1lbHNlIGVsZW09JCgnPGRpdiBjbGFzcz0iY250U2VwYXJhdG9yIi8+JykuY3NzKHtmbG9hdDoibGVmdCJ9KS50ZXh0KGEuc3RhcnRUaW1lW2VdKTsKYi5hcHBlbmQoZWxlbSl9fSkodGhpcyk7dmFyIGw9c2V0SW50ZXJ2YWwoayhjLmxlbmd0aC0xKSwxRTMpfTsKLyoqIC9tL2pzL2RhdGVVdGlscy5qcyAqKi8KdmFyIF9fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjQ2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjAxIjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzQ6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQxOjIzIjsidXNlIHN0cmljdCI7RGF0ZS5wcm90b3R5cGUuYW1vdW50QmV0d2Vlbj1mdW5jdGlvbihhLGIsYyxkKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YilyZXR1cm4gbnVsbDthPWEuZ2V0VGltZSgpO2I9Yi5nZXRUaW1lKCk7cmV0dXJuIE1hdGguZmxvb3IoKGItYS1kKS9jKX07Ci8qKiAvbS9qcy9kMmNfZm9yZF90YWdnaW5nLmpzICoqLwp2YXIgX19fZDJjX2QyY2ZvcmR0YWdnaW5nanNfY19vbj0iMjAyNi0wMy0zMSAxNzozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciBkZWJ1Z19kMmZ0PW5ldyBmdW5jdGlvbigpe3RoaXMubG9nPWZ1bmN0aW9uKCl7dmFyIHo9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImRlYnVnX2QyZnQiKTtudWxsPT16JiYoej0ibGl2ZSIhPWRlcGxveW1lbnRUeXBlKTswPHomJmNvbnNvbGUubG9nLmFwcGx5KG51bGwsYXJndW1lbnRzKX07dGhpcy5lbmFibGU9ZnVuY3Rpb24oeil7bG9jYWxTdG9yYWdlLnNldEl0ZW0oImRlYnVnX2QyZnQiLHopfTtyZXR1cm4gdGhpc307CmZ1bmN0aW9uIEQyRlQoeixJKXtmdW5jdGlvbiBPKCl7dmFyIGQ9dDtpZigvc2k6dmxzLy50ZXN0KHQucGFnZUlkKSl7dmFyIGI9dDt0cnl7Zm9yKHZhciBoPXdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmdldEZpbHRlckNvbnRyb2xsZXIoKS5nZXRDdXJyZW50RmlsdGVyc1ZhbHVlcygpLGM9IiIsYT0wO2E8aC5sZW5ndGg7YSsrKXt2YXIgZT1oW2FdLGw9ZS52YWx1ZXM7c3dpdGNoKGUuZmlkKXtjYXNlICJmbHRDYXRlZ29yaWVJZCI6MT09bC5sZW5ndGgmJigiY3BvIiE9YyYmMT09bFswXSYmKGM9InVzZWQiKSwzPT1sWzBdJiYoYz0ibmV3IikpO2JyZWFrO2Nhc2UgImZsdENlcnRpZmllZElkIjowPGwubGVuZ3RoJiYoYz0iY3BvIil9fXZhciBmPWN9Y2F0Y2goZyl7Zj0iIn1iLmludmVudG9yeUZsYWc9Zn1iPXZvaWQgMCE9PXQuaW52ZW50b3J5RmxhZyYmIiIhPXQuaW52ZW50b3J5RmxhZz90LmludmVudG9yeUZsYWc6L2NlcnRpZmllW2RzXS8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZik\/CiJjcG8iOi91c2VkfG9jY2FzdGlvbi8udGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZik\/InVzZWQiOi9uZSh3fHVmcykvLnRlc3Qod2luZG93LmxvY2F0aW9uLmhyZWYpPyJuZXciOiJvdGhlciI7ZC5zaVR5cGU9Yn1mdW5jdGlvbiBTKGQpe2lmKCJ2ZWhpY2xlOjxuYW1lcGxhdGU+Ij09ZClyZXR1cm4iPHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczxzaS1zdWZmaXg+IjtpZigvXihVTktOT1dOfGN1c3RvbSkvLnRlc3QoZCkpe2NvbnN0IGI9W3twYXR0ZXJuOi9tYWludGVuYW5jZS1wbGFufGZvcmQtcHJvdGVjdHxsaW5jb2xuLXByb3RlY3QvLHJlc3VsdDoic2VydmljZTpmb3JkIHByb3RlY3QifSx7cGF0dGVybjovZXYtY2hhcmdpbmcvLHJlc3VsdDoiZXYgY2hhcmdpbmcifSx7cGF0dGVybjovZXYtKGxpZmVzdHlsZXxvdmVydmlldykvLHJlc3VsdDoiZXYgbGlmZXN0eWxlIn0se3BhdHRlcm46L2V2LW93bmVyc2hpcC8scmVzdWx0OiJldiBvd25lcnNoaXAifSx7cGF0dGVybjovZXYtKGxpZ2h0bmluZ3xtYWNoLWUpLywKcmVzdWx0OiJldiB2aHA6PG5hbWVwbGF0ZT4ifV07Zm9yKGNvbnN0IGggb2YgYil7Y29uc3Qge3BhdHRlcm46YyxyZXN1bHQ6YX09aDtpZihjLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4gYX19cmV0dXJuIGR9ZnVuY3Rpb24gVChkKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoIm9zdGlndXlsaW5jb2xuIil8fHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluY2x1ZGVzKCJ0YXlsb3JsaW5jb2xuIik\/ImxpbmNvbG4iOmR9dmFyIHQ9STt0LnNpVHlwZT0iPHNpLXR5cGU+Ijt2YXIgSjtpZigib2JqZWN0Ij09PXR5cGVvZiB6JiYhelt3aW5kb3cuZGVwbG95bWVudFR5cGVdKXJldHVybiBkZWJ1Z19kMmZ0LmxvZygiTm8gYWRvYmUgdHJhY2tpbmcgZm9yOiAiK3dpbmRvdy5kZXBsb3ltZW50VHlwZSksdGhpczt0PWZ1bmN0aW9uKGQpe2QucGFnZUlkPVMoZC5wYWdlSWQpO2QuY2xpZW50PVQoZC5jbGllbnQpOyQuZXh0ZW5kKCEwLGQsZnVuY3Rpb24oKXt2YXIgYj0Ke307JC5lYWNoKCQoIiNkaWdpdGFsX2RhdGFfaW5mbyIpLmZpbmQoImlucHV0Iikuc2VyaWFsaXplQXJyYXkoKSxmdW5jdGlvbigpe2JbdGhpcy5uYW1lXT10aGlzLnZhbHVlfSk7cmV0dXJuIGJ9KCkpOy9ldi1saWdodG5pbmcoLWZyKT9cLmh0bWwvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSYmKGQubWFrZT0iRm9yZCIsZC5tb2RlbD0iRjE1MCBMaWdodG5pbmciKTsvZXYtbWFjaC1lKC1mcik\/XC5odG1sLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkmJihkLm1ha2U9IkZvcmQiLGQubW9kZWw9Ik11c3RhbmcgTWFjaCBFIik7cmV0dXJuIGR9KHQpO2NvbnNvbGUubG9nKCJEMkZUIHBhZ2VEYXRhIix0KTt2YXIgVT17cGFnZTp7dXNlckxhbmd1YWdlOm51bGwsY2xpZW50Om51bGwsc2l0ZTpudWxsLHBhZ2VOYW1lOiI8cGFnZU5hbWU+IixzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiIsaGllcmFyY2h5OiI8aGllcmFyY2h5PiIscGFnZU5hbWVOb1ZlaGljbGU6IjxwYWdlbmFtZS1uby12ZWhpY2xlPiIsCnJhZFVJVmVyc2lvbjoiPHJhZFVJVmVyc2lvbj4iLHZhcmlhbnROYW1lOiI8dmFyaWFudE5hbWU+Iix0b29sOiI8dG9vbD4iLHRvb2xEZXNjcmlwdG9yOiI8dG9vbERlc2NyaXB0b3I+IixzZWFyY2hEZXB0aDoiPHNlYXJjaERlcHRoPiIsdmlucmVhbDoiPHZpblJlYWw+In0sdmVoaWNsZTp7bW9kZWxZZWFyOiI8bW9kZWxZZWFyPiIsbmFtZXBsYXRlOiI8bmFtZXBsYXRlPiIsYm9keU1vZGVsVHJpbToiPHZlaGljbGVUcmltPiIsZXh0SW50Q29sb3JDb2RlOiI8dmVoaWNsZUV4dEludENvbG9yQ29kZT4iLGVuZ2luZVRyYW5zOiI8dmVoaWNsZVRhbnNtaXNzaW9uPiIscHJpY2U6Ijx2ZWhpY2xlUHJpY2U+In0sdXNlcjp7cGFDb2RlOm51bGwsbGVhZFR5cGU6IjxwYWdlTG9hZExlYWRUeXBlPiIsY2tzVmlzaXRJZDoiPGNrc1Zpc2l0SWQ+In19LEs9MCxHPSExLEI9eyIqIjp7Ii5tYXBfb3Blbl9ob3Vyc19leHBhbmQiOntvbmNsaWNrOntvbmNsaWNrOiI8b3Blbl9ob3Vyc19vbmNsaWNrPiJ9fSwKJ2FbaHJlZio9Imdvb2dsZSJdW2hyZWYqPSJtYXBzIl0nOntvbmNsaWNrOntvbmNsaWNrOiJoZWxwOmRpcmVjdGlvbnMiLG9uY2xpY2tMaW5rTmFtZToiZGM6aGVscDpkaXJlY3Rpb25zIn19fSxob21lOnsiLnRyYWRlSW5CYXJfYnRuIjp7fSwiLnNlYXJjaC1ib3gtdGFicyBidXR0b24uc2VhcmNoLWJveC10YWIiOntvbmNsaWNrOntvbmNsaWNrOmZ1bmN0aW9uKCl7dmFyIGQ9IiI7dHJ5e2Q9dGhpcy5ldmVudERhdGEuZWxlbWVudC5hdHRyKCJkYXRhLXR5cGUiKX1jYXRjaChiKXtkZWJ1Z19kMmZ0LmxvZyhiKX0ibmV3aW52Ij09ZCYmKGQ9Im5ldyIpO3JldHVybiI8cGFnZWlkPjpjb250ZW50OmludmVudG9yeSBzZWFyY2g6IitkfX19LCIuY2Fyb3Vzc2VsIC5hcnJvd3MgLmFycm93LWxlZnQgLmFycm93Ijp7b25jbGljazp7b25jbGljazoiPHBhZ2VpZD46Y29udGVudDpzaG93cm9vbSBpbnZlbnRvcnkgc2Nyb2xsOmxlZnQifX0sIi5jYXJvdXNzZWwgLmFycm93cyAuYXJyb3ctcmlnaHQgLmFycm93Ijp7b25jbGljazp7b25jbGljazoiPHBhZ2VpZD46Y29udGVudDpzaG93cm9vbSBpbnZlbnRvcnkgc2Nyb2xsOnJpZ2h0In19LAoiLmN0YTRfc3BsaXRfaW1hZ2VfYnV0dG9uIjp7b25jbGljazp7b25jbGljazpmdW5jdGlvbigpe3ZhciBkPSIiLGI9IiIsaD0iIjt0cnl7ZD10aGlzLmV2ZW50RGF0YS5lbGVtZW50LmZpbmQoInNwYW4iKS5odG1sKCksYj10aGlzLmV2ZW50RGF0YS5lbGVtZW50LmF0dHIoImhyZWYiKX1jYXRjaChjKXtkZWJ1Z19kMmZ0LmxvZyhjKX0vXihjb25maWd8YnVpbGQpL2kudGVzdChkKSYmKGg9ImJ1aWxkIGFuZCBwcmljZSIpOy9eZmluYW5jfGNyZWRpdC9pLnRlc3QoZCsiOjoiK2IpJiYoaD0iYXBwbHkgZm9yIGZpbmFuY2luZyIpOy9vZmZbcmVdW3JlXS9pLnRlc3QoZCkmJihoPSJjdXJyZW50IG9mZmVycyIpOy8ocmVxdWVzdHN8ZGVtYW5kZXMpLipcYnBhcnRzXGIvaS50ZXN0KGIpJiYoaD0ib3JkZXIgcGFydHMiKTsvKHJlcXVlc3RzfGRlbWFuZGVzKS4qXGIoZXNzYWl8dGVzdClcYi9pLnRlc3QoYikmJihoPSJ0ZXN0IGRyaXZlIik7aD1oP2g6ZC50b0xvd2VyQ2FzZSgpO3JldHVybiJob21lOmNvbnRlbnQ6IisKaH19fSwiI2Jhbm5lcl9zZWFyY2hfYmFyX2Zvcm1fYnV0dG9uIjp7b25jbGljazp7b25jbGljazpmdW5jdGlvbigpe3ZhciBkPSQoIiNiYW5uZXJfc2VhcmNoX2Jhcl9zZWxlY3RfbWFrZSIpLnZhbCgpLGI9JCgiI2Jhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9tb2RlbCBvcHRpb246c2VsZWN0ZWQiKS50ZXh0KCksaD0kKCIjYmFubmVyX3NlYXJjaF9iYXJfc2VsZWN0X21vZGVsIikudmFsKCk7Yj1iLnJlcGxhY2UoL1woXGQrXCkvZywiIik7cmV0dXJuImhvbWU6Y29udGVudDppbnZlbnRvcnkgc2VhcmNoIisoImFsbCIhPWQmJiJhbGwiIT1oPyI6IitkKyIgIitiOiIiKS50b0xvd2VyQ2FzZSgpfX19fSwiPHNpLXR5cGU+OnNpOnZsczxzaS1zdWZmaXg+Ijp7Ii5jYXJCb3hXcmFwcGVyIGEiOntvbmNsaWNrOntvbmNsaWNrOiI8c2ktdHlwZT46c2k6dmxzPHNpLXN1ZmZpeD4iLG9uY2xpY2tMaW5rTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZsczpjb250ZW50OmFjdGlvbjxzaS1zdWZmaXg+In19LAoiI2ZsdFNvcnRJZCBidXR0b24iOntpZ25vcmU6ITB9LCIuZGl2U3BhbkZpbHRlcnMgLmZsdFdyYXBwZXIgYnV0dG9uIjp7aWdub3JlOiEwfSwiLmJ1eV9ub3dfY2FyZF9jdGEiOntpc0dsb2JhbDohMSxvbmNsaWNrOntvbmNsaWNrOiI8c2ktdHlwZT46c2k6dmxzOmJ1eSBub3ciLG9uY2xpY2tMaW5rTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZsczpjb250ZW50OmFjdGlvbiJ9fX0sIjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM8c2ktc3VmZml4PiI6eyIud2luZG93LXN0aWNrZXItYWN0aW9uLWJveCBhIjp7cGFnZTp7dmFyaWFudE5hbWU6IndpbmRvdy1zdGlja2VyIix0b29sOiJldmVudDp3aW5kb3cgc3RpY2tlciIsdG9vbERlc2NyaXB0b3I6InZlaGljbGUgZGV0YWlsczp3aW5kb3cgc3RpY2tlciJ9LG9uY2xpY2s6e29uY2xpY2tMaW5rTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczp2aWV3IHdpbmRvdyBzdGlja2VyPHNpLXN1ZmZpeD4iLG9uY2xpY2s6IjxzaS10eXBlPjpzaTp2ZWhpY2xlIGRldGFpbHM6dmlldyB3aW5kb3cgc3RpY2tlcjxzaS1zdWZmaXg+In19LAoiLnNsaWRlcyAuc2xpZGUgYSI6e2NvbnRlbnRBY3Rpb246InBob3RvIGNsaWNrIn0sIiNwb3B1cFNwZWNzUmVxdWVzdCI6e2NvbnRlbnRBY3Rpb246InByaW50In0sIiNzaGFyZU9uRmFjZWJvb2siOntjb250ZW50QWN0aW9uOiJmYWNlYm9vayBsaWtlIn0sIiNidXlOb3dPRU1Nb2RlbF9saW5rIjp7b25jbGljazp7b25jbGljazoiPHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczpidXkgbm93IixvbmNsaWNrTGlua05hbWU6ImRjOjxzaS10eXBlPjpzaTp2bHM6Y29udGVudDphY3Rpb246PG5hbWVwbGF0ZT4ifX19LHNob3dyb29tOnsiLmRpdkNhclRpdGxlQ29udGFpbmVyIGEiOntvbmNsaWNrOntvbmNsaWNrOiI8cGFnZWlkPjpjb250ZW50OnZlaGljbGUgY2xpY2s6PG5hbWVwbGF0ZT4ifX19LCJjb21tZXJjaWFsOmhvbWUiOnsiLmRpdkNhclRpdGxlQ29udGFpbmVyIGEiOntwYWdlOntoaWVyYXJjaHk6ImNvbW1lcmNpYWw6aG9tZSJ9LG9uY2xpY2s6e29uY2xpY2s6IjxwYWdlaWQ+OmNvbnRlbnQ6dmVoaWNsZSBjbGljazo8bmFtZXBsYXRlPiJ9fSwKIiNjb21tZXJjaWFsZm9ybV9mb3JtIGJ1dHRvbiI6e3BhZ2U6e2hpZXJhcmNoeToiY29tbWVyY2lhbDpob21lOmNvbnRhY3Q6dGhhbmsgeW91OjxuYW1lcGxhdGU+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6Y29tbWVyY2lhbDpob21lOmNvbnRhY3Q6dGhhbmsgeW91Iix0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOiJjb21tZXJjaWFsOmNvbnRhY3QifSx1c2VyOntsZWFkVHlwZToiY29tbWVyY2lhbDpjb250YWN0In19LCIuZGl2Q2FySW1hZ2VDb250YWluZXIgYSI6e3BhZ2U6e2hpZXJhcmNoeToiY29tbWVyY2lhbDpob21lIn0sb25jbGljazp7b25jbGljazoiPHBhZ2VpZD46Y29udGVudDp2ZWhpY2xlIGNsaWNrOjxuYW1lcGxhdGU+In0sdXNlcjp7bGVhZFR5cGU6IiIsdG9vbDoiIix0b29sRGVzY3JpcHRvcjoiIn19LCIuZGl2Q2FyUGF5bWVudENvbnRhaW5lciBhIjp7cGFnZTp7dmFyaWFudE5hbWU6InBheW1lbnQtZXN0aW1hdG9yLW9uY2xpY2siLGhpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6cGF5bWVudCBlc3RpbWF0b3I6Y29tbWVyY2lhbDo8bmFtZXBsYXRlPiJ9LApvbmNsaWNrOntvbmNsaWNrOiJ2ZWhpY2xlIGNsaWNrOjxuYW1lcGxhdGU+In0sdXNlcjp7bGVhZFR5cGU6InNob3dyb29tOnBheW1lbnQgZXN0aW1hdG9yIix0b29sOiJldmVudDpwYXltZW50IGVzdGltYXRvciIsdG9vbERlc2NyaXB0b3I6InNob3dyb29tOnBheW1lbnQgZXN0aW1hdG9yIn19fSxwb3B1cDp7IiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiOmZ1bmN0aW9uKCl7dmFyIGQ9e3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6dmFsdWUgeW91ciB0cmFkZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46dmFsdWUgeW91ciB0cmFkZTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlIn0sdXNlcjp7bGVhZFR5cGU6IjxzZWN0aW9uPjp2YWx1ZSB5b3VyIHRyYWRlIn19O3RyeXsvYmFubmVyfHRyYWRlaW5iYXIvLnRlc3QodGhpcy5sYXN0RXZlbnQuZGF0YS5zZXR0aW5ncy5wb3B1cEV2ZW50U291cmNlKSYmCiQuZXh0ZW5kKCEwLGQse3BhZ2U6e3NpdGVTZWN0aW9uOiJnbG9iYWwiLHBhZ2VOYW1lOiJkYzpnbG9iYWw6dmFsdWUgeW91ciB0cmFkZTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6Z2xvYmFsOnZhbHVlIHlvdXIgdHJhZGUifX0pfWNhdGNoKGIpe31yZXR1cm4gZH0sIiNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lciI6e3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6Z2V0IHF1b3RlPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2cmZxPHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZyZnEiLHNpdGVTZWN0aW9uOiJnZXQgcXVvdGUifX0sIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIjpmdW5jdGlvbigpe3JldHVybi86c2k6dmxzLy50ZXN0KHRoaXMuc3RhdGljRGF0YS5wYWdlSWQpP3tjb250ZW50QWN0aW9uOiJwYXltZW50IGVzdGltYXRvciIsCnBhZ2U6e3ZhcmlhbnROYW1lOiJwYXltZW50LWVzdGltYXRvci1vbmNsaWNrIixoaWVyYXJjaHk6IjxwYXltZW50LWVzdGltYXRvci1oaWVyYXJjaHk+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvcjpjb250ZW50IGFjdGlvbjxwYXltZW50LWVzdGltYXRvci1zaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvcjpjb250ZW50IGFjdGlvbiIsdG9vbDoiZXZlbnQ6cGF5bWVudCBlc3RpbWF0b3IiLHRvb2xEZXNjcmlwdG9yOiJ2bHM6cGF5bWVudCBlc3RpbWF0b3IiLHNpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+In0sb25jbGljazp7b25jbGlja0xpbmtOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnBheW1lbnQgZXN0aW1hdG9yOmNvbnRlbnQgYWN0aW9uPHBheW1lbnQtZXN0aW1hdG9yLXNpLXN1ZmZpeD4iLG9uY2xpY2s6IjxwYWdlSWROb1N1ZmZpeD46cGF5bWVudCBlc3RpbWF0b3I6ZXN0aW1hdGUifSwKdXNlcjp7bGVhZFR5cGU6InZsczpwYXltZW50IGVzdGltYXRvciJ9fTovdmVoaWNsZTp8dmVoaWNsZSBkZXRhaWxzLy50ZXN0KHRoaXMuc3RhdGljRGF0YS5wYWdlSWQpP3twYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOnBheW1lbnQgZXN0aW1hdG9yPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvcjxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4PjpwYXltZW50IGVzdGltYXRvciIsc2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4iLHZhcmlhbnROYW1lOiJnbG9iYWwtb3ZlcmxheSIsdG9vbDoiZXZlbnQ6cGF5bWVudCBlc3RpbWF0b3IiLHRvb2xEZXNjcmlwdG9yOiJ2ZWhpY2xlIGRldGFpbHM6cGF5bWVudCBlc3RpbWF0b3IifSxvbmNsaWNrOntvbmNsaWNrOiI8c2l0ZVNlY3Rpb24+OnNpOnZlaGljbGUgZGV0YWlsczpwYXltZW50IGVzdGltYXRvcjpkaXNjb3ZlciBvZmZlciJ9LAp1c2VyOntsZWFkVHlwZToidmRwOnBheW1lbnQgZXN0aW1hdG9yIn19OiExfSwiLnNuc19wb3B1cCI6e3BhZ2U6e3BhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnNjcmF0Y2ggb2ZmZXI8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46c2NyYXRjaCBvZmZlciIsaGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpzY3JhdGNoIG9mZmVyPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+In19LCIjcG9wdXBDb250YWluZXJfYXZhaWxhYmlsaXR5dXNlZCI6e3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6Y29uZmlybSBhdmFpbGFiaWxpdHk8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNvbmZpcm0gYXZhaWxhYmlsaXR5PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNvbmZpcm0gYXZhaWxhYmlsaXR5IixzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiJ9fX19LApQPWZ1bmN0aW9uKCl7dmFyIGQ9e307aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6KXJldHVybiBkO3RyeXt2YXIgYj13aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRIdW1hbkZpbHRlclN0YXRlKCk7MT09Yi5mbHRNb2RlbElkLmxlbmd0aCYmMT09Yi5mbHRNYWtlSWQubGVuZ3RoJiYoZC5tYWtlPWIuZmx0TWFrZUlkWzBdLGQubW9kZWw9Yi5mbHRNb2RlbElkWzBdKTsxPT1iLmZsdENhcm9zc2VyaWVJZC5sZW5ndGgmJihkLnZlaGljbGVDYXRlZ29yeT1iLmZsdENhcm9zc2VyaWVJZFswXSl9Y2F0Y2goaCl7ZGVidWdfZDJmdC5sb2coIkQyRlQgU2VhcmNoIEZpbHRlciBFcnJvciIsaCl9cmV0dXJuIGR9LFY9eyIjaG9tZXBhZ2UtYmFubmVyIC5uaXZvLWltYWdlTGluayI6ImJhbm5lciBjbGljayIsIi5uZXdDYXJDYXJkIGEiOiJzaG93cm9vbSBzZWFyY2g6PG5hbWVwbGF0ZT4iLCIuc2xpZGUtYXJyb3dzIGEiOiJwaG90byBzY3JvbGwiLAoiI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkX2J0bl8yIjoic3BlY2lhbCBvZmZlciIsIi5zY2hlZHVsZVRlc3REcml2ZURlYWxlciI6InRlc3QgZHJpdmU6ZGVhbGVyc2hpcCIsIi5zY2hlZHVsZVRlc3REcml2ZUhvbWUiOiJ0ZXN0IGRyaXZlOmhvbWUiLCIuc2NoZWR1bGVUZXN0RHJpdmVWaXJ0dWFsIjoidGVzdCBkcml2ZTp2aXJ0dWFsIiwiI0ZpbmFuY2VBY3Rpb25Cb3hfcG9wdXAiOiJmaW5hbmNlIGl0IiwiI0NyZWRpdFNjb3JlQnRuIjoiY3JlZGl0IHNjb3JlIiwiLnNwZWNzLXRvZ2dsZSBhIjoiPHNwZWNzLXRvZ2dsZS10eXBlPiIsIiNzdHlsZXMtY29udGFpbmVyIGxpIGEiOiJ0cmltIHNlbGVjdDx2ZHAtdHJpbT4iLCIjQnVpbGRBbmRQcmljZUFjdGlvbkJveExpbmsiOiJidWlsZCBhbmQgcHJpY2UiLCIjc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWRfYnRuXzEiOiJkaXNjb3ZlciBvZmZlciIsIiNjb21wYXJlX3RhYmxlIGEiOiJ2ZWhpY2xlIGNvbXBhcmU8Y29tcGFyaXNvbi1uYW1lcGxhdGU+IiwKIi5fX3ZpZXdfbWFwIjoidmlldyBvbiBtYXAiLCIucGF5bWVudENhbGN1bGF0b3JWRFAiOiJwYXltZW50IGVzdGltYXRvciIsIi5fX3BheW1lbnRDYWxjdWxhdG9yIjoicGF5bWVudCBlc3RpbWF0b3IiLCJ1bC50cmltVGFicyBsaSI6ImNvbXBhcmU6dHJpbSBzZWxlY3Q8Y29tcGFyaXNvbi10cmltPiIsIiNFdmFsQWN0aW9uQm94TGluayI6InZhbHVlIHlvdXIgdHJhZGUiLCIjQnVpbGRBbmRQcmljZUFjdGlvbkJveExpbmsiOiJidWlsZCBhbmQgcHJpY2UiLCIjY29tcGFyZVNlbGVjdCI6ImNvbXBhcmU6dHJpbSBzZWxlY3Q6PHNlbGVjdGVkLW9wdGlvbi10ZXh0PiIsIiNzZWVfb3B0aW9ucyBhIjoic2VlIG9wdGlvbnMiLCIjRmluYW5jZU11bHRpc3RlcEFjdGlvbkJveExpbmsiOiJnZXQgYXBwcm92ZWQiLCIucHJvbW9zLWNvbnRhaW5lciAucHJvbW9zIGEiOiJvZmZlciBjbGljazxwcm9tby1uYW1lPiIsJ1tkYXRhLXRhZ2dpbmc9ImJyb2NodXJlLWRvd25sb2FkIl0nOiJicm9jaHVyZSBkb3dubG9hZDo8YnJvY2h1cmVOYW1lPiIsCidbZGF0YS10YWdnaW5nPSJpbmNlbnRpdmVzIl0nOiJleHBsb3JlIGluY2VudGl2ZXMiLCdbZGF0YS10YWdnaW5nPSJjaGFyZ2luZyJdJzoiZXhwbG9yZSBjaGFyZ2luZyIsJ1tkYXRhLXRhZ2dpbmc9Im93bmVyc2hpcCJdJzoib3duZXJzaGlwIGluZm8iLCdbZGF0YS10YWdnaW5nPSJtYWNoZSJdJzoiZXhwbG9yZSBtYWNoIGUiLCdbZGF0YS10YWdnaW5nPSJmMTUwIl0nOiJleHBsb3JlIGYxNTAiLCdbZGF0YS10YWdnaW5nPSJzY2hlZHVsZS1zZXJ2aWNlIl0nOiJzY2hlZHVsZSBzZXJ2aWNlIiwnW2RhdGEtdGFnZ2luZz0idmlldy1pbnZlbnRvcnkiXSc6InZpZXcgaW52ZW50b3J5IiwnW2RhdGEtdGFnZ2luZz0iY2hhcmdpbmctdXBkYXRlcyJdJzoiY2hhcmdpbmcgdXBkYXRlcyJ9LFc9eyJDb21tZXJjaWFsUmVxdWVzdF8oRlJ8RU4pIjp7cGFnZTp7aGllcmFyY2h5OiJjb21tZXJjaWFsOmhvbWU6Y3JlZGl0IGNoZWNrOnRoYW5rIHlvdTo8bmFtZXBsYXRlPiIscGFnZU5hbWU6ImRjOmNvbW1lcmNpYWw6aG9tZTpjb250YWN0OnRoYW5rIHlvdSIsCnBhZ2VOYW1lTm9WZWhpY2xlOiJkYzpjb21tZXJjaWFsOmhvbWU6Y29udGFjdDp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6ImNvbW1lcmNpYWw6Y29udGFjdCJ9LHVzZXI6e2xlYWRUeXBlOiJjb21tZXJjaWFsOmNvbnRhY3QifX0sQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDp7cGFnZTp7dmFyaWFudE5hbWU6ImdldC1wcmUtYXBwcm92ZWQtc3VibWl0IixoaWVyYXJjaHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsImhpZXJhcmNoeSIpfSxwYWdlTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3VibWl0IiwicGFnZU5hbWUiKX0scGFnZU5hbWVOb1ZlaGljbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsInBhZ2VOYW1lTm9WZWhpY2xlIil9LHRvb2w6ImdldCBwcmUtYXBwcm92ZWQiLAp0b29sRGVzY3JpcHRvcjoiZ2V0IHByZS1hcHByb3ZlZDpzdWJtaXR0ZWQifSxldmVudDp7YWN0aW9uOiJnZXQgcHJlYXBwcm92ZWR8dG9vbCJ9fSxGaW5hbmNlTXVsdGlzdGVwQWN0aW9uQm94TGluazp7cGFnZTp7dmFyaWFudE5hbWU6ImdldC1wcmUtYXBwcm92ZWQtc3VibWl0IixoaWVyYXJjaHk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsImhpZXJhcmNoeSIpfSxwYWdlTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3VibWl0IiwicGFnZU5hbWUiKX0scGFnZU5hbWVOb1ZlaGljbGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlUHJlQXBwcm92YWxWYXJzKCJmb3JtLXN1Ym1pdCIsInBhZ2VOYW1lTm9WZWhpY2xlIil9LHRvb2w6ImdldCBwcmUtYXBwcm92ZWQiLHRvb2xEZXNjcmlwdG9yOiJnZXQgcHJlLWFwcHJvdmVkOnN1Ym1pdHRlZCJ9LGV2ZW50OnthY3Rpb246ImdldCBwcmVhcHByb3ZlZHx0b29sIn19LApSZWJhdGVDb3Vwb246ZnVuY3Rpb24oZCl7dmFyIGI9InZlaGljbGUgZGV0YWlscyIsaD0idmRwIjskKCJib2R5IikuaXMoIiNORVdDQVJERVRBSUxTIikmJihiPWg9InZlaGljbGUiKTtiPXtwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOjxmb3JtLWxhYmVsPjxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOjxwYWdlSWROb1N1ZmZpeD46PGZvcm0tbGFiZWw+OnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjo8Zm9ybS1sYWJlbD46dGhhbmsgeW91Iix0b29sOiJkZWZhdWx0IGZvcm0iLHRvb2xEZXNjcmlwdG9yOmIrIjpzY3JhdGNoIG9mZmVyIn0sdXNlcjp7bGVhZFR5cGU6aCsiOnNjcmF0Y2ggb2ZmZXIifX07ZC5kYXRhLmZvcm1MYWJlbD0oIiIrZW1haWxIYW5kbGVyLnBvcHVwT2ZmZXJUeXBlKS5yZXBsYWNlKC8oXFM\/KShbQS1aXSkvZyxmdW5jdGlvbihjLGEsZSl7Yz1hOzA8YS5sZW5ndGgmJgooYys9Ii0iKTtyZXR1cm4gYytlLnRvTG93ZXJDYXNlKCl9KTsvc2NyYXRjaC9pLnRlc3QoZW1haWxIYW5kbGVyLnBvcHVwT2ZmZXJUeXBlKSYmKGQuZGF0YS5mb3JtTGFiZWw9InNjcmF0Y2ggb2ZmZXIiKTsvY291cG9ufHJlYmF0ZS9pLnRlc3QoZW1haWxIYW5kbGVyLnBvcHVwT2ZmZXJUeXBlKSYmKGQuZGF0YS5mb3JtTGFiZWw9InZvdWNoZXIiKTsiIj09ZC5kYXRhLmZvcm1MYWJlbCYmKGQuZGF0YS5mb3JtTGFiZWw9InNjcmF0Y2ggb2ZmZXIiKTtyZXR1cm4gYn0sInByaWNldmVoaWNsZShuZXcpPyI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXNvbHZlVmFsdWVZb3VyVHJhZGVUaGFua1lvdS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFBhcnRzUmVxdWVzdDp7cGFnZTp7aGllcmFyY2h5OiJzZXJ2aWNlIGFuZCBwYXJ0czpvcmRlciBwYXJ0cyIscGFnZU5hbWU6ImRjOnNlcnZpY2U6b3JkZXIgcGFydHM6Y29udGFjdCB1czp0aGFuayB5b3UiLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzpzZXJ2aWNlOm9yZGVyIHBhcnRzOmNvbnRhY3QgdXM6dGhhbmsgeW91IiwKdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoib3JkZXIgcGFydHM6Y29udGFjdCIsc2l0ZVNlY3Rpb246InNlcnZpY2UgYW5kIHBhcnRzIn0sdXNlcjp7bGVhZFR5cGU6Im9yZGVyIHBhcnRzOmNvbnRhY3QifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LFNlcnZpY2VSZXF1ZXN0OntwYWdlOntoaWVyYXJjaHk6InNlcnZpY2UgYW5kIHBhcnRzOnJlcXVlc3QgYXBwb2ludG1lbnQiLHBhZ2VOYW1lOiJkYzpzZXJ2aWNlOnJlcXVlc3QgYXBwb2ludG1lbnQ6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6c2VydmljZTpyZXF1ZXN0IGFwcG9pbnRtZW50OnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoicmVxdWVzdCBhcHBvaW50bWVudCIsc2l0ZVNlY3Rpb246InNlcnZpY2UgYW5kIHBhcnRzIn0sdXNlcjp7bGVhZFR5cGU6InJlcXVlc3QgYXBwb2ludG1lbnQifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LApUaXJlc1JlcXVlc3Q6e3BhZ2U6e2hpZXJhcmNoeToic2VydmljZSBhbmQgdGlyZXM6b3JkZXIgdGlyZXMiLHBhZ2VOYW1lOiJkYzpzZXJ2aWNlOm9yZGVyIHRpcmVzOmNvbnRhY3QgdXM6dGhhbmsgeW91IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6c2VydmljZTpvcmRlciB0aXJlczpjb250YWN0IHVzOnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoib3JkZXIgdGlyZXM6Y29udGFjdCIsc2l0ZVNlY3Rpb246InNlcnZpY2UgYW5kIHBhcnRzIn0sdXNlcjp7bGVhZFR5cGU6Im9yZGVyIHRpcmVzOmNvbnRhY3QifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LEJvZHlTaG9wOntwYWdlOntoaWVyYXJjaHk6InNlcnZpY2UgYW5kIHBhcnRzOnJlcXVlc3QgYm9keSBzaG9wIixwYWdlTmFtZToiZGM6c2VydmljZTpyZXF1ZXN0IGJvZHkgc2hvcDp0aGFuayB5b3UiLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzpzZXJ2aWNlOnJlcXVlc3QgYm9keSBzaG9wOnRoYW5rIHlvdSIsCnRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6InJlcXVlc3QgYm9keSBzaG9wIixzaXRlU2VjdGlvbjoic2VydmljZSBhbmQgcGFydHMifSx1c2VyOntsZWFkVHlwZToicmVxdWVzdCBib2R5IHNob3AifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LENvbnRhY3RSZXF1ZXN0OntwYWdlOntwYWdlTmFtZToiZGM6YWJvdXQgdXM6Y29udGFjdCB1czp0aGFuayB5b3UiLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzphYm91dCB1czpjb250YWN0IHVzOnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoiY29udGFjdCB1czpjb250YWN0In0sdXNlcjp7bGVhZFR5cGU6ImNvbnRhY3QgdXM6Y29udGFjdCJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX0sbWVudUNvbnRhY3RVczp7cGFnZTp7aGllcmFyY2h5OiJhYm91dCB1czpleHByZXNzIHJlcXVlc3QiLHBhZ2VOYW1lOiJkYzphYm91dCB1czpleHByZXNzIHJlcXVlc3Q6dGhhbmsgeW91IiwKcGFnZU5hbWVOb1ZlaGljbGU6ImRjOmFib3V0IHVzOmV4cHJlc3MgcmVxdWVzdDp0aGFuayB5b3UiLHRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6ImV4cHJlc3MgcmVxdWVzdDpjb250YWN0IixzaXRlU2VjdGlvbjoiYWJvdXQgdXMifSx1c2VyOntsZWFkVHlwZToiZXhwcmVzcyByZXF1ZXN0OmNvbnRhY3QifSxldmVudDp7YWN0aW9uOiJsZWFkIHN1Ym1pdHRlZHx0b29sIn19LENyZWRpdFNjb3JlOmZ1bmN0aW9uKCl7dmFyIGQ9InZlaGljbGUgZGV0YWlscyIsYj0idmRwIjskKCJib2R5IikuaXMoIiNORVdDQVJERVRBSUxTIikmJihkPWI9InZlaGljbGUiKTtyZXR1cm57cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczpjcmVkaXQgY2hlY2s8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNyZWRpdCBjaGVjazp0aGFuayB5b3U8c2ktc3VmZml4PiIscGFnZU5hbWVOb1ZlaGljbGU6ImRjOjxwYWdlSWROb1N1ZmZpeD46Y3JlZGl0IGNoZWNrOnRoYW5rIHlvdSIsCnRvb2w6ImRlZmF1bHQgZm9ybSIsdG9vbERlc2NyaXB0b3I6ZCsiOmNyZWRpdCIsc2l0ZVNlY3Rpb246IjxzaXRlU2VjdGlvbj4ifSx1c2VyOntsZWFkVHlwZTpiKyI6Y3JlZGl0In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fX0sTW9udGhseVBheW1lbnRzOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmdldCBxdW90ZTxzaS1jYXRlZ29yeT46PG5hbWVwbGF0ZT4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZyZnE6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzo8cGFnZUlkTm9TdWZmaXg+OnZyZnE6dGhhbmsgeW91Iix0b29sOiJldmVudDpnZXQgcXVvdGUiLHRvb2xEZXNjcmlwdG9yOiJ2ZWhpY2xlIGRldGFpbHM6Z2V0IHF1b3RlIixzaXRlU2VjdGlvbjoiZ2V0IHF1b3RlIix2YXJpYW50TmFtZToidnJmcS1jb21wbGV0ZSJ9LHVzZXI6e2xlYWRUeXBlOiJ2ZHA6dnJmcSJ9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkfHRvb2wifX0sCkF2YWlsYWJpbGl0eTpmdW5jdGlvbigpe3ZhciBkPSJ2ZWhpY2xlIGRldGFpbHMiLGI9InZkcCI7JCgiYm9keSIpLmlzKCIjTkVXQ0FSREVUQUlMUyIpJiYoZD1iPSJ2ZWhpY2xlIik7cmV0dXJue3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6Y29uZmlybSBhdmFpbGFiaWxpdHk8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzo8cGFnZUlkTm9TdWZmaXg+OmNvbmZpcm0gYXZhaWxhYmlsaXR5OnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjpjb25maXJtIGF2YWlsYWJpbGl0eTp0aGFuayB5b3UiLHRvb2w6ImV2ZW50OmNvbmZpcm0gYXZhaWxhYmlsaXR5Iix0b29sRGVzY3JpcHRvcjpkKyI6Y29uZmlybSBhdmFpbGFiaWxpdHkiLHNpdGVTZWN0aW9uOiI8c2l0ZVNlY3Rpb24+In0sdXNlcjp7bGVhZFR5cGU6YisiOmNvbmZpcm0gYXZhaWxhYmlsaXR5In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fX0sCiJUZXN0RHJpdmUoPzpOZXcpPyI6e3BhZ2U6e2hpZXJhcmNoeToic2hvcHBpbmcgdG9vbHM6dGVzdCBkcml2ZTxzaS1jYXRlZ29yeT48c2ktc3VmZml4PiIscGFnZU5hbWU6ImRjOnRlc3QgZHJpdmU6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzp0ZXN0IGRyaXZlOnRoYW5rIHlvdSIsdG9vbDoiZXZlbnQ6bGVhZCBzdWJtaXR0ZWQiLHRvb2xEZXNjcmlwdG9yOiJ0ZXN0IGRyaXZlIixzaXRlU2VjdGlvbjoidGVzdCBkcml2ZSJ9LHVzZXI6e2xlYWRUeXBlOiJ0ZXN0IGRyaXZlIn0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxDb250YWN0VXNSZXF1ZXN0OntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmNvbnRhY3Q8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lOiJkYzp2ZWhpY2xlOjx2ZHAtY3RhLWJ0bi10aXRsZT46dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzp2ZWhpY2xlOjx2ZHAtY3RhLWJ0bi10aXRsZT46dGhhbmsgeW91IiwKdG9vbDoiZXZlbnQ6bGVhZCBzdWJtaXR0ZWQiLHRvb2xEZXNjcmlwdG9yOiI8dmRwLWN0YS1idG4tdGl0bGU+IixzaXRlU2VjdGlvbjoiPHZkcC1jdGEtYnRuLXRpdGxlPiJ9LHVzZXI6e2xlYWRUeXBlOiI8dmRwLWN0YS1idG4tdGl0bGU+In0sZXZlbnQ6e2FjdGlvbjoibGVhZCBzdWJtaXR0ZWR8dG9vbCJ9fSxNdWx0aUZvcm1fU01TOntwYWdlOntoaWVyYXJjaHk6InNob3BwaW5nIHRvb2xzOmdlbmVyYWwgb2ZmZXI8c2ktY2F0ZWdvcnk+OjxuYW1lcGxhdGU+IixwYWdlTmFtZToiZGM6PHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczpnZW5lcmFsIG9mZmVyOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczpnZW5lcmFsIG9mZmVyOnRoYW5rIHlvdSIsdG9vbDoiZGVmYXVsdCBmb3JtIix0b29sRGVzY3JpcHRvcjoidmVoaWNsZSBkZXRhaWxzOmdlbmVyYWwgb2ZmZXIiLHNpdGVTZWN0aW9uOiJzZWFyY2ggaW52ZW50b3J5In0sCnVzZXI6e2xlYWRUeXBlOiJ2ZHA6Z2VuZXJhbCBvZmZlciJ9fX0sTD1mdW5jdGlvbihkKXtyZXR1cm4gZnVuY3Rpb24oKXtkZWJ1Z19kMmZ0LmxvZyhkLGFyZ3VtZW50cyl9fSxYPWZ1bmN0aW9uKCl7d2luZG93Ll9zYXRlbGxpdGU9d2luZG93Ll9zYXRlbGxpdGV8fHt9O3dpbmRvdy5fc2F0ZWxsaXRlLnRyYWNrPXdpbmRvdy5fc2F0ZWxsaXRlLnRyYWNrfHxmdW5jdGlvbigpe307d2luZG93Ll9zYXRlbGxpdGUuX21vbml0b3JzPXdpbmRvdy5fc2F0ZWxsaXRlLl9tb25pdG9yc3x8W107d2luZG93Ll9zYXRlbGxpdGUuX21vbml0b3JzLnB1c2goe3J1bGVUcmlnZ2VyZWQ6TCgicnVsZSB0cmlnZ2VyZWQiKSxydWxlQ29tcGxldGVkOkwoInJ1bGUgY29tcGxldGVkIikscnVsZUNvbmRpdGlvbkZhaWxlZDpMKCJydWxlIGNvbmRpdGlvbiBmYWlsZWQiKX0pOzA8JCgiI2Fkb2JlX2xhdW5jaCIpLmxlbmd0aD9jb25zb2xlLmRlYnVnKCJEMkZUIDo6IEFkb2JlIExhdW5jaCBhbHJlYWR5IGxvYWRlZCIpOgooIm9iamVjdCI9PT10eXBlb2YgeiYmKHo9elt3aW5kb3cuZGVwbG95bWVudFR5cGVdKSxmdW5jdGlvbihkLGIsaCl7dmFyIGM9ZC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtjLnR5cGU9InRleHQvamF2YXNjcmlwdCI7Yy5hc3luYz0hMDtjLmlkPWg7Yy5zcmM9YjtjLnNldEF0dHJpYnV0ZSgiZGF0YS1vdC1pZ25vcmUiLCIiKTtkLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoYyl9KGRvY3VtZW50LHosImFkb2JlX2xhdW5jaCIpLC9kMmNtZWRpYVwuY2EkLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ob3N0KSYmKGVuYWJsZURlYnVnPWZ1bmN0aW9uKCl7dHJ5e3dpbmRvdy5fc2F0ZWxsaXRlLnNldERlYnVnKCEwKX1jYXRjaChkKXtyZXR1cm4gZGVidWdfZDJmdC5sb2coZCksc2V0VGltZW91dChlbmFibGVEZWJ1ZywzMDApfX0pKX0sWT1mdW5jdGlvbihkKXt2YXIgYj17fTtkLnJlcGxhY2UoLygoPzpGb3JkfExpbmNvbG4pfCg\/OjIwWzAtOV17Mn0pKSstKFteLV0rKS0oKD86W14tXC5dKyl8KD86MjBbMC05XXsyfSlcLmh0bWwpLywKZnVuY3Rpb24oaCxjLGEsZSl7L14yMFswLTldezJ9JC8udGVzdChjKT8oYyYmKGIueWVhcj1jKSxhJiYoYi5tYWtlPWEpLGUmJihiLm1vZGVsPWUucmVwbGFjZSgvXy9nLCIgIikucmVwbGFjZSgvXGIoW0EtWl0pXHMvLCIkMS0iKSkpOi9eMjBbMC05XXsyfSQvLnRlc3QoZSkmJihjJiYoYi55ZWFyPWUpLGEmJihiLm1ha2U9YyksZSYmKGIubW9kZWw9YSkpfSk7cmV0dXJuIGJ9LHg9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChjLGEpe3JldHVybiBmdW5jdGlvbigpe2MuYXBwbHkobnVsbCxhKX19dmFyIGI9dGhpczskLmV4dGVuZCghMCxiLHtsYXN0RXZlbnQ6bnVsbCxzdGF0aWNEYXRhOkksZXZlbnREYXRhOm51bGx9KTt2YXIgaD1mdW5jdGlvbihjKXt2YXIgYT0kLmV4dGVuZCghMCx7fSx0LGIuZXZlbnREYXRhLFAoKSk7YS5wYWdlSWROb1N1ZmZpeD1hLnBhZ2VJZC5yZXBsYWNlKC86Pyg8KHNpLXN1ZmZpeHxuYW1lcGxhdGV8KT58ZmluYW5jZSBkZXBhcnRtZW50KSQvLCIiKTtjPQpjLnJlcGxhY2UoLzwoW14+XSspPi9pZyxmdW5jdGlvbihlLGwpe3RyeXtzd2l0Y2gobCl7Y2FzZSAicGFnZU5hbWUiOnJldHVybiJkYzoiK2EucGFnZUlkO2Nhc2UgInBhZ2VJZE5vU3VmZml4IjpyZXR1cm4gYS5wYWdlSWROb1N1ZmZpeDtjYXNlICJzZWN0aW9uIjp2YXIgZj1hLnBhZ2VJZDtpZigvXnNlcnZpY2U6Ly50ZXN0KGYpKXJldHVybi90aXJlcy8udGVzdChmKT8ic2VydmljZSBhbmQgdGlyZXMiOiJzZXJ2aWNlIGFuZCBwYXJ0cyI7MDxmLmluZGV4T2YoIjoiKSYmKGY9Zi5zcGxpdCgiOiIpWzBdKTtyZXR1cm4gZjtjYXNlICJwYWdlSWQiOmNhc2UgInBhZ2VpZCI6cmV0dXJuIGEucGFnZUlkO2Nhc2UgImNrc1Zpc2l0SWQiOnZhciBnPW5ldyBEYXRlLHI9bmV3IERhdGUoZy5nZXRGdWxsWWVhcigpLGcuZ2V0TW9udGgoKSxnLmdldERhdGUoKSwwLDAsMCksbj1NYXRoLnJvdW5kKDEwMCpNYXRoLnJhbmRvbSgpKSxrPWcudG9JU09TdHJpbmcoKS5tYXRjaCgvXGR7Mn0oXGR7Mn0pLShcZHsyfSktKFxkezJ9KS8pLApwPW4rMUU5KzEwMCooZy5nZXRUaW1lKCktci5nZXRUaW1lKCkpLHY9ay5zbGljZSgxLDQpLmpvaW4oIiIpO3JldHVybiB2KyJfZGNfIitwO2Nhc2UgInZpblJlYWwiOnJldHVybigiIithLnZpbikudG9Mb3dlckNhc2UoKTtjYXNlICJtb2RlbFllYXIiOnZhciBDPXBhcnNlSW50KGEueWVhcik7cmV0dXJuIDA8Qz9DOiIhIVVOREVGISEiO2Nhc2UgIm5hbWVwbGF0ZSI6dmFyIHU9YS5tYWtlLHc9YS5tb2RlbDt3PSgiIithLm1vZGVsKS5yZXBsYWNlKCJfIiwiICIsdyk7cmV0dXJuIHUmJncmJiJicmFuZCIhPXUudG9Mb3dlckNhc2UoKT8odSsiICIrdykudG9Mb3dlckNhc2UoKToiISFVTkRFRiEhIjtjYXNlICJvbmNsaWNrTGlua05hbWUiOmlmKGEuaXNDbGlja1RvQ2FsbClyZXR1cm5gZGM6JHthLnBhZ2VJZH06Y2xpY2stdG8tY2FsbGA7aWYoYS5wYWdlSWQubWF0Y2goLzpzaTp2ZWhpY2xlIGRldGFpbHMvKSYmInBheW1lbnQgZXN0aW1hdG9yIj09PWEuY29udGVudEZsYWcpcmV0dXJuImRjOiIrCmEuc2lUeXBlKyI6c2k6dmVoaWNsZSBkZXRhaWxzOnBheW1lbnQgZXN0aW1hdG9yOmNvbnRlbnQgYWN0aW9uOjxuYW1lcGxhdGU+IjtpZihhLnBhZ2VJZC5tYXRjaCgvZmluYW5jZTpmaW5hbmNlIGRlcGFydG1lbnQvKSYmImdldCBhcHByb3ZlZCI9PT1hLmNvbnRlbnRGbGFnKXJldHVybiJkYzpmaW5hbmNlOmZpbmFuY2UgZGVwYXJ0bWVudDpjb250ZW50OmFjdGlvbiI7aWYoYS5wYWdlSWQubWF0Y2goL3NwZWNpYWxzOm9mZmVycy8pJiZhLmNvbnRlbnRGbGFnLm1hdGNoKC9vZmZlciBjbGljay8pKXJldHVybiJkYzpzcGVjaWFsczpvZmZlcnM6Y29udGVudDphY3Rpb24iO2lmKGEuaGFzT3duUHJvcGVydHkoImNvbnRlbnRGbGFnIikmJmEuY29udGVudEZsYWcubWF0Y2goL2Jyb2NodXJlIGRvd25sb2FkLykpcmV0dXJuYGRjOiR7YS5wYWdlSWROb1N1ZmZpeH06ZG93bmxvYWRgO3A9IiI7YS5wYWdlSWQubWF0Y2goLzpzaTovKSYmKHA9IjxzaS1zdWZmaXg+Iik7cmV0dXJuImRjOiIrYS5wYWdlSWROb1N1ZmZpeCsKIjpjb250ZW50OmFjdGlvbiIrcDtjYXNlICJvbmNsaWNrIjpjb25zb2xlLmxvZygiRDJGVCB0cmFja1Byb3A1IEEiLGwsYS5wYWdlSWQsYSk7aWYoYS5pc0NsaWNrVG9DYWxsKXt2YXIgbT0ic2FsZXMiO3N3aXRjaChhLmRlcHQpe2Nhc2UgIlVTRUQiOmNhc2UgIk5FVyI6bT0ic2FsZXMiO2JyZWFrO2Nhc2UgIlBBUlRTIjpjYXNlICJTRVJWSUNFIjptPWEuZGVwdC50b0xvd2VyQ2FzZSgpfXJldHVybiBhLnBhZ2VJZCsiOmNsaWNrLXRvLWNhbGw6IittfXJldHVybiBhLmhhc093blByb3BlcnR5KCJjb250ZW50RmxhZyIpPyhtPSJjb250ZW50OiIsL3NpOnZsc3x2ZWhpY2xlIGRldGFpbHMvLnRlc3QoYS5wYWdlSWQpJiYobT0iIiksLzpmaW5hbmNlIGRlcGFydG1lbnQvLnRlc3QoYS5wYWdlSWQpPyJkYzpmaW5hbmNlOiBmaW5hbmNlIGRlcGFydG1lbnQ6Y29udGVudDpnZXQgYXBwcm92ZWQiOmEucGFnZUlkLm1hdGNoKC9ldiAoY2hhcmdpbmd8bGlmZXN0eWxlfG93bmVyc2hpcHx2aHApLyk\/CmEuY29udGVudEZsYWcubWF0Y2goL2Jyb2NodXJlIGRvd25sb2FkLyk\/YS5wYWdlSWQrIjpicm9jaHVyZSBkb3dubG9hZDo8YnJvY2h1cmVOYW1lPiI6YS5jb250ZW50RmxhZy5tYXRjaCgvY2hhcmdpbmcgdXBkYXRlcy8pPyI8cHJlZml4PiIrYS5wYWdlSWQrIjpnZXQgdXBkYXRlcyI6YS5wYWdlSWQubWF0Y2goL2V2IGxpZmVzdHlsZS8pfHxhLnBhZ2VJZC5tYXRjaCgvZXYgY2hhcmdpbmcvKT9hLmNvbnRlbnRGbGFnLm1hdGNoKC9leHBsb3JlIChmMTUwfG1hY2gpLyk\/IjxwcmVmaXg+OmV2IGxpZmVzdHlsZTp0ZXN0IGRyaXZlIjphLnBhZ2VJZCsiOmNvbnRlbnQ6IithLmNvbnRlbnRGbGFnOmEucGFnZUlkKyI6Y29udGVudDpyZWFkIGFydGljbGUiOmEucGFnZUlkTm9TdWZmaXgrIjoiK20raChhLmNvbnRlbnRGbGFnKSk6YS5pc0dsb2JhbD9hLnBhZ2VJZE5vU3VmZml4KyI6PGNvbnRlbnQtYWN0aW9uPiI6IiEhVU5ERUYhISI7Y2FzZSAicGFnZW5hbWUtbm8tdmVoaWNsZSI6dmFyIHk9CkkucGFnZUlkO3k9eS5yZXBsYWNlKC86PzwobmFtZXBsYXRlfHNpLXN1ZmZpeCk+JC8sIiIpO3JldHVybiJkYzoiK2goeSk7Y2FzZSAidG9vbCI6cmV0dXJuIGEuaXNDbGlja1RvQ2FsbD8iZXZlbnQ6Y2xpY2sgdG8gY2FsbCI6InNwZWNpYWxzOm9mZmVycyI9PWEucGFnZUlkPyJldmVudDppbmNlbnRpdmUgdmlld3MiOiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuc3RlcCYmMT09YS5zdGVwPyJnZXQgcHJlLWFwcHJvdmVkIjoiISFVTkRFRiEhIjtjYXNlICJ0b29sRGVzY3JpcHRvciI6cmV0dXJuIGEuaXNDbGlja1RvQ2FsbD8obT0iZ2xvYmFsIiwvc2k6dmVoaWNsZSBkZXRhaWxzLy50ZXN0KGEucGFnZUlkKSYmKG09InZlaGljbGUgZGV0YWlscyIpLCJjbGljayB0byBjYWxsOiIrbSk6InVuZGVmaW5lZCIhPT10eXBlb2YgYS5zdGVwJiYxPT1hLnN0ZXA\/ImdldCBwcmUtYXBwcm92ZWQ6c3RhcnRlZCI6InNwZWNpYWxzOm9mZmVycyI9PWEucGFnZUlkPyJpbmNlbnRpdmUgdmlld3M6b2ZmZXJzIjoKIiEhVU5ERUYhISI7Y2FzZSAiaG91cnMtZGVwYXJ0bWVudCI6c3dpdGNoKCgiIithLmRlcHQpLnRvTG93ZXJDYXNlKCkpe2Nhc2UgInVzZWQiOmNhc2UgIm5ldyI6cmV0dXJuInNhbGVzIjtjYXNlICJwYXJ0cyI6Y2FzZSAic2VydmljZSI6cmV0dXJuInNlcnZpY2UgYW5kIHBhcnRzIn1icmVhaztjYXNlICJvZmZlci1uYW1lIjpyZXR1cm4gYS5pc09FTVJlYmF0ZT8icmViYXRlIjoidW5rbm93biI7Y2FzZSAicHJvbW8tbmFtZSI6bT0kKGEuZWxlbWVudCkuY2xvc2VzdCgiLnByb21vcyIpO3ZhciBxPSIiO20ubGVuZ3RoJiYocT0kKCIucHJvbW8tdGl0bGUiLG0pLnRleHQoKSk7cmV0dXJuIiIhPXE\/IjoiK3E6IiI7Y2FzZSAic2ktZmlsdGVyLXR5cGUiOmNhc2UgInNpLXR5cGUiOnJldHVybiBhLnNhbGVzRGVwdCYmIS9zaTp2bHMvLnRlc3QoYS5wYWdlSWQpJiYib3RoZXIiIT1hLnNhbGVzRGVwdD9hLnNhbGVzRGVwdDp0LnNpVHlwZTtjYXNlICJzdGVwLW51bWJlciI6dmFyIE09YS5zdGVwPwpwYXJzZUludChhLnN0ZXApOjA7cmV0dXJuL2ZpbmFuY2UvLnRlc3QoYS5wYWdlSWQpJiYxPT1NPyIxOmN1c3RvbWVyIGluZm8iOk07Y2FzZSAic2ktZmlsdGVyLWRldGFpbCI6cmV0dXJuIHY9ImZpbHRlciIscD0iIiwidW5kZWZpbmVkIiE9dHlwZW9mIGEuZmlsdGVyVHlwZSYmKCJTb3J0Ij09YS5maWx0ZXJUeXBlPyh2PSJzb3J0IGJ5IixwPSgiIithLmZpbHRlckRldGFpbCkucmVwbGFjZSgvXFcrL2csIiAiKSk6KHA9KCIiK2EuZmlsdGVyVHlwZSkucmVwbGFjZSgvXFcrL2csIiAiKSwiQ2FyYnVyYW50Ij09cCYmKHA9ImZ1ZWwiKSkpLCJ1bmRlZmluZWQiIT1wJiYocD0iOiIrcCksKHYrcCkudG9Mb3dlckNhc2UoKTtjYXNlICJzaS1zb3J0LXR5cGUiOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgYS5idG5WYWx1ZSlyZXR1cm4iIjtzd2l0Y2goYS5idG5WYWx1ZSl7Y2FzZSAxOnJldHVybiJwcmljZS1hc2MiO2Nhc2UgMjpyZXR1cm4icHJpY2UtZGVzYyI7Y2FzZSAzOnJldHVybiJtaWxlYWdlLWFzYyI7CmNhc2UgNDpyZXR1cm4ibWlsZWFnZS1kZXNjIjtjYXNlIDU6cmV0dXJuInllYXItYXNjIjtjYXNlIDY6cmV0dXJuInllYXItZGVzYyI7Y2FzZSA3OnJldHVybiJicmFuZCI7Y2FzZSA4OnJldHVybiJob3VzZS1icmFuZCI7Y2FzZSA5OnJldHVybiJhcnJpdmFsLWFzYyI7Y2FzZSAxMDpyZXR1cm4iYXJyaXZhbC1kZXNjIn1icmVhaztjYXNlICJ2ZHAtY3RhLWJ0bi10aXRsZSI6dmFyIE49YS5idXR0b25UZXh0O3JldHVybiBOP049Ti5yZXBsYWNlKC9bXmEtejAtOVxzLV0vaWcsIiIpLnRyaW0oKS5yZXBsYWNlKC9ccysvZywiLSIpLnRvTG93ZXJDYXNlKCk6IiI7Y2FzZSAic2ktc3VmZml4IjpyZXR1cm4gdT1hLm1ha2Usdz1hLm1vZGVsLHUmJnc\/IjoiKyh1KyIgIit3KS50b0xvd2VyQ2FzZSgpOiIiO2Nhc2UgInNpLWNhdGVnb3J5Ijp2YXIgRD1hLnZlaGljbGVDYXRlZ29yeTtyZXR1cm4gRCYmIjAiIT1EPygiOiIrRCkudG9Mb3dlckNhc2UoKToiIjtjYXNlICJzZWFyY2hEZXB0aCI6cmV0dXJuIG51bGw7CmNhc2UgInBhZ2VMb2FkTGVhZFR5cGUiOnJldHVybi86c2k6dmVoaWNsZSBkZXRhaWxzLy50ZXN0KGEucGFnZUlkKT8ic2k6dmxzIjoiISFVTkRFRiEhIjtjYXNlICJwYWdlTG9hZEV2ZW50IjpyZXR1cm4vOnNpOi8udGVzdChhLnBhZ2VJZCk\/InNlYXJjaCBpbnZlbnRvcnkiOi9zcGVjaWFscy8udGVzdChhLnBhZ2VJZCk\/ImluY2VudGl2ZSB2aWV3cyI6L3Z5dC8udGVzdChhLnBhZ2VJZCk\/InZhbHVlIHlvdXIgdHJhZGUiOiIhIVVOREVGISEiO2Nhc2UgInNpdGVTZWN0aW9uIjpyZXR1cm4vOnNpOi8udGVzdChhLnBhZ2VJZCl8fCJjb21tZXJjaWFsOmhvbWUiPT1hLnBhZ2VJZD8ic2VhcmNoIGludmVudG9yeSI6L3NlcnZpY2UvLnRlc3QoYS5wYWdlSWQpPyJzZXJ2aWNlIGFuZCBwYXJ0cyI6L3NwZWNpYWxzOm9mZmVycy8udGVzdChhLnBhZ2VJZCk\/InNwZWNpYWxzIjovdnl0LXBhZ2VpZC8udGVzdChhLnBhZ2VJZCk\/InZhbHVlIHlvdXIgdHJhZGUiOjA8YS5wYWdlSWROb1N1ZmZpeC5pbmRleE9mKCI6Iik\/CmEucGFnZUlkTm9TdWZmaXguc3BsaXQoIjoiKVswXTphLnBhZ2VJZE5vU3VmZml4O2Nhc2UgImhpZXJhcmNoeSI6LzpzaTp2bHMvLnRlc3QoYS5wYWdlSWQpJiYxPT1hLmlzR2xvYmFsJiYkKGEuZWxlbWVudFswXSkuaGFzQ2xhc3MoImRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikmJihKPWEuZWxlbWVudCk7aWYoLzpzaTovLnRlc3QoYS5wYWdlSWQpKWlmKDA8JCgiI2ZsdENhcm9zc2VyaWVJZCAuZmx0RmlsdGVyIC5kaXZBbGxXcmFwcGVyIHVsLmRpdkJ1dHRvbkJveGVzID4gbGkuc2VsZWN0ZWQiKS5sZW5ndGgpcT0ic2hvcHBpbmcgdG9vbHM6c2VhcmNoIGludmVudG9yeS12bHM8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iO2Vsc2UgcmV0dXJuInNob3BwaW5nIHRvb2xzOnNlYXJjaCBpbnZlbnRvcnktdmxzIjtpZigidmVoaWNsZSI9PWEucGFnZUlkTm9TdWZmaXgpcmV0dXJuInZlaGljbGU6PG1vZGVsWWVhcj48c2ktY2F0ZWdvcnk+OjxuYW1lcGxhdGU+IjsvY29tbWVyY2lhbC8udGVzdChhLnBhZ2VJZCkmJgoocT0iY29tbWVyY2lhbDpob21lIik7aWYoL3NwZWNpYWxzOm9mZmVycy8udGVzdChhLnBhZ2VJZCkpcmV0dXJuInNwZWNpYWxzIjtpZigvdGVzdCBkcml2ZS8udGVzdChhLnBhZ2VJZCkpcmV0dXJuInNob3BwaW5nIHRvb2xzOjxwYWdlSWROb1N1ZmZpeD4iO2lmKC9eZmluYW5jZTovLnRlc3QoYS5wYWdlSWQpKXJldHVybiBhLnBhZ2VJZE5vU3VmZml4O2lmKC9eY3VzdG9tOi8udGVzdChhLnBhZ2VJZCkpcmV0dXJuImN1c3RvbSI7bT0vXnNlcnZpY2U6LztyZXR1cm4gbS50ZXN0KGEucGFnZUlkKT9hLnBhZ2VJZC5yZXBsYWNlKG0sIjxzZWN0aW9uPjoiKTpxP3E6YS5wYWdlSWQ7Y2FzZSAicGF5bWVudC1lc3RpbWF0b3ItaGllcmFyY2h5Ijp2YXIgRT0kKEpbMF0pO0Q9RS5hdHRyKCJkYXRhLWJvZHlUeXBlIik7dT1FLmF0dHIoImRhdGEtbWFrZSIpO3c9RS5hdHRyKCJkYXRhLW1vZGVsIik7dmFyIEY9InNob3BwaW5nIHRvb2xzOnBheW1lbnQgZXN0aW1hdG9yIjtEJiYoRis9IjoiK0QpOwp1JiYoRis9IjoiK3UrIiAiK3cpO3JldHVybiBGLnRvTG93ZXJDYXNlKCk7Y2FzZSAicGF5bWVudC1lc3RpbWF0b3Itc2ktc3VmZml4IjpyZXR1cm4gRT0kKEpbMF0pLHU9RS5hdHRyKCJkYXRhLW1ha2UiKSx3PUUuYXR0cigiZGF0YS1tb2RlbCIpLEY9IiIsdSYmKEYrPSI6Iit1KyIgIit3KSxGLnRvTG93ZXJDYXNlKCk7Y2FzZSAicmFkVUlWZXJzaW9uIjptPSJwYyI7Y29uc3QgSD1kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOzc2OD5IP209Im1vYmlsZSI6OTkyPkgmJihtPSJ0YWJsZXQiKTtyZXR1cm4idWk6cmFkOiIrbTtjYXNlICJ2YXJpYW50TmFtZSI6c3dpdGNoKGEucGFnZUlkKXtjYXNlICJob21lIjpyZXR1cm4iaG9tZS1sb2FkIn1yZXR1cm4vc2k6dmVoaWNsZSBkZXRhaWxzLy50ZXN0KGEucGFnZUlkKT8ic2ktZGV0YWlscy1sb2FkIjovc2k6dmxzLy50ZXN0KGEucGFnZUlkKT8ic2ktcmVzdWx0cy1sb2FkIjovc3BlY2lhbHM6b2ZmZXJzLy50ZXN0KGEucGFnZUlkKT8iaW5jZW50aXZlLXZpZXdzIjoKImdsb2JhbC1sb2FkIjtjYXNlICJnZXQtcHJlLWFwcHJvdmVkLXZhcmlhbnROYW1lIjpyZXR1cm4vZmluYW5jZTovLnRlc3QoYS5wYWdlSWQpJiYxPT1hLnN0ZXA\/ImdldC1wcmUtYXBwcm92ZWQtbG9hZCI6Imdsb2JhbC1vdmVybGF5IjtjYXNlICJjb250ZW50LWFjdGlvbiI6cmV0dXJuIGEuY29udGVudEFjdGlvbj9hLmNvbnRlbnRBY3Rpb246IiI7Y2FzZSAiY3VzdG9tLXRpdGxlIjp2YXIgUT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUubWF0Y2goL1wvKFteL10rKVwuaHRtbCQvKTtyZXR1cm4gUVsxXT9RWzFdOiJjdXN0b20iO2Nhc2UgInNwZWNzLXRvZ2dsZS10eXBlIjpyZXR1cm4gYS5zcGVjc1R5cGV8fCIiO2Nhc2UgInZhbHVlLXRyYWRlLXByZWZpeCI6cmV0dXJuL3ZlaGljbGUgZGV0YWlscy8udGVzdChhLnBhZ2VJZCk\/InZkcCI6L152ZWhpY2xlLy50ZXN0KGEucGFnZUlkKT8idmVoaWNsZSI6Imdsb2JhbCI7Y2FzZSAiZm9ybS1sYWJlbCI6cmV0dXJuIGRlYnVnX2QyZnQubG9nKGEpLAphLmZvcm1MYWJlbDtjYXNlICJleGl0LXR5cGUiOnJldHVybi9maW5hbmNlLy50ZXN0KGEuaHJlZik\/ImRkOmZpbmFuY2UiOi8oY29uZmlndXJlfGJ1aWxkKS8udGVzdChhLmhyZWYpPyJkZDpjb25maWd1cmUiOi9mb3JkYWNjZXNzLy50ZXN0KGEuaHJlZik\/ImRkOnBhcnRzIjphLnBhZ2VJZC5tYXRjaCgvZXYgKGNoYXJnaW5nfGxpZmVzdHlsZXxvd25lcnNoaXB8dmhwKS8pPy9hZmZvcmRhYmlsaXR5Ly50ZXN0KGEuaHJlZik\/ImZ2OmxwOmZ1ZWwgZWZmaWNpZW50OnRlY2hub2xvZ2llczphZmZvcmRhYmlsaXR5IjovY2hhcmdpbmcvLnRlc3QoYS5ocmVmKT8iZnY6bHA6ZnVlbCBlZmZpY2llbnQ6dGVjaG5vbG9naWVzOmhvbWUgY2hhcmdpbmciOiJleGl0IjoiZGQ6IithLmhyZWY7Y2FzZSAiaG9tZXBhZ2UtYmFubmVyLW5hbWVwbGF0ZSI6dmFyIEE9YS5lbGVtZW50LmF0dHIoImhyZWYiKTtyZXR1cm4iIiE9QSYmdm9pZCAwIT09QT8oQT1BLnJlcGxhY2UoIi8iLCIiKSxBPUEucmVwbGFjZSgiLWVuLmh0bWwiLAoiIiksQT1BLnJlcGxhY2UoIi1mci5odG1sIiwiIiksQT1BLnJlcGxhY2UoIi0iLCIgIiksIjoiK0EpOiIiO2Nhc2UgImNvbXBhcmlzb24tbmFtZXBsYXRlIjpyZXR1cm4gYS5jb21wYXJlQ2FyPygiOiIrYS5jb21wYXJlQ2FyKS50b0xvd2VyQ2FzZSgpOmEuZWxlbWVudD8oIjoiK2EuZWxlbWVudC50ZXh0KCkpLnRvTG93ZXJDYXNlKCk6IiI7Y2FzZSAiY29tcGFyaXNvbi10cmltIjpyZXR1cm4gbT0iIiwwPCQoIi50cmltLWxhYmVsIixhLmVsZW1lbnQpLmxlbmd0aCYmKG09JCgiLnRyaW0tbGFiZWwiLGEuZWxlbWVudCkuaHRtbCgpLnRvTG93ZXJDYXNlKCkpLCI6IittO2Nhc2UgInNlbGVjdGVkLW9wdGlvbi12YWx1ZSI6cmV0dXJuIDA8YS5lbGVtZW50Lmxlbmd0aCYmYS5lbGVtZW50LmlzKCJzZWxlY3QiKT9hLmVsZW1lbnQudmFsKCk6IiI7Y2FzZSAic2VsZWN0ZWQtb3B0aW9uLXRleHQiOmlmKDA8YS5lbGVtZW50Lmxlbmd0aCYmYS5lbGVtZW50LmlzKCJzZWxlY3QiKSl7dmFyIFI9CmEuZWxlbWVudC5nZXQoMCk7cmV0dXJuICQoUi5vcHRpb25zW1Iuc2VsZWN0ZWRJbmRleF0pLnRleHQoKS50b0xvd2VyQ2FzZSgpfXJldHVybiIiO2Nhc2UgInZkcC10cmltIjpyZXR1cm4gYS5lbGVtZW50PygiOiIrYS5lbGVtZW50LnRleHQoKSkudG9Mb3dlckNhc2UoKToidW5rbm93biB0cmltIjtjYXNlICJvcGVuX2hvdXJzX29uY2xpY2siOnJldHVybiJhYm91dCB1czpjb250YWN0IHVzIj09YS5wYWdlSWQmJjA8JChhLmVsZW1lbnQpLnBhcmVudHMoIi5tYWluX2JveCIpLmxlbmd0aD9hLnBhZ2VJZCsiOmNvbnRlbnQ6YWNjb3JkaW9uIGV4cGFuZCI6IjxwYWdlaWQ+OmNvbnRlbnQ6PGhvdXJzLWRlcGFydG1lbnQ+IGhvdXJzIjtjYXNlICJ2eXQtcGFnZWlkIjpyZXR1cm4gcD0idmFsdWUgeW91ciB0cmFkZSIsdj0iIixkMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpLGQyY21lZGlhLnVybC5wYXJzZSgpLHYrcDtjYXNlICJ2ZWhpY2xlVHJpbSI6Y2FzZSAidmVoaWNsZUNvbG9yIjpjYXNlICJ2ZWhpY2xlVGFuc21pc3Npb24iOmNhc2UgInZlaGljbGVQcmljZSI6cmV0dXJuInVuZGVmaW5lZCIhPT0KdHlwZW9mIGFbbF0mJjA8YVtsXS5sZW5ndGg\/YVtsXS50b0xvd2VyQ2FzZSgpOiIhIVVOREVGISEiO2Nhc2UgImJyb2NodXJlTmFtZSI6cmV0dXJuIGEuaHJlZi5yZXBsYWNlKC9eLipbXFwvXS8sIiIpLnJlcGxhY2UoL1wucGRmJC8sIiIpfX1jYXRjaChIKXtkZWJ1Z19kMmZ0LmxvZygiUmVwbGFjZXJFcnJvciIsSCl9cmV0dXJuIiEhVU5ERUY6OiIrbCsiISEifSk7cmV0dXJuLzxbXj5dKz4vLnRlc3QoYyk\/aChjKTpjfTtiLmFzeW5jaWZ5PWZ1bmN0aW9uKGMpe3NldFRpbWVvdXQoYywwKX07Yi5oaXQ9ZnVuY3Rpb24oYyl7ZGVidWdfZDJmdC5sb2coImQyYyB0cmFjayIsYyk7ImZ1bmN0aW9uIj09PXR5cGVvZiB3aW5kb3cuX3NhdGVsbGl0ZS50cmFjayYmd2luZG93Ll9zYXRlbGxpdGUudHJhY2soYyl9O2IuY2xlYXJWYXJzPWZ1bmN0aW9uKCl7ZGVidWdfZDJmdC5sb2coIkNsZWFyIF9zYXRlbGxpdGUgdmFyc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIik7dHJ5e3MuY2xlYXJWYXJzKCl9Y2F0Y2goYyl7fX07CmIuc2V0RGlnaXRhbERhdGE9ZnVuY3Rpb24oYyl7ZnVuY3Rpb24gYShnLHIpe3JldHVybiBmdW5jdGlvbihuLGspeyJmdW5jdGlvbiI9PXR5cGVvZiBrJiYoaz1rLmNhbGwoYikpO2dbbl09ZShuLHIsayk7L14hIVVOREVGLy50ZXN0KGdbbl0pJiZkZWxldGUgZ1tuXTtudWxsPT1nW25dJiZkZWxldGUgZ1tuXTsvc3RlcC1udW1iZXIvLnRlc3QoaykmJihHPSEwKX19ZnVuY3Rpb24gZShnLHIsbil7cmV0dXJuIG51bGwhPW4mJjA8bi5sZW5ndGg\/InN0cmluZyIhPXR5cGVvZiBuPyhkZWJ1Z19kMmZ0LmxvZyhuKSxuKTpoKG4pOiJ1bmRlZmluZWQiPT10eXBlb2YgZltnXT9udWxsOiJmdW5jdGlvbiI9PT10eXBlb2YgZltnXT8oZz1mW2ddLmNhbGwoYixuKSwic3RyaW5nIiE9dHlwZW9mIGc\/ZzpoKGcpKToic3RyaW5nIiE9dHlwZW9mIGZbZ10\/ZltnXTpoKGZbZ10pfWIuY2xlYXJWYXJzKCk7dmFyIGw9e307Y3x8KGM9e30pOyQuZXh0ZW5kKCEwLGwsVSxjKTt2YXIgZj17fTskLmV4dGVuZCghMCwKZixiLnN0YXRpY0RhdGEpO2IucGFyc2VFdmVudERhdGEobCk7JC5lYWNoKGwsZnVuY3Rpb24oKXskLmVhY2godGhpcyxhKHRoaXMpKX0pOyEwPT09RyYmKEs9cGFyc2VGbG9hdChLKSsxLEc9ITEpO3dpbmRvdy5kaWdpdGFsZGF0YT1sO2RlYnVnX2QyZnQubG9nKCJEMkZUIEZpbmFsIGRpZ2l0YWwgZGF0YSIsd2luZG93LmRpZ2l0YWxkYXRhKTtPKCl9O2IubG9ja2VkPSExO2IucGxyRmFjdG9yeT1mdW5jdGlvbihjLGEpe3ZhciBlPXtkYXRhOmMsdHlwZTphLGhhbmRsZXI6ZnVuY3Rpb24obCxmKXtmPWY\/Zjp7fTt2YXIgZz0kKHRoaXMpO2IuYXN5bmNpZnkoZnVuY3Rpb24oKXtpZihiLmxvY2tlZClyZXR1cm4gc2V0VGltZW91dChkKGUuaGFuZGxlcixhcmd1bWVudHMpLDUwMCk7Yi5sYXN0RXZlbnQ9JC5leHRlbmQoe30sbCk7Yi5sYXN0RXZlbnQuZGF0YT1mO2IubG9ja2VkPSEwO3ZhciByPXtwYWdlOnt9LHZlaGljbGU6e30sZXZlbnQ6e319OyQuZXh0ZW5kKCEwLHIsZS5kYXRhKTt2YXIgbj0KJC5leHRlbmQoITAse30sQlsiKiJdLEIucG9wdXAsQlt0LnBhZ2VJZF0pO2lmKCJwYWdlbG9hZCI9PWUudHlwZSlyLmV2ZW50LmFjdGlvbj0iPHBhZ2VMb2FkRXZlbnQ+IjtlbHNle3ZhciBrPSExOyQuZWFjaChuLGZ1bmN0aW9uKHAsdil7Zy5pcyhwKSYmKGs9ITAsImZ1bmN0aW9uIj09dHlwZW9mIHYmJih2PXYuY2FsbChiKSwwPT12JiYoaz0hMSkpLGsmJihyPSQuZXh0ZW5kKCEwLHt9LHIsdikpKX0pO2lmKCJwb3B1cCI9PWUudHlwZSYmITE9PT1rKXtiLmNsZWFyVmFycygpO2IubG9ja2VkPSExO3JldHVybn19WCgpO2Iuc2V0RGlnaXRhbERhdGEocik7InBhZ2Vsb2FkIiE9ZS50eXBlJiZ3aW5kb3cuZGlnaXRhbGRhdGEucGFnZS52YXJpYW50TmFtZSYmYi5oaXQod2luZG93LmRpZ2l0YWxkYXRhLnBhZ2UudmFyaWFudE5hbWUpO2IuY2xlYXJWYXJzKCk7Yi5sb2NrZWQ9ITF9KX19O3JldHVybiBlLmhhbmRsZXJ9O2IuZGNyRmFjdG9yeT1mdW5jdGlvbihjLGEpe3ZhciBlPXtkYXRhOmMsCmhhbmRsZXI6ZnVuY3Rpb24obCxmKXtmPWY\/Zjp7fTt2YXIgZz0kKHRoaXMpLHI9ZnVuY3Rpb24oKXtpZihiLmxvY2tlZClyZXR1cm4gc2V0VGltZW91dChkKGUuaGFuZGxlcixhcmd1bWVudHMpLDUwMCk7Yi5sb2NrZWQ9ITA7dmFyIG49ITEsaz1lLmRhdGEscD1udWxsIT1rLnZhcmlhbnROYW1lP2sudmFyaWFudE5hbWU6Imdsb2JhbC1vbmNsaWNrIix2PSQuZXh0ZW5kKCEwLHt9LEJbIioiXSxCW3QucGFnZUlkXSk7JC5lYWNoKHYsZnVuY3Rpb24oeSxxKXtuPWcuaXMoeSk\/ITA6bn0pO2lmKG4mJjE9PWsuaXNHbG9iYWwpcmV0dXJuIGIubG9ja2VkPSExLCEwO2suaXNPRU1SZWJhdGUmJihrLmNvbnRlbnRBY3Rpb249ITAsZi5jb250ZW50RmxhZz0ib2ZmZXIgY2xpY2s6PG9mZmVyLW5hbWU+IixmLmlzT0VNUmViYXRlPSEwKTtpZihrLmlzR2xvYmFsfHxrLmNvbnRlbnRBY3Rpb24pZi5jb250ZW50QWN0aW9uPWsuY29udGVudEFjdGlvbixmLmlzR2xvYmFsPSEwLCQuZWFjaChWLGZ1bmN0aW9uKHksCnEpe2cuaXMoeSkmJihmLmNvbnRlbnRGbGFnPXEsZi5jb250ZW50QWN0aW9uPSEwKX0pO2IubGFzdEV2ZW50PSQuZXh0ZW5kKHt9LGwpO2IubGFzdEV2ZW50LmRhdGE9ZjtiLmxhc3RFdmVudC50YXJnZXRFbGVtZW50PWc7Yi5sYXN0RXZlbnQuY29udGVudEZsYWc9ay5jb250ZW50RmxhZztrLmlzQ2xpY2tUb0NhbGw9Yi5pc0NsaWNrVG9DYWxsKCk7ay5pc0NsaWNrVG9DYWxsJiYoYi5sYXN0RXZlbnQuZGF0YS5pc0NsaWNrVG9DYWxsPWsuaXNDbGlja1RvQ2FsbCxwPSJjbGljay10by1jYWxsIik7dmFyIEM9e29uY2xpY2s6e29uY2xpY2tMaW5rTmFtZToiPG9uY2xpY2tMaW5rTmFtZT4iLG9uY2xpY2s6IjxvbmNsaWNrPiJ9LHBhZ2U6e3ZhcmlhbnROYW1lOnB9fTtpZihrLmlzRXhpdClyZXR1cm4gYi5sb2NrZWQ9ITEsITA7dmFyIHU9ITE7ay5pc1NlYXJjaEZpbHRlciYmJC5leHRlbmQoITAsQyx7b25jbGljazp7b25jbGljazoiPHNpLWZpbHRlci10eXBlPjpzaTp2bHM6PHNpLWZpbHRlci1kZXRhaWw+IiwKb25jbGlja0xpbmtOYW1lOiJkYzo8c2ktdHlwZT46c2k6dmxzOmNvbnRlbnQ6YWN0aW9uPHNpLXN1ZmZpeD4ifX0pO2lmKGsuaXNGb3JtU3VibWl0KXt2YXIgdz0hMSxtPXt1c2VyOntja3NWaXNpdElkOiI8Y2tzVmlzaXRJZD4ifSxvbmNsaWNrOntvbmNsaWNrTGlua05hbWU6bnVsbCxvbmNsaWNrOm51bGx9LGV2ZW50OnthY3Rpb246ImxlYWQgc3VibWl0dGVkIn19OyQuZWFjaChXLGZ1bmN0aW9uKHkscSl7dHJ5eyhuZXcgUmVnRXhwKHksImkiKSkudGVzdChmLm1haWxJRCkmJih3PSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBxPyQuZXh0ZW5kKCEwLG0scS5jYWxsKGIsYi5sYXN0RXZlbnQsayxmLGcpKTokLmV4dGVuZCghMCxtLHEpKX1jYXRjaChNKXtkZWJ1Z19kMmZ0LmxvZygiSW52YWxpZCBydWxlICIreSl9fSk7JC5leHRlbmQoITAsQyxtKTt1PSF3O0s9MDtHPSExfSQuZWFjaCh2LGZ1bmN0aW9uKHkscSl7Zy5pcyh5KT8ocS5wYWdlJiZxLnBhZ2UudmFyaWFudE5hbWUmJihwPXEucGFnZS52YXJpYW50TmFtZSksCnEuaWdub3JlJiYodT0hMCksQz0kLmV4dGVuZCghMCx7fSxDLHEpKToiLmJ1eV9ub3dfY2FyZF9jdGEiPT15JiYoZi5jb250ZW50QWN0aW9uPSJidXkgbm93Iil9KTtpZih1KXJldHVybiBiLmxvY2tlZD0hMSwhMDtiLnNldERpZ2l0YWxEYXRhKEMpO2lmKGsuaXNHbG9iYWwmJiFrLmlzQ2xpY2tUb0NhbGwmJiFmLmNvbnRlbnRBY3Rpb24pcmV0dXJuIGIubG9ja2VkPSExLCEwO2IuaGl0KHdpbmRvdy5kaWdpdGFsZGF0YS5wYWdlLnZhcmlhbnROYW1lKTtiLmxvY2tlZD0hMTtyZXR1cm4hMH07YT9iLmFzeW5jaWZ5KHIpOnIoKX19O3JldHVybiBlLmhhbmRsZXJ9O2IuZXhpdEZhY3Rvcnk9ZnVuY3Rpb24oYyl7dmFyIGE9e2RhdGE6YyxoYW5kbGVyOmZ1bmN0aW9uKGUsbCl7dmFyIGY9JCh0aGlzKTtsPXt9O3ZhciBnPWEuZGF0YSxyPXI\/cjp7fTtiLmxhc3RFdmVudD1lO2IubGFzdEV2ZW50LmRhdGE9cjtiLmxhc3RFdmVudC50YXJnZXRFbGVtZW50PWY7Yi5sYXN0RXZlbnQuY29udGVudEZsYWc9CmcuY29udGVudEZsYWc7ZT1mLmF0dHIoImhyZWYiKTtyPS9odHRwKD86cz8pOlwvXC9bXi9dKmZvcmQoPzphY2Nlc3MpP1wuKD86Y2F8Y29tKS87ZSYmci50ZXN0KGUpJiYoYi5sYXN0RXZlbnQuZGF0YS5ocmVmPWUsbD0kLmV4dGVuZCghMCx7fSxsLHtwYWdlOnt2YXJpYW50TmFtZToicmVmZXJyYWwtZXhpdCJ9LG9uY2xpY2s6e29uY2xpY2s6InJlZmVycmFsOjxleGl0LXR5cGU+IixvbmNsaWNrTGlua05hbWU6InJlZmVycmFsOmV4aXQifSx2ZWhpY2xlOnttb2RlbFllYXI6Ijxtb2RlbFllYXI+IixuYW1lcGxhdGU6IjxuYW1lcGxhdGU+In0sdXNlcjp7Y2tzVmlzaXRJZDoiPGNrc1Zpc2l0SWQ+In0sZXZlbnQ6e2FjdGlvbjoiYnJhbmQgcmVmZXJyYWwifX0pLGIuc2V0RGlnaXRhbERhdGEobCksYi5oaXQod2luZG93LmRpZ2l0YWxkYXRhLnBhZ2UudmFyaWFudE5hbWUpKX19O3JldHVybiBhLmhhbmRsZXJ9O2IuaXNDbGlja1RvQ2FsbD1mdW5jdGlvbigpe3ZhciBjPSIiK2IubGFzdEV2ZW50LnRhcmdldEVsZW1lbnQuYXR0cigiaHJlZiIpOwpyZXR1cm4vdGVsOi8udGVzdChjKT8hMDohMX07Yi5wYXJzZUV2ZW50RGF0YT1mdW5jdGlvbihjKXtjPWIubGFzdEV2ZW50LnRhcmdldEVsZW1lbnQ7Yi5ldmVudERhdGE9e307aWYoIWIubGFzdEV2ZW50KXJldHVybiExO2lmKG51bGwhPWMpe2IuZXZlbnREYXRhLmVsZW1lbnQ9Yzt2YXIgYT1jLmRhdGEoKTthJiYoYS5ib2R5dHlwZSYmKGEuYm9keVR5cGV8fChhLmJvZHlUeXBlPWEuYm9keXR5cGUpLGEudmVoaWNsZUNhdGVnb3J5fHwoYS52ZWhpY2xlQ2F0ZWdvcnk9YS5ib2R5dHlwZSksZGVsZXRlIGEuYm9keXR5cGUpLCQuZXh0ZW5kKCEwLGIuZXZlbnREYXRhLGEpKTthPSIiK2MuYXR0cigiaHJlZiIpO2IuZXZlbnREYXRhLmhyZWY9YTskLmV4dGVuZCghMCxiLmV2ZW50RGF0YSxZKGEpKTskcD1jLnBhcmVudHMoIi5mbHRCb3giKTswPCRwLmxlbmd0aCYmKGIuZXZlbnREYXRhLmZpbHRlclR5cGU9Yi5yZXNvbHZlRmlsdGVyVHlwZSgkcFswXSkpfSQuZXh0ZW5kKCEwLGIuZXZlbnREYXRhLApQKCkpO2IubGFzdEV2ZW50LmRhdGEmJigkLmV4dGVuZCghMCxiLmV2ZW50RGF0YSxiLmxhc3RFdmVudC5kYXRhKSwidW5kZWZpbmVkIiE9dHlwZW9mIGIuZXZlbnREYXRhLmJvZHlUeXBlJiYoYz0iIitiLmV2ZW50RGF0YS5ib2R5VHlwZSwvXkJPRFlUWVBFXy8udGVzdChjKSYmKGIuZXZlbnREYXRhLnZlaGljbGVDYXRlZ29yeT1jLnN1YnN0cmluZyg5KS50b0xvd2VyQ2FzZSgpLCJ2YW4iPT1iLmV2ZW50RGF0YS52ZWhpY2xlQ2F0ZWdvcnkmJihiLmV2ZW50RGF0YS52ZWhpY2xlQ2F0ZWdvcnk9Im1pbml2YW4iKSkpKTtiLmxhc3RFdmVudD0hMX07Yi5yZXNvbHZlRmlsdGVyVHlwZT1mdW5jdGlvbihjKXtzd2l0Y2goJChjKS5wcm9wKCJpZCIpKXtjYXNlICJmbHRUZXh0U2VhcmNoSWQiOnJldHVybiJzZWFyY2giO2Nhc2UgImZsdENhdGVnb3JpZUlkIjpyZXR1cm4iY2F0ZWdvcnkiO2Nhc2UgImZsdENlcnRpZmllZElkIjpyZXR1cm4iY2VydGlmaWVkIjtjYXNlICJmbHRDYXJvc3NlcmllSWQiOnJldHVybiJib2R5IHR5cGUiOwpjYXNlICJmbHRDYXJidXJhbnRJZCI6cmV0dXJuImZ1ZWwiO2Nhc2UgImZsdFByaWNlSWQiOnJldHVybiJwcmljZSI7Y2FzZSAiZmx0TWFrZUlkIjpyZXR1cm4ibWFrZSI7Y2FzZSAiZmx0TW9kZWxJZCI6cmV0dXJuIm1vZGVsIjtjYXNlICJmbHRUcmltc0lkIjpyZXR1cm4idHJpbSI7Y2FzZSAiZmx0WWVhcklkIjpyZXR1cm4ieWVhciI7Y2FzZSAiZmx0S21JZCI6cmV0dXJuIm1pbGVhZ2UiO2Nhc2UgImZsdENvbG9ySWQiOnJldHVybiJjb2xvciI7Y2FzZSAiZmx0VHJhbnNtaXNzaW9uSWQiOnJldHVybiJ0cmFuc21pc3Npb24iO2Nhc2UgImZsdE9wdGlvbklkIjpyZXR1cm4ib3B0aW9ucyI7Y2FzZSAiZmx0QXJyaXZhbHNJZCI6cmV0dXJuInRpbWUifXJldHVybiJvdGhlciJ9O2IucmVzb2x2ZVZhbHVlWW91clRyYWRlVGhhbmtZb3U9ZnVuY3Rpb24oYyxhLGUsbCl7YT0hMTt2YXIgZj1sPSJnbG9iYWwiO2M9dGhpcy5zdGF0aWNEYXRhLnBhZ2VJZDt2YXIgZz0hMTtlLnBvcHVwRGl2JiYKKGU9JCgiIyIrZS5wb3B1cERpdiksMDxlLmxlbmd0aCYmZS5pcygiLnJldmVhbC1tb2RhbCIpJiYoZz1lKSk7ZyYmKGU9Zy5wb3B1cGl6ZSgpLnNldHRpbmdzLnBvcHVwRXZlbnRTb3VyY2UsYT0vYmFubmVyfHRyYWRlaW5iYXIvLnRlc3QoZSkpO2F8fCgvOnZlaGljbGUgZGV0YWlscy8udGVzdChjKT8obD0idmVoaWNsZSBkZXRhaWxzIixmPSJ2ZHAiKTpmPWw9InZlaGljbGUiKTtlPXtwYWdlOntzaXRlU2VjdGlvbjoiPHNpdGVTZWN0aW9uPiIsaGllcmFyY2h5OiJzaG9wcGluZyB0b29sczp2YWx1ZSB5b3VyIHRyYWRlPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdSIsdmFyaWFudE5hbWU6InZhbHVlLXlvdXItdHJhZGUtc3VibWl0Iix0b29sOiJldmVudDp2YWx1ZSB5b3VyIHRyYWRlIiwKdG9vbERlc2NyaXB0b3I6bCsiOnZhbHVlIHlvdXIgdHJhZGUifSx1c2VyOntsZWFkVHlwZTpmKyI6dmFsdWUgeW91ciB0cmFkZSJ9fTsiPHNpLXR5cGU+OnNpOnZlaGljbGUgZGV0YWlsczxzaS1zdWZmaXg+Ij09YyYmJC5leHRlbmQoITAsZSx7cGFnZTp7aGllcmFyY2h5OiJzaG9wcGluZyB0b29sczp2YWx1ZSB5b3VyIHRyYWRlPHNpLWNhdGVnb3J5PjxzaS1zdWZmaXg+IixwYWdlTmFtZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6PHBhZ2VJZE5vU3VmZml4Pjp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdSIsdG9vbDoiZXZlbnQ6dmFsdWUgeW91ciB0cmFkZSIsdG9vbERlc2NyaXB0b3I6InZlaGljbGUgZGV0YWlsczp2YWx1ZSB5b3VyIHRyYWRlIn0sdXNlcjp7bGVhZFR5cGU6InZkcDp2YWx1ZSB5b3VyIHRyYWRlIn19KTsiPHZ5dC1wYWdlaWQ+Ij09YyYmJC5leHRlbmQoITAsCmUse3BhZ2U6e3BhZ2VOYW1lOiJkYzp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IixwYWdlTmFtZU5vVmVoaWNsZToiZGM6dmFsdWUgeW91ciB0cmFkZTp0aGFuayB5b3UiLHNpdGVTZWN0aW9uOiJ2YWx1ZSB5b3VyIHRyYWRlIixoaWVyYXJjaHk6InZhbHVlIHlvdXIgdHJhZGUiLHRvb2w6ImV2ZW50OnZhbHVlIHlvdXIgdHJhZGUiLHRvb2xEZXNjcmlwdG9yOiJ2YWx1ZSB5b3VyIHRyYWRlIn0sdXNlcjp7bGVhZFR5cGU6InZhbHVlIHlvdXIgdHJhZGUifX0pOyJ2YWx1ZSB5b3VyIHRyYWRlIj09YyYmJC5leHRlbmQoITAsZSx7cGFnZTp7cGFnZU5hbWU6ImRjOnZhbHVlIHlvdXIgdHJhZGU6dGhhbmsgeW91PHNpLXN1ZmZpeD4iLHBhZ2VOYW1lTm9WZWhpY2xlOiJkYzp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdSJ9fSk7YSYmJC5leHRlbmQoITAsZSx7cGFnZTp7c2l0ZVNlY3Rpb246Imdsb2JhbCIscGFnZU5hbWU6ImRjOmdsb2JhbDp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdTxzaS1zdWZmaXg+IiwKcGFnZU5hbWVOb1ZlaGljbGU6ImRjOmdsb2JhbDp2YWx1ZSB5b3VyIHRyYWRlOnRoYW5rIHlvdSJ9LHVzZXI6e2xlYWRUeXBlOiJnbG9iYWw6dmFsdWUgeW91ciB0cmFkZSJ9fSk7cmV0dXJuIGV9O2IucmVzb2x2ZVByZUFwcHJvdmFsVmFycz1mdW5jdGlvbihjLGEpe3ZhciBlPSJob21lIjtzd2l0Y2godC5wYWdlSWQpe2Nhc2UgIjxzaS10eXBlPjpzaTp2bHM8c2ktc3VmZml4PiI6ZT0ic2VhcmNoIjticmVhaztjYXNlICJ2ZWhpY2xlOjxuYW1lcGxhdGU+IjplPSJ2ZHBfbmV3IjticmVhaztjYXNlICI8c2ktdHlwZT46c2k6dmVoaWNsZSBkZXRhaWxzPHNpLXN1ZmZpeD4iOmU9InZkcF91c2VkIjticmVhaztjYXNlICJmaW5hbmNlOmZpbmFuY2UgZGVwYXJ0bWVudCI6ZT0iZmluYW5jZSJ9c3dpdGNoKGEpe2Nhc2UgImhpZXJhcmNoeSI6c3dpdGNoKGUpe2Nhc2UgImZpbmFuY2UiOnJldHVybiJmaW5hbmNlIjtjYXNlICJob21lIjpyZXR1cm4iPHNlY3Rpb24+OmdldCBwcmVhcHByb3ZlZCI7CmNhc2UgInNlYXJjaCI6Y2FzZSAidmRwX25ldyI6Y2FzZSAidmRwX3VzZWQiOnJldHVybiJzaG9wcGluZyB0b29sczpnZXQgcHJlYXBwcm92ZWQ8c2ktY2F0ZWdvcnk+PHNpLXN1ZmZpeD4iO2RlZmF1bHQ6cmV0dXJuIjxzZWN0aW9uPiJ9Y2FzZSAicGFnZU5hbWUiOmNhc2UgInBhZ2VOYW1lTm9WZWhpY2xlIjpzd2l0Y2goYyl7Y2FzZSAiZm9ybS1zdGVwIjpyZXR1cm4iZGM6PHBhZ2VJZE5vU3VmZml4PjpnZXQgcHJlLWFwcHJvdmVkOjxzdGVwLW51bWJlcj4iO2Nhc2UgImZvcm0tc3VibWl0IjpyZXR1cm4iZGM6PHBhZ2VJZE5vU3VmZml4PjpnZXQgcHJlLWFwcHJvdmVkOnRoYW5rIHlvdSJ9fX07cmV0dXJuIGJ9O08oKTskKHgucGxyRmFjdG9yeSh7fSwicGFnZWxvYWQiKSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoZnVuY3Rpb24oKXt2YXIgZD0kLmV4dGVuZCghMCxCWyIqIl0sQlt0LnBhZ2VJZF0\/Qlt0LnBhZ2VJZF06e30pOyQuZWFjaChkLGZ1bmN0aW9uKGIsaCl7JChiKS5vbigiY2xpY2siLAp4LmRjckZhY3RvcnkoaCkpfSwhMSk7JCgiYm9keSIpLm9uKCJjbGljayIsImEiLHguZGNyRmFjdG9yeSh7aXNHbG9iYWw6ITB9LCExKSk7JCgiYm9keSIpLm9uKCJjbGljayIsImEiLHguZXhpdEZhY3Rvcnkoe30sITEpKTskKCJib2R5Iikub24oImNsaWNrIiwiYnV0dG9uIix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwfSwhMSkpOyQoImJvZHkiKS5vbigiY2hhbmdlIiwic2VsZWN0Iix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwLGlzU2VsZWN0Q2hhbmdlOiEwfSwhMSkpOyQoImJvZHkiKS5vbigiZW1haWxIYW5kbGVyLnN1Ym1pdCIseC5kY3JGYWN0b3J5KHtpc0Zvcm1TdWJtaXQ6ITAsdmFyaWFudE5hbWU6ImZvcm0tc3VibWl0In0sITApKTskKGRvY3VtZW50KS5vbigiaW52ZW50b3J5U2VhcmNoLmZpbHRlciIsImJvZHkiLHguZGNyRmFjdG9yeSh7aXNTZWFyY2hGaWx0ZXI6ITB9LCEwKSk7JChkb2N1bWVudCkub24oInBheW1lbnRDYWxjdWxhdG9yLmNsaWNrIiwiZGl2Iix4LmRjckZhY3Rvcnkoe2lzR2xvYmFsOiEwfSwKITEpKTskKGRvY3VtZW50KS5vbigib2VtX3JlYmF0ZS5jbGljayIsIi5wcm9tby1jYXJkLW9lbSIseC5kY3JGYWN0b3J5KHtpc09FTVJlYmF0ZTohMH0sITEpKTskKCJib2R5Iikub24oImNsaWNrIiwibGkiLHguZGNyRmFjdG9yeSh7aXNHbG9iYWw6ITB9LCExKSk7JChkb2N1bWVudCkub24oImZvcm0uc3RlcCIsIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIix4LnBsckZhY3Rvcnkoe3BhZ2U6e2hpZXJhcmNoeTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3RlcCIsImhpZXJhcmNoeSIpfSxwYWdlTmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJlc29sdmVQcmVBcHByb3ZhbFZhcnMoImZvcm0tc3RlcCIsInBhZ2VOYW1lIil9LHBhZ2VOYW1lTm9WZWhpY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVzb2x2ZVByZUFwcHJvdmFsVmFycygiZm9ybS1zdGVwIiwicGFnZU5hbWVOb1ZlaGljbGUiKX0sdmFyaWFudE5hbWU6IjxnZXQtcHJlLWFwcHJvdmVkLXZhcmlhbnROYW1lPiIsCnRvb2w6Ijx0b29sPiIsdG9vbERlc2NyaXB0b3I6Ijx0b29sRGVzY3JpcHRvcj4ifX0sImZvcm0tc3RlcCIpKTskKCIucmV2ZWFsLW1vZGFsIikub25lKCJwb3B1cGl6ZXIub25PcGVuIix4LnBsckZhY3Rvcnkoe3BhZ2U6e3ZhcmlhbnROYW1lOiJnbG9iYWwtb3ZlcmxheSJ9fSwicG9wdXAiKSl9KX0sMjUwKTt3aW5kb3cuZDJmdD14fTsKLyoqIC9tL2pzL2QyY19hc2NfZ2E0LmpzICoqLwp2YXIgX19fZDJjX2QyY2FzY2dhNGpzX2Nfb249IjIwMjYtMDUtMjggMTI6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgYXNjVG9wQ2FyRGV0YWlscz0hMSxhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD0hMSxhc2NMYXN0RmlsdGVyQ2xpY2s9ITEsYXNjTGFzdEN0YUNsaWNrPSExLGFzY0NvbW1TdGFydEZpcmVkPSExO2Z1bmN0aW9uIGQyYXNjUHVibGljYXRpb25EYXRlKGQpe2lmKCIiPT1kKXJldHVybiIiO3ZhciBoPW5ldyBEYXRlKGQpO2Q9IiIrKGguZ2V0TW9udGgoKSsxKTt2YXIgaz0iIitoLmdldERhdGUoKTtoPWguZ2V0RnVsbFllYXIoKTsxMD5wYXJzZUZsb2F0KGQpJiYoZD0iMCIrZCk7MTA+cGFyc2VGbG9hdChrKSYmKGs9IjAiK2spO3JldHVybltkLGssaF0uam9pbigiLyIpfWZ1bmN0aW9uIGVuc3VyZVRydXRoeShkKXtyZXR1cm4gZD9kOiIifQpmdW5jdGlvbiBhc2NVcGRhdGVUb3BDYXJEYXRhKGQpe2lmKCExIT09ZCl7bGV0IGg9ZDJhc2NQdWJsaWNhdGlvbkRhdGUoZW5zdXJlVHJ1dGh5KGQuZGF0ZV9saXN0aW5nKSksaz1kLm1ha2VjZXJ0KyIiO2FzY1RvcENhckRldGFpbHM9e2l0ZW1faWQ6ZW5zdXJlVHJ1dGh5KGQuTklWKSxpdGVtX251bWJlcjplbnN1cmVUcnV0aHkoZC5pZCksaXRlbV9wcmljZTplbnN1cmVUcnV0aHkoZC5wcmljZSksaXRlbV9jb25kaXRpb246ZW5zdXJlVHJ1dGh5KGQudmNhdGVnb3J5KS50b0xvd2VyQ2FzZSgpLGl0ZW1feWVhcjplbnN1cmVUcnV0aHkoZC55ZWFyKS50b0xvd2VyQ2FzZSgpLGl0ZW1fbWFrZTplbnN1cmVUcnV0aHkoZC5tYWtlKS50b0xvd2VyQ2FzZSgpLGl0ZW1fbW9kZWw6ZW5zdXJlVHJ1dGh5KGQubW9kZWwpLnRvTG93ZXJDYXNlKCksaXRlbV92YXJpYW50OmVuc3VyZVRydXRoeShkLnZlcnNpb24pLnRvTG93ZXJDYXNlKCksaXRlbV9jb2xvcjplbnN1cmVUcnV0aHkoZC5jb2xvcikudG9Mb3dlckNhc2UoKSwKaXRlbV90eXBlOmVuc3VyZVRydXRoeShkLmJvZHlUeXBlSUQpLnRvTG93ZXJDYXNlKCksaXRlbV9jYXRlZ29yeTplbnN1cmVUcnV0aHkoIiIpLGl0ZW1fZnVlbF90eXBlOmVuc3VyZVRydXRoeShkLnZjYXJidXJhbnQpLnRvTG93ZXJDYXNlKCksaXRlbV9pbnZlbnRvcnlfZGF0ZTplbnN1cmVUcnV0aHkoaCl9OyIyMSIhPWsmJiIwIiE9ayYmZDJhc2Muc2V0VmVoaWNsZVN0YXR1cygiQ1BPIil9ZWxzZSBkPSQoIiNhc2NfZGlnaXRhbF9kYXRhX2luZm8iKSxhc2NUb3BDYXJEZXRhaWxzPXtpdGVtX2NvbmRpdGlvbjoibmV3IixpdGVtX3llYXI6JCgiaW5wdXRbbmFtZT0neWVhciddIixkKS52YWwoKSxpdGVtX21ha2U6JCgiaW5wdXRbbmFtZT0nbWFrZSddIixkKS52YWwoKSxpdGVtX21vZGVsOmVuc3VyZVRydXRoeSgkKCJpbnB1dFtuYW1lPSdtb2RlbCddIixkKS52YWwoKSkudG9Mb3dlckNhc2UoKSxpdGVtX3R5cGU6JCgiaW5wdXRbbmFtZT0ndmVoaWNsZUNhdGVnb3J5J10iLGQpLnZhbCgpfTsKY29uc29sZS5sb2coIkdBNCBhc2NUb3BDYXJEZXRhaWxzIixhc2NUb3BDYXJEZXRhaWxzKX0KZnVuY3Rpb24gZDJhc2NSZXNvbHZlUGFnZUlkKGQpe2Q9ZC5yZXBsYWNlKC88XC8\/W14+XSsoPnwkKS9nLCIiKTtpZihkLmluY2x1ZGVzKCJzaTp2bHMiKSlyZXR1cm4ic2VhcmNoIGludmVudG9yeSI7aWYoZC5pbmNsdWRlcygiOnNpOnZlaGljbGUgZGV0YWlscyIpfHxkLmluY2x1ZGVzKCJ2ZWhpY2xlIikpcmV0dXJuInZkcCI7aWYoZC5pbmNsdWRlcygiY3VzdG9tOiIpKXJldHVybiJibG9nIjtpZihkLmluY2x1ZGVzKCJmaW5hbmNlIikpcmV0dXJuImNyZWRpdCI7aWYoZC5pbmNsdWRlcygic2VydmljZTpyZXF1ZXN0IGFwcG9pbnRtZW50IikpcmV0dXJuInJlcXVlc3QgYXBwb2ludG1lbnQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6b3JkZXIgcGFydHMiKSlyZXR1cm4ib3JkZXIgcGFydHMiO2lmKGQuaW5jbHVkZXMoImFib3V0IHVzOmNvbnRhY3QgdXMiKSlyZXR1cm4iY29udGFjdCB1cyI7aWYoZC5pbmNsdWRlcygiVU5LTk9XTiIpKXtpZigvYnVpbGQtYW5kLXByaWNlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fAovY29uZmlndXJhdGlvbi1ldC1wcml4Ly50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuImJ1aWxkIGFuZCBwcmljZSI7aWYoL3ByaWNlLW5ldy8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvcHJpeC1uZXVmLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuInByaWNlIHJlcXVlc3QiO2lmKC9icm9jaHVyZXMvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iYnJvY2h1cmUiO2lmKC9hdXRvLWpvYnMvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VtcGxvaXMtYXV0b21vYmlsZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJqb2JzIjtpZigvb3VydGVhbS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwvZXF1aXBlLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuIm91ciB0ZWFtIn1yZXR1cm4gZH0KZnVuY3Rpb24gZDJhc2NSZXNvbHZlTGVhZFR5cGUoZCxoKXtoPWgudG9Mb3dlckNhc2UoKTtsZXQgaz17fTtmb3IodmFyIGwgaW4gZClrW2wudG9Mb3dlckNhc2UoKV09ZFtsXTtsPSQoImh0bWwiKS5hdHRyKCJsYW5nIik7ZD0iIjtsPSJlbiI9PWwudG9Mb3dlckNhc2UoKXx8ImVuZyI9PWwudG9Mb3dlckNhc2UoKT8iRU5HTElTSCI6IkZSRU5DSCI7dm9pZCAwIT09a1toXSYmdm9pZCAwIT09a1toXVtsXSYmKGQ9a1toXVtsXSk7cmV0dXJuIGR9CmZ1bmN0aW9uIEQyQVNDKGQpe2QucGFnZUlkT3JnPWQucGFnZUlkO2QucGFnZUlkPWQyYXNjUmVzb2x2ZVBhZ2VJZChkLnBhZ2VJZCk7ZC5kZWFsZXJfbmFtZT0kKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpO3ZhciBoPXtzdG9yZV9uYW1lOmQuZGVhbGVyX25hbWUudG9Mb3dlckNhc2UoKSxvZW1fY29kZTpkLnBhQ29kZSxvZW1fYnJhbmQ6ZC5jbGllbnQsYWZmaWxpYXRpb246IiIsbGFuZ3VhZ2U6ZC51c2VyTGFuZ3VhZ2UsY3VycmVuY3k6ImNhZCIscGFnZV90eXBlOmQucGFnZUlkLGl0ZW1zOltdLGV2ZW50czpbXSxtZWFzdXJlbWVudF9pZHM6WyJHLTZHRVoyV1dUM0wiXSxwbGF0Zm9ybV9jdXN0b206IiJ9LGs9e2FzY19jbGlja190b19jYWxsOlsiYS5waG9uZS1saW5rIiwiYS5waG9uZS1hY3Rpb24iXSxhc2NfY3RhX2ludGVyYWN0aW9uOiIudi1jYXJkIGE6bm90KC5waG9uZS1saW5rKTsubGVmdF9ib3ggYTsjZm9vdGVyIGE7I3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkX2J0bl8xOyNQdWxsb3V0X0J1aWxkLWFuZC1QcmljZTsjbmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiLnNwbGl0KCI7IiksCmFzY19jdGFfaW50ZXJhY3Rpb246IiNwcm9tb0Rpc2NvdmVyQnV0dG9uIC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciAjc2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQgLmxvYW5DYWxjdWxhdG9yVHJpZ2dlciAub2ZmZXItYnRuIC5jdFByb21vIC50cmFkZUluQmFyX2J0biIuc3BsaXQoIiAiKSxhc2NfY3RhX2ludGVyYWN0aW9uOlsiLm5ld1ZkcEFjdGlvbnMgYSIsIi5jdGEtdHBsIGEiXSxhc2NfY29tbV9lbmdhZ2VtZW50OlsiLnRleHQtdXMtYnRuIl0sYXNjX2Zvcm1fZW5nYWdlbWVudDpbImlucHV0Iiwic2VsZWN0IiwidGV4dGFyZWEiXSxhc2NfbWVkaWFfaW50ZXJhY3Rpb246WyIjbmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiLCJpbWciXSxhc2NfbWVudV9pbnRlcmFjdGlvbjpbIi51cF9tZW51IGEiXSxhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uOlsiLmxhbmd1YWdlQmFyIGEiXX0sbD0hMTtjb25zb2xlLmxvZygiRDJBU0MgTG9hZGluZy4uLiIsZCk7dmFyIGc9bmV3IGZ1bmN0aW9uKCl7dmFyIGU9CnRoaXM7ZS5zZXRWZWhpY2xlU3RhdHVzPWZ1bmN0aW9uKGIpe2xldCBhPSQoIiNhc2NfZGlnaXRhbF9kYXRhX2luZm8gaW5wdXRbbmFtZT12ZWhpY2xlU3RhdHVzXSIpO2lmKCIiIT0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9J21ha2UnXSIpLnZhbCgpKXtsZXQgYz13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKTthLnZhbCgvdXNlZC8udGVzdChjKXx8L29jY2FzaW9uLy50ZXN0KGMpPyJVc2VkIjoiTmV3Iil9ITEhPT1iJiZhLnZhbChiKX07ZS5zZXREaWdpdGFsRGF0YT1mdW5jdGlvbihiLGEpe2xldCBjPWUuYWRkRXZlbnQoYixhKTtpZighMT09PWMpcmV0dXJuITE7dm9pZCAwIT09Yy5mb3JtX25hbWUmJihjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCJtZW5zdWFsaXQ\/cyIsIm1lbnN1YWxpdGVzIiksYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgidj9oaWN1bGUiLCJ2ZWhpY3VsZSIpLGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoIj90YXBlcyIsCiJldGFwZXMiKSxjLmZvcm1fbmFtZT0iRDJDICIrYy5mb3JtX25hbWUpO3ZvaWQgMCE9PWMuZm9ybV9sYW5nJiYoYy5mb3JtX2xhbmc9ZS5zdGFuZGFyZGl6ZUZvcm1MYW5nKGMuZm9ybV9sYW5nKSk7aC5ldmVudHMudW5zaGlmdChKU09OLnN0cmluZ2lmeSh7bmFtZTpiLHBhcmFtczpjfSkpOyJ2ZHAiPT1jLnBhZ2VfdHlwZSYmKGMucGFnZV90eXBlPSJpdGVtIik7InNob3dyb29tIj09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbSIpOyJzZWFyY2ggaW52ZW50b3J5Ij09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbWxpc3QiKTtsZXQgZj1lLmdldEV2ZW50VHlwZShiKTtlLnJlcG9ydChmLGIsYyxoKTsiYXNjX2Zvcm1fc3VibWlzc2lvbiI9PWImJihlLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIixhKSxlLnNldERpZ2l0YWxEYXRhKCJEMkNfRm9ybV9zdWJtaXNzaW9uX3NhbGVzIixhKSxlLnNldERpZ2l0YWxEYXRhKCJEMkNfTGVhZHMiLAphKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YXNjTGFzdEN0YUNsaWNrPSExfSwxMjUwKSk7ImFzY19jb21tX3N1Ym1pc3Npb24iPT1iJiZlLnNldERpZ2l0YWxEYXRhKCJhc2NfY29tbV9zdWJtaXNzaW9uX3NhbGVzIixhKTsiYXNjX2Zvcm1fZW5nYWdlbWVudCI9PWImJiExPT09YXNjQ29tbVN0YXJ0RmlyZWQmJmEgaW5zdGFuY2VvZiBqUXVlcnkmJjA8YS5jbG9zZXN0KCIjU2xpZGVXaWRnZXRGb3JtIikubGVuZ3RoJiYoYXNjQ29tbVN0YXJ0RmlyZWQ9ITAsZS5zZXREaWdpdGFsRGF0YSgiYXNjX2NvbW1fc3RhcnQiLGEpKX07ZS5nZXRFdmVudFR5cGU9ZnVuY3Rpb24oYil7bGV0IGE9ImVuZ2FnZW1lbnQiO3N3aXRjaChiKXtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZSI6YT0KImNvbnZlcnNpb24ifXJldHVybiBhfTtlLmJpbmRFbGVtZW50cz1mdW5jdGlvbihiLGEpeyQuZWFjaChhLGZ1bmN0aW9uKGMsZil7JChmKS5lYWNoKGZ1bmN0aW9uKCl7Y29uc3QgbT0kKHRoaXMpLG49ImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1iPyJibHVyIjoiY2xpY2siOyQodGhpcykub24obixmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoYixtKX0pfSl9KX07ZS5hZGRFdmVudD1mdW5jdGlvbihiLGEpe3ZhciBjPXtldmVudF9vd25lcjoiZDJjIixwYWdlX3R5cGU6ZC5wYWdlSWQscGFnZV91cmw6d2luZG93LmxvY2F0aW9uLmhyZWYsZXZlbnRfbGFiZWw6YixldmVudF9jYXRlZ29yeTokKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9dmVoaWNsZVN0YXR1c10iKS52YWwoKX0sZj0hMSE9PWFzY0xhc3RDdGFDbGljaz9lLkN0YVRleHRQYXJzZXIoYXNjTGFzdEN0YUNsaWNrKToiIjtzd2l0Y2goYil7Y2FzZSAiYXNjX3BhZ2V2aWV3IjpicmVhaztjYXNlICJhc2NfY2xpY2tfdG9fY2FsbCI6Zj0KYS5oYXNDbGFzcygicGhvbmUtbGluayIpP2EudGV4dCgpOmEuYXR0cigiaHJlZiIpO2Y9Zi5yZXBsYWNlKC9bXjAtOVwrXS9nLCIiKTtjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9waG9uZV9udW1iZXI6ZixkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSxhZmZpbGlhdGlvbjoiIn0pO2JyZWFrO2Nhc2UgImFzY19jdGFfaW50ZXJhY3Rpb24iOmY9ZS5DdGFUZXh0UGFyc2VyKGEpO2UuaXNDdGFDbGljayhhKSYmKGFzY0xhc3RDdGFDbGljaz1hKTtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0OmYsZWxlbWVudF9vcmRlcjoiIixlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfdHlwZTplLmdldEVsZW1lbnRUeXBlKGEpLGV2ZW50X2FjdGlvbjoiIixldmVuX2FjdGlvbl9yZXN1bHQ6YS5hdHRyKCJocmVmIik\/InJlZGlyZWN0IjoicG9wdXAiLGxpbmtfdXJsOmEuYXR0cigiaHJlZiIpP2EuYXR0cigiaHJlZiIpOiIifSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fZW5nYWdlbWVudCI6Zj0KZS5nZXRMZWFkVHlwZUZvcm1OYW1lKGEpO2lmKCExPT09ZilyZXR1cm4hMTtsZXQgbT1lLmFzY1RleHRSZXBsYWNlcihhLnZhbCgpKSxuPWUuZ2V0RDJjRGVwYXJ0bWVudChhKTtjPU9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0Om0sY29tbV90eXBlOiJmb3JtIixjb21tX3N0YXR1czoic3RhcnQiLGRlcGFydG1lbnQ6bixmb3JtX25hbWU6Zixmb3JtX3R5cGU6ZS5nZXRGb3JtVHlwZShhKSxmb3JtX2xhbmc6JCgiaW5wdXRbbmFtZT0nbGFuZyddIikudmFsKCksZm9ybV9kZXB0Om59KTticmVhaztjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV90eXBlOiJmb3JtIixjb21tX291dGNvbWU6ImNsb3NlIixzdWJtaXNzaW9uX2lkOiIiLGVsZW1lbnRfdGV4dDoic3VibWl0IixjdGFfdGV4dDpmLGN1c3RvbWVyX3Bob25lOmEuY29uZmlybV9waG9uZV9udW1iZXIsY3VzdG9tZXJfZW1haWw6YS5jb25maXJtX2VtYWlsLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLApmb3JtX25hbWU6YS5sZWFkVHlwZSxmb3JtX3R5cGU6ZS5nZXRGb3JtVHlwZShhKSxmb3JtX2xhbmc6JCgiaW5wdXRbbmFtZT0nbGFuZyddIikudmFsKCksZm9ybV9kZXB0OmUuZ2V0RDJjRGVwYXJ0bWVudChhKX0pO2JyZWFrO2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fcGFydHMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXMiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXNfYXBwdCI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2VfYXBwdCI6Y2FzZSAiRDJDX0xlYWRzIjphLmNvbmZpcm1fcGhvbmVfbnVtYmVyPXZvaWQgMD09PWEuY29uZmlybV9waG9uZV9udW1iZXI\/IiI6YS5jb25maXJtX3Bob25lX251bWJlcjthLmNvbmZpcm1fZW1haWw9dm9pZCAwPT09YS5jb25maXJtX2VtYWlsPyIiOmEuY29uZmlybV9lbWFpbDtjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV90eXBlOiJmb3JtIiwKY29tbV9vdXRjb21lOmUuZ2V0Rm9ybU91dGNvbWUoYiksc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6ZS5hc2NUZXh0UmVwbGFjZXIoInN1Ym1pdCIpLGN0YV90ZXh0OmYsY3VzdG9tZXJfcGhvbmU6YS5jb25maXJtX3Bob25lX251bWJlcixjdXN0b21lcl9lbWFpbDphLmNvbmZpcm1fZW1haWwsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksZm9ybV9uYW1lOmEubGVhZFR5cGUsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJEMkNfRm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjPXtmb3JtX2ZpbGxlZDoiWWVzIn07YnJlYWs7Y2FzZSAiYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbiI6Yz12b2lkIDAhPT1hLmV2ZW50X2FjdGlvbj9PYmplY3QuYXNzaWduKHt9LGMse2V2ZW50X2FjdGlvbl9yZXN1bHQ6YS5ldmVudF9hY3Rpb25fcmVzdWx0LApldmVudF9hY3Rpb246YS5ldmVudF9hY3Rpb24scHJvZHVjdF9uYW1lOiIiLGVsZW1lbnRfc3RhdGU6YS5maWx0ZXJJbmZvLnN0YXRlLGVsZW1lbnRfdHlwZToic2VhcmNoIj09YS5ldmVudF9hY3Rpb24\/ImZpbHRlciI6InNvcnQiLGVsZW1lbnRfc3VidHlwZTphLmZpbHRlckluZm8udHlwZSxlbGVtZW50X3RpdGxlOmEuZmlsdGVySW5mby5sYWJlbCxlbGVtZW50X3RleHQ6YS5maWx0ZXJJbmZvLnRpdGxlLGVsZW1lbnRfdmFsdWU6YS5maWx0ZXJJbmZvLnZhbHVlLGVsZW1lbnRfY29sb3I6IiIsZWxlbWVudF9wb3NpdGlvbjoiIixlbGVtZW50X29yZGVyOiIifSk6T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OiJsYW5ndWFnZSIsZXZlbnRfYWN0aW9uOiJjbGljayIscHJvZHVjdF9uYW1lOiIiLGVsZW1lbnRfc3RhdGU6MCxlbGVtZW50X3R5cGU6Imxhbmd1YWdlIHRvZ2dsZSwiLGVsZW1lbnRfc3VidHlwZToiYnV0dG9uIixlbGVtZW50X3RpdGxlOmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSwKZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3ZhbHVlOmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfcG9zaXRpb246IiIsZWxlbWVudF9vcmRlcjoiIn0pO2JyZWFrO2Nhc2UgImFzY19tZWRpYV9pbnRlcmFjdGlvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2V2ZW50X2FjdGlvbl9yZXN1bHQ6IiIsYWZmaWxpYXRpb246IiIsbWVkaWFfdHlwZToiIixsaW5rX3VybDoiIixjcmVhdGl2ZV9uYW1lOiIifSk7YnJlYWs7Y2FzZSAiYXNjX21lbnVfaW50ZXJhY3Rpb24iOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtlbGVtZW50X3RleHQ6ZS5hc2NUZXh0UmVwbGFjZXIoYS50ZXh0KCkpLGVsZW1lbnRfc3VidHlwZToibWVnYV9tZW51IixlbGVtZW50X3R5cGU6YS5jbG9zZXN0KCJsaSIpLmF0dHIoImRhdGEtaWQiKSxldmVudF9hY3Rpb246ImNsaWNrIn0pO2JyZWFrO2Nhc2UgImFzY19yZXRhaWxfcHJvY2VzcyI6Yz0KT2JqZWN0LmFzc2lnbih7fSxjLHtmbG93X25hbWU6ImZpbmFuY2UiLGVsZW1lbnRfdGl0bGU6IiIsZmxvd19vdXRjb21lOiJwcm9jZWVkIixpdGVtX3BheW1lbnQ6ImZpbmFuY2UiLGZsb3dfc3RhZ2U6IiJ9KTticmVhaztjYXNlICJhc2Nfc3BlY2lhbF9vZmZlciI6Yz1PYmplY3QuYXNzaWduKHt9LGMse3Byb21vdGlvbl9uYW1lOiQoImgyOmZpcnN0LWNoaWxkIixhKS5sZW5ndGg\/ZS5hc2NUZXh0UmVwbGFjZXIoJCgiaDI6Zmlyc3QtY2hpbGQiLGEpLnRleHQoKSk6IkRlYWxlciBQcm9tbyIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSkscHJvZHVjdF9uYW1lOiIiLGVsZW1lbnRfcG9zaXRpb246ImZsb2F0aW5nIixmbG93X291dGNvbWU6InN0YXJ0In0pO2JyZWFrO2Nhc2UgImFzY19jb21tX2VuZ2FnZW1lbnQiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3N0YXR1czoic3RhcnQiLGNvbW1fdHlwZToic21zIixwcm9kdWN0X25hbWU6ImQyY190ZXh0IixldmVudF9vd25lcjoiZDJjIn0pOwpicmVhaztjYXNlICJhc2NfY29tbV9zdWJtaXNzaW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9zdGF0dXM6ImNybV91cGRhdGUiLGNvbW1fdHlwZToic21zIixwcm9kdWN0X25hbWU6ImQyY190ZXh0IixldmVudF9vd25lcjoiZDJjIixkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKX0pO2JyZWFrO2Nhc2UgImFzY19jb21tX3N0YXJ0IjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9zdGF0dXM6ImVuZ2FnZSIsY29tbV90eXBlOiJzbXMiLHByb2R1Y3RfbmFtZToiZDJjX3RleHQiLGV2ZW50X293bmVyOiJkMmMifSk7YnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbl9zYWxlcyI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiY2hhdCIsYWZmaWxpYXRpb246Im5hdGl2ZSIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb25faWQ6Im11bHRpLXVzZXIiLGNvbW1fc3RhdHVzOiJjcm1fdXBkYXRlIixlbGVtZW50X3Bvc2l0aW9uOiJwb3AtdXAifSk7CmJyZWFrO2RlZmF1bHQ6cmV0dXJuIGNvbnNvbGUubG9nKCJEMkFTQyBFUlJPUihDT0RFOjAwMSkiLGIsYSksITF9ITEhPT1hc2NUb3BDYXJEZXRhaWxzJiYiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyIhPWImJihjPU9iamVjdC5hc3NpZ24oe30sYyxhc2NUb3BDYXJEZXRhaWxzKSk7Y29uc29sZS5sb2coIkdBNCBGaW5hbCBEaWdpdGFsIERhdGEiLGMpO3JldHVybiBjfTtlLmlzQ3RhQ2xpY2s9ZnVuY3Rpb24oYil7bGV0IGE9ITE7YiBpbnN0YW5jZW9mIGpRdWVyeSYmKDA8Yi5jbG9zZXN0KCIubmV3VmRwQWN0aW9ucyIpLmxlbmd0aCYmKGE9ITApLDA8Yi5jbG9zZXN0KCIuY3RhLXRwbCIpLmxlbmd0aCYmKGE9ITApLCJwcm9tb0Rpc2NvdmVyQnV0dG9uIj09Yi5hdHRyKCJpZCIpJiYoYT0hMCksYi5oYXNDbGFzcygiZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IiKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IiKS5sZW5ndGgmJihhPSEwKSwwPGIuY2xvc2VzdCgiI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIikubGVuZ3RoJiYKKGE9ITApLCJzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZCI9PWIuYXR0cigiaWQiKSYmKGE9ITApLGIuaGFzQ2xhc3MoImxvYW5DYWxjdWxhdG9yVHJpZ2dlciIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5sb2FuQ2FsY3VsYXRvclRyaWdnZXIiKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJjdFByb21vIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmN0UHJvbW8iKS5sZW5ndGgmJihhPSEwKSxiLmhhc0NsYXNzKCJvZmZlci1idG4iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIub2ZmZXItYnRuIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygidHJhZGVJbkJhcl9idG4iKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIudHJhZGVJbkJhcl9idG4iKS5sZW5ndGgmJihhPSEwKSwiVFJBREVJTiI9PWIuYXR0cigiZGF0YS1pZCIpJiYoYT0hMCkpO3JldHVybiBhfTtlLnN0YW5kYXJkaXplRm9ybUxhbmc9ZnVuY3Rpb24oYil7dm9pZCAwPT09YiYmJCgiaHRtbCIpLmF0dHIoImxhbmciKTtiPWIudG9Mb3dlckNhc2UoKTsKImVuZyI9PWImJihiPSJlbiIpOyJlbmdsaXNoIj09YiYmKGI9ImVuIik7ImZybiI9PWImJihiPSJmciIpOyJmcmVuY2giPT1iJiYoYj0iZnIiKTsiZW4iIT1iJiYiZnIiIT1iJiYoYj0iZW4iKTtyZXR1cm4gYn07ZS5DdGFUZXh0UGFyc2VyPWZ1bmN0aW9uKGIpe2QucGFnZUlkLnRvTG93ZXJDYXNlKCk7bGV0IGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCksYz0iIjtpZigvbmV3XC9pbnZlbnRvcnlcL3NlYXJjaC8udGVzdChhKXx8L25ldWZzXC9pbnZlbnRhaXJlXC9yZWNoZXJjaGUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBTUlA6ICI7ZWxzZSBpZigvbmV3XC9pbnZlbnRvcnkvLnRlc3QoYSl8fC9uZXVmc1wvaW52ZW50YWlyZS8udGVzdChhKSljKz0iRDJDIENUQU0gLSBOZXcgSW52ZW50b3J5IFZEUDogIjtlbHNlIGlmKC9uZXcvLnRlc3QoYSl8fC9uZXVmcy8udGVzdChhKSljKz0iRDJDIENUQU0gLSBOZXcgU2hvd1Jvb20gVkRQOiAiOwplbHNlIGlmKC91c2VkLy50ZXN0KGEpfHwvb2NjYXNpb24vLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gVXNlZCBJbnZlbnRvcnkgVkRQOiAiO3JldHVybiBjK2UuYXNjVGV4dFJlcGxhY2VyKGIudGV4dCgpKX07ZS5nZXRMZWFkVHlwZUZvcm1OYW1lPWZ1bmN0aW9uKGIpe2xldCBhPTA8Yi5jbG9zZXN0KCJmb3JtIikubGVuZ3RoP2IuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIik6Yi5hdHRyKCJpZCIpLGM9ITE7ZC5wYWdlSWQuaW5jbHVkZXMoIm9yZGVyIHBhcnRzIikmJihjPSJQYXJ0c1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygidGVzdCBkcml2ZSIpJiYoYz0iVGVzdERyaXZlIik7ZC5wYWdlSWQuaW5jbHVkZXMoInByaWNlIHJlcXVlc3QiKSYmKGM9IlByaWNlUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJicm9jaHVyZSIpJiYoYz0iQnJvY2h1cmVzUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJyZXF1ZXN0IGFwcG9pbnRtZW50IikmJihjPSJTZXJ2aWNlUmVxdWVzdCIpOwpkLnBhZ2VJZC5pbmNsdWRlcygidGlyZXMiKSYmKGM9IlRpcmVzUmVxdWVzdCIpO2QucGFnZUlkLmluY2x1ZGVzKCJib2R5IHNob3AiKSYmKGM9IkJvZHlTaG9wIik7ZC5wYWdlSWQuaW5jbHVkZXMoInJlY2FsbCIpJiYoYz0iUmVjYWxscyIpO2lmKGIgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiLmRpdlNwYW5GaWx0ZXJzIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiI2Jhbm5lcl9zZWFyY2hfYmFyX2NvbnRhaW5lciIpLmxlbmd0aCkpcmV0dXJuITE7Yj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtTmFtZTohMSE9PWM\/ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLGMpOiJVTktOT1dOOiAiK2F9O2UuZm9ybURhdGFCeUlkPWZ1bmN0aW9uKGIpe2lmKGIgaW5zdGFuY2VvZiBqUXVlcnkpe2xldCBhPTA8Yi5jbG9zZXN0KCJmb3JtIikubGVuZ3RoP2IuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIik6Yi5hdHRyKCJpZCIpO3ZvaWQgMD09PWEmJigwPApiLmNsb3Nlc3QoIiNjb250YWN0cG9wdXAiKS5sZW5ndGgmJihhPSJSZXF1ZXN0IGZvciBjb250YWN0IiksMDxiLmNsb3Nlc3QoIi5jcmVkaXRTY29yZUlucHV0IikubGVuZ3RoJiYoYT0iY3JlZGl0U2NvcmUiKSwwPGIuY2xvc2VzdCgiI3NjcmF0Y2hBbmRTYXZlUG9wdXBDb250YWluZXJfYm5wIikubGVuZ3RoJiYoYT0iUmViYXRlQ291cG9uTmV3Qk5QIiksMDxiLmNsb3Nlc3QoIi5zY3JhdGNoYW5kc2F2ZV90ZXh0IikubGVuZ3RoJiYoYT0iUmViYXRlQ291cG9uIikpO2lmKGQucGFnZUlkLmluY2x1ZGVzKCJzaG93cm9vbTpjb21wYXJlIikmJnZvaWQgMCE9PWEmJmEuaW5jbHVkZXMoImZlYXR1cmVkUHJvZHVjdF8iKSlyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIixmb3JtTmFtZToiQ29tcGFyZUZvcm0ifTtpZigwPGIuY2xvc2VzdCgiI211bHRpZm9ybV9lbWJlZGRlZCIpLmxlbmd0aCYmMDxiLmNsb3Nlc3QoIiNtdWx0aWZvcm1fZW1iZWRkZWQiKS5maW5kKCIubXVsdGlmb3JtX2VtYmVkZGVkX3N0ZXAxIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsCmZvcm1OYW1lOiJEaXNjb3Zlck9mZmVyIn07c3dpdGNoKGEpe2Nhc2UgIm1pbmlmb3JtIjpjYXNlICJmaW5hbmNlX211bHRpc3RlcF9mb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCJ9O2Nhc2UgImxvYW4tZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IlByaWNlUmVxdWVzdCJ9O2Nhc2UgImZvcm1EZWFsZXJBcHBvaW50bWVudCI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0Iixmb3JtTmFtZToiRGVhbGVyQXBwb2ludG1lbnQifTtjYXNlICJTbGlkZVdpZGdldEZvcm0iOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IlNsaWRlV2lkZ2V0Rm9ybSJ9O2Nhc2UgImNyZWRpdFNjb3JlIjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiQ3JlZGl0UmVxdWVzdF9TaG9ydCJ9O2Nhc2UgIlJlYmF0ZUNvdXBvbk5ld0JOUCI6cmV0dXJue2Zvcm1UeXBlOiJwcmUtb3JkZXIiLApmb3JtTmFtZToiUmViYXRlQ291cG9uTmV3Qk5QIn07Y2FzZSAiYmFubmVyX3NlYXJjaF9iYXJfc2VsZWN0X2JvZHkiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkJhbm5lckZvcm0ifTtjYXNlICJwYXltZW50Q2FsY3VsYXRvckludGVydmFsIjpjYXNlICJwYXltZW50Q2FsY3VsYXRvclRyaW1TZWxlY3QiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiOmNhc2UgInBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifTtjYXNlICJjb250YWN0X2Zvcm0iOmNhc2UgImNvbnRhY3RfZm9ybTIiOmNhc2UgImNvbnRhY3RfZm9ybTMiOmNhc2UgIlJlcXVlc3QgZm9yIGNvbnRhY3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkNvbnRhY3RSZXF1ZXN0In07Y2FzZSAicXVpY2tFbWFpbEZvcm0iOmNhc2UgIm1haWxFeHByZXNzUmVxdWVzdCI6cmV0dXJue2Zvcm1UeXBlOiJjb25zdW1lcl9jb250YWN0IiwKZm9ybU5hbWU6IlF1aWNrRW1haWwifTtjYXNlICJ0cmFkaW5NYWtlIjpjYXNlICJ0cmFkaW5ZZWFyIjpjYXNlICJ0cmFkaW5Nb2RlbCI6Y2FzZSAidHJhZGluVHJpbSI6Y2FzZSAidHJhZGVJbkJhclBvcHVwRm9ybSI6Y2FzZSAiU2VsbENhckZvcm0iOnJldHVybntmb3JtVHlwZToicmVzZWFyY2giLGZvcm1OYW1lOiJQcmljZVZlaGljbGUifX1pZigwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5IikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MSIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTIiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkzIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ldyJ9O2lmKDA8Yi5jbG9zZXN0KCIjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXIiKS5sZW5ndGgpcmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6Ik1vbnRobHlQYXltZW50cyJ9fXJldHVybiExfTsKZS5jb21tU3ViRGF0YVBhcnNlcj1mdW5jdGlvbihiLGEpe2xldCBjPXtmb3JtX25hbWU6IiIsZm9ybV90eXBlOiIiLGZvcm1fZGVwdDoiIixmb3JtX2xhbmc6IiJ9Oy9hc2NfY29tbV9zdWJtaXNzaW9uLy50ZXN0KGIpJiYiU2xpZGVXaWRnZXRGb3JtIj09YS5jbG9zZXN0KCJmb3JtIikuYXR0cigiaWQiKSYmKGMuZm9ybV9uYW1lPSJMZWFkOiBDaGF0IFN1Ym1pc3Npb24iKTtyZXR1cm4gY307ZS5hc2NUZXh0UmVwbGFjZXI9ZnVuY3Rpb24oYil7Yj1iLnJlcGxhY2UoLyhcclxufFxufFxyfFx0KS9nbSwiIik7Yj1iLnJlcGxhY2UoLzxcLz9bXj5dKyg+fCQpL2csIiIpO3JldHVybiBiPWIudHJpbSgpfTtlLmhhc2hUZXh0PWZ1bmN0aW9uKGIpe2I9KG5ldyBUZXh0RW5jb2RlcikuZW5jb2RlKGIudHJpbSgpLnRvTG93ZXJDYXNlKCkpO3JldHVybiBjcnlwdG8uc3VidGxlLmRpZ2VzdCgiU0hBLTI1NiIsYikudGhlbihhPT5BcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGEpKS5tYXAoYz0+CmMudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsIjAiKSkuam9pbigiIikpfTtlLmdldEZvcm1PdXRjb21lPWZ1bmN0aW9uKGIpe3N3aXRjaChiKXtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmNhc2UgIkQyQ19MZWFkcyI6cmV0dXJuImNybV91cGRhdGUiO2Nhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2FsZXNfYXBwdCI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlX2FwcHQiOnJldHVybiJhcHB0X2Jvb2tlZCJ9fTtlLmdldEQyY0RlcGFydG1lbnQ9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKSxjPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpLGY9Ik9USEVSIjsvbmV1ZnMvLnRlc3QoYykmJihmPSJORVciKTsvbmV3Ly50ZXN0KGMpJiYoZj0iTkVXIik7L29jY2FzaW9uLy50ZXN0KGMpJiYKKGY9IlVTRUQiKTsvdXNlZC8udGVzdChjKSYmKGY9IlVTRUQiKTthLmluY2x1ZGVzKCJmaW5hbmNlIikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInBhcnRzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygidGlyZXMiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJib2R5IHNob3AiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJmaW5hbmNlIGRlcGFydG1lbnQiKSYmKGY9IkZJTkFOQ0UiKTthLmluY2x1ZGVzKCJjcmVkaXQiKSYmKGY9IkZJTkFOQ0UiKTthLmluY2x1ZGVzKCJjb250YWN0IHVzIikmJihmPSJTQUxFUyIpO2EuaW5jbHVkZXMoInJlY2FsbCIpJiYoZj0iU0VSVklDRSIpO2IgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLmxlbmd0aCYmKGY9IkZJTkFOQ0UiKSwiZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIj09CmIuYXR0cigiaWQiKSYmKGY9IkZJTkFOQ0UiKSwwPGIuY2xvc2VzdCgiI1NlbGxDYXJGb3JtIikubGVuZ3RoJiYoZj0iRklOQU5DRSIpLHZvaWQgMCE9PWIuYXR0cigiZGF0YS1kZXBhcnRtZW50IikmJihmPWIuYXR0cigiZGF0YS1kZXBhcnRtZW50IikpKTtyZXR1cm4gZn07ZS5nZXRGb3JtVHlwZT1mdW5jdGlvbihiKXtsZXQgYT1kLnBhZ2VJZC50b0xvd2VyQ2FzZSgpO2lmKGEuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSlyZXR1cm4ic2VydmljZV9hcHBvaW50bWVudCI7aWYoYS5pbmNsdWRlcygib3JkZXIgcGFydHMiKXx8YS5pbmNsdWRlcygib3JkZXIgdGlyZXMiKSlyZXR1cm4icGFydHMiO2lmKGEuaW5jbHVkZXMoImJvZHkgc2hvcCIpKXJldHVybiJib2R5X3Nob3AiO2lmKGEuaW5jbHVkZXMoImZpbmFuY2UgZGVwYXJ0bWVudCIpfHxhLmluY2x1ZGVzKCJjcmVkaXQiKSlyZXR1cm4iY3JlZGl0IjtiPWUuZm9ybURhdGFCeUlkKGIpO3JldHVybiExIT09Yj9iLmZvcm1UeXBlOgoiY29uc3VtZXJfY29udGFjdCJ9O2UuZ2V0RWxlbWVudFR5cGU9ZnVuY3Rpb24oYil7cmV0dXJuInRvcEJhbm5lckltYWdlIj09Yi5hdHRyKCJpZCIpfHwwPGIuY2xvc2VzdCgiI3RvcEJhbm5lckltYWdlIikubGVuZ3RoPyJiYW5uZXIiOjA8Yi5jbG9zZXN0KCIuaGVhZGVyLWltYWdlLXdyYXBwZXIiKS5sZW5ndGg\/ImhlYWRlciI6MDxiLmNsb3Nlc3QoIi5sYW5ndWFnZUJhciIpLmxlbmd0aD8iYWNjZXNzaWJpbGl0eV90b29sIjowPGIuaGFzKCIuZGVhbGVyTWFwTGluayIpLmxlbmd0aD8ibWFwIjowPGIuY2xvc2VzdCgiLnNsaWRlcyIpLmxlbmd0aD8iZ2FsbGVyeSI6MDxiLmNsb3Nlc3QoIi51c2VkVmRwQWN0aW9ucyIpLmxlbmd0aD8iZGlnaXRhbF9yZXRhaWxpbmdfdG9vbCI6IlB1bGxvdXRfQnVpbGQtYW5kLVByaWNlIj09Yi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8iYmFubmVyIjoibmV3VmRwRnVsbHdpZHRoVmlkZW9JZnJhbWUiPT1iLmF0dHIoIi51c2VkVmRwQWN0aW9ucyIpPwoidmlkZW8iOiJkaWdpdGFsX3JldGFpbGluZyJ9O2UuZ2V0VmVoaWNsZUpTT049ZnVuY3Rpb24oYixhKXskLmdldCgiL2pzL2pzb24vIitiKyIuanNvbiIpLmRvbmUoZnVuY3Rpb24oYyl7Yy5pdGVtX251bWJlcj1iO2lmKCIiIT1hJiZ2b2lkIDAhPT1hKXdpbmRvd1thXShjKTtyZXR1cm4gY30pfTtlLnJlcG9ydD1mdW5jdGlvbihiLGEsYyxmKXtpZih2b2lkIDA9PT1kLnN1Yl9nYTR8fCJOIj09ZC5zdWJfZ2E0KWM9T2JqZWN0LmFzc2lnbih7fSxjLHtzZW5kX3RvOiJHLVo1UThaNUM3S0YifSk7aWYoITA9PT1sJiYiYXNjX2Zvcm1fZW5nYWdlbWVudCI9PWEpcmV0dXJuITE7Z3RhZygiZXZlbnQiLGEsYyk7bD0hMDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bD0hMX0sMUUzKX07cmV0dXJuIGV9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnNldFZlaGljbGVTdGF0dXMoITEpOyJ2ZHAiPT1kLnBhZ2VJZCYmKDA8JCgiI3RvcGNhcmlkIikubGVuZ3RoJiYiIiE9JCgiI3RvcGNhcmlkIikudmFsKCkmJgoiMCIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpP2cuZ2V0VmVoaWNsZUpTT04oJCgiI3RvcGNhcmlkIikudmFsKCksImFzY1VwZGF0ZVRvcENhckRhdGEiKTphc2NVcGRhdGVUb3BDYXJEYXRhKCExKSk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3BhZ2V2aWV3Iix7fSl9KX0sMUUzKTskLmVhY2goayxmdW5jdGlvbihiLGEpe2cuYmluZEVsZW1lbnRzKGIsYSl9LCExKTskKCIucmV2ZWFsLW1vZGFsIikub25lKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbihiKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJChiLnRhcmdldCkpO2cuYmluZEVsZW1lbnRzKCJhc2NfZm9ybV9lbmdhZ2VtZW50IixbJChiLnRhcmdldCkuZmluZCgiZm9ybSBpbnB1dCwgZm9ybSBzZWxlY3QsIGZvcm0gdGV4dGFyZWEiKV0pfSk7c2V0VGltZW91dCgoKT0+eyQoImFbZGF0YS1sZWFkLXRyaWdnZXI9J0RlYWxlckFwcG9pbnRtZW50J10iKS5vbigiY2xpY2siLApmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19zcGVjaWFsX29mZmVyIiwkKCIjbW9kYWxEZWFsZXJBcHBvaW50bWVudCIpKX0pOyQoImFbZGF0YS1sZWFkLXRyaWdnZXI9J1BheXBhbFBheW1lbnQnXSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsUGF5cGFsUGF5bWVudCIpKX0pfSwxRTMpOzA8JCgiI2ZsdFNvcnRJZCIpLmxlbmd0aCYmKGFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0PSQoIiNmbHRTb3J0SWQgLmRpdkFjdGlvbldyYXBwZXIgLmRpdkxhYmVsIikuaHRtbCgpKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuQWJzdHJhY3RVc2VkU3JwT2JqZWN0KXt2YXIgZT1uZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJkMmNfaG9uZGFfZ3RtIn0pO2UuYWRkVXNlZFNycEV2ZW50T2JzZXJ2ZXIoInByb3h5IixmdW5jdGlvbihiKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBiLmNtZCYmCiJyZXF1ZXN0Ij09PWIuY21kJiYhMSE9PWIuZGF0YSl7bGV0IGE9Yi5kYXRhLmZpbHRlclN0YXRlLmZpbHRlclNlYXJjaDtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5yZXN1bHRzPWIuZGF0YS5maWx0ZXJTdGF0ZS5jb3VudFNlYXJjaFJlc3VsdHM7YS50eXBlZFNlYXJjaD1iLmRhdGEuZmlsdGVyU3RhdGUudHlwZWRTZWFyY2g7YS5ldmVudF9hY3Rpb25fcmVzdWx0PSJzZWFyY2giO2EuZXZlbnRfYWN0aW9uPSJzZWFyY2giO2EuZmlsdGVySW5mbz1hc2NMYXN0RmlsdGVyQ2xpY2s7YXNjTGFzdEZpbHRlckNsaWNrPSExO09iamVjdC5rZXlzKGEpLmluY2x1ZGVzKCJzb3J0IikmJmFzY0xhc3RTZWFyY2hGaWx0ZXJTb3J0IT1hLnNvcnRbMF0mJihhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD1hLnNvcnRbMF0sYS5ldmVudF9hY3Rpb249InNvcnQiKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZWxlbWVudF9jb25maWd1cmF0aW9uIixhKX0sMTAwKX19KTtlLmluaXRVc2VkU3JwT2JzZXJ2ZXIoKX0kKGRvY3VtZW50KS5vbigidXNlZFNycEZpbHRlcnMub25DaGFuZ2UiLAoiYm9keSIsKGIsYSk9PntiPSQoIiMiK2EuaWQpO2I9JCgiLmZsdFRpdGxlIixiKS50ZXh0KCk7bGV0IGM9YS52YWx1ZTt2YXIgZj0iIjtsZXQgbT0idGV4dF9zZWFyY2giO2EudmFsdWUmJmEudmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcygiOjoiKT8obT0iYnV0dG9uIixmPWEudmFsdWUuc3BsaXQoIjo6IiksYS52YWx1ZT1mWzBdLGY9ZlsxXSk6YS52YWx1ZSYmYS52YWx1ZS50b1N0cmluZygpLmluY2x1ZGVzKCIsIikmJihtPSJyYW5nZV9zbGlkZXIiKTthc2NMYXN0RmlsdGVyQ2xpY2s9e2lkOmEuaWQsdGl0bGU6YS5sYWJlbCx2YWx1ZTphLnZhbHVlLG9yZ192YWx1ZTpjLHN0YXRlOmYsdHlwZTptLGxhYmVsOmJ9fSk7JCgiYm9keSIpLm9uKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50IixmdW5jdGlvbihiLGEpe2NvbnNvbGUubG9nKCJEMkFTQyBFbWFpbCBTZW50IFRyaWdnZXIiLGIsYSk7aWYodm9pZCAwIT09YS5kZXRhaWwubGVhZFR5cGUpe2I9YS5kZXRhaWwubGVhZFR5cGU7aWYoYi5pbmNsdWRlcygiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIil8fApiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1cyIpfHwoYS5kZXRhaWwubWFpbElkfHwiIikuc3RhcnRzV2l0aCgiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIpKXJldHVybiExO2IuaW5jbHVkZXMoIkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciIpJiYoYj0iTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIpO2IudHJpbSgpO2EuZGV0YWlsLmxlYWRUeXBlPWJ9dm9pZCAwIT09YS5kZXRhaWwubGVhZFR5cGUmJiIiIT1hLmRldGFpbC5sZWFkVHlwZXx8dm9pZCAwPT09YS5kZXRhaWwubWFpbElkfHwoYS5kZXRhaWwubGVhZFR5cGU9ZDJhc2NSZXNvbHZlTGVhZFR5cGUoZC5mb3JtTWFwLGEuZGV0YWlsLm1haWxJZCkpO2EuZGV0YWlsLmxlYWROYW1lQXJyPWQuZm9ybU1hcDt2b2lkIDA9PT1hLmRldGFpbC5jb25maXJtX2VtYWlsJiYoYS5kZXRhaWwuY29uZmlybV9lbWFpbD0iIik7dm9pZCAwPT09YS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXImJgooYS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXI9IiIpO1Byb21pc2UuYWxsKFtnLmhhc2hUZXh0KGEuZGV0YWlsLmNvbmZpcm1fZW1haWwpLGcuaGFzaFRleHQoYS5kZXRhaWwuY29uZmlybV9waG9uZV9udW1iZXIpXSkudGhlbihjPT57dmFyIFtmLG1dPWM7YS5kZXRhaWwuY29uZmlybV9lbWFpbD1mO2EuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyPW19KTt2b2lkIDAhPT1hc2NUb3BDYXJEZXRhaWxzLm1ha2UmJiIiIT1hc2NUb3BDYXJEZXRhaWxzLm1ha2V8fHZvaWQgMD09PWEuZGV0YWlsLm1ha2V8fCIiPT1hLmRldGFpbC5tYWtlfHwoYS5kZXRhaWwudmNhdGVnb3J5PWEuZGV0YWlsLmNvbmRpdGlvbixhLmRldGFpbC52ZXJzaW9uPWEuZGV0YWlsLnRyaW0sYS5kZXRhaWwuYm9keVR5cGVJRD1hLmRldGFpbC50cmltLGEuZGV0YWlsLmNvbG9yPSIiLGEuZGV0YWlsLnZjYXJidXJhbnQ9IiIsYS5kZXRhaWwuZGF0ZV9saXN0aW5nPSIiLGFzY1VwZGF0ZVRvcENhckRhdGEoYS5kZXRhaWwpKTsKc2V0VGltZW91dChmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLGEuZGV0YWlsKX0sMjUwKTsiU01TSW5mb0xlYWQiIT1hLmRldGFpbC5tYWlsSWQmJiJTTVNMZWFkIiE9YS5kZXRhaWwubWFpbElkfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2NvbW1fc3VibWlzc2lvbiIsYS5kZXRhaWwpfSwyNTApfSk7JCgiI1NsaWRlV2lkZ2V0Rm9ybSBhLmJ0bi1kZWZhdWx0Iikub24oImNsaWNrIixmdW5jdGlvbigpe2xldCBiPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCwiU2xpZGVXaWRnZXRGb3JtIik7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbiIse2RlcGFydG1lbnQ6InNhbGVzIixsZWFkVHlwZTpiLGN1cnJlbnRVUkw6IiJ9KX0pOyQoZG9jdW1lbnQpLm9uKCJmb3JtLnN0ZXAiLCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3JldGFpbF9wcm9jZXNzIiwKYil9KTskKGRvY3VtZW50KS5vbigibXVsdGlGb3JtRmluYW5jZVN1Ym1pdCIsZG9jdW1lbnQuYm9keSxmdW5jdGlvbihiKXtiPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJmaW5hbmNlIixsZWFkVHlwZTpiLGN1cnJlbnRVUkw6IiJ9KX0pfSwxRTMpO3dpbmRvdy5kMmFzYz1nO3dpbmRvdy5kMmFzY0RhdGFNYXA9aH07Ci8qKiAvbS9qcy9qcXVlcnkucmV2ZWFsLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeXJldmVhbGpzX2Nfb249IjIwMjYtMDUtMDUgMTY6MzA6MDMiOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oYil7YigiYm9keSIpLm9uKCJjbGljayIsImFbZGF0YS1yZXZlYWwtaWRdIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCk7YT1iKHRoaXMpLmF0dHIoImRhdGEtcmV2ZWFsLWlkIik7YigiIyIrYSkucmV2ZWFsKGIodGhpcykuZGF0YSgpKX0pO2IuZm4ucmV2ZWFsPWZ1bmN0aW9uKGEpe2E9Yi5leHRlbmQoe30se2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITAsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCIsY2xvc2VvbmVzY2FwZTohMH0sYSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2Z1bmN0aW9uIGYoKXsib2JqZWN0Ij09dHlwZW9mIHBvcHVwU3VwZXJ2aXNvciYmc2V0VGltZW91dChwb3B1cFN1cGVydmlzb3IucmVwb3NpdGlvbiwxRTMpO2c9ITF9dmFyIGM9Yih0aGlzKSxoPXBhcnNlSW50KGMuY3NzKCJ0b3AiKSksbT1jLmhlaWdodCgpKwpoLGc9ITEsZD1iKCIucmV2ZWFsLW1vZGFsLWJnIik7MD09ZC5sZW5ndGgmJihkPWIoJzxkaXYgY2xhc3M9InJldmVhbC1tb2RhbC1iZyIgLz4nKS5pbnNlcnRBZnRlcihjKSk7Yy5vbigicmV2ZWFsOm9wZW4iLGZ1bmN0aW9uKCl7dmFyIGs9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuaW5uZXJIZWlnaHQ\/d2luZG93LmlubmVySGVpZ2h0OmIod2luZG93KS5oZWlnaHQoKSxuPWIoYykub3V0ZXJIZWlnaHQoKTtiKGMpLm9mZnNldCgpO2IoZG9jdW1lbnQpLnNjcm9sbFRvcCgpO3ZhciBsPS9Nb2JpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPzU6MjAsZT0oay1uKS8yK2w7ZT1lPGx8fGs8bj9sOmU7MDxiKCIjZDJjX2JvZHlDb250ZW50IikubGVuZ3RoJiYoZS09YigiI2QyY19ib2R5Q29udGVudCIpLm9mZnNldCgpLnRvcCk7MDxiKCIuc2xvdE1hY2hpbmVDb250YWluZXIiKS5sZW5ndGgmJmIoIi5zbG90TWFjaGluZUNvbnRhaW5lciIpLnNob3coKTtkLm9mZigiY2xpY2subW9kYWxFdmVudCIpOwpiKCIuIithLmRpc21pc3Ntb2RhbGNsYXNzKS5vZmYoImNsaWNrLm1vZGFsRXZlbnQiKTtnfHwoZz0hMCwiZmFkZUFuZFBvcCI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKS1tLG9wYWNpdHk6MCx2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pLGQuZmFkZUluKGEuYW5pbWF0aW9uc3BlZWQvMiksYy5kZWxheShhLmFuaW1hdGlvbnNwZWVkLzIpLmFuaW1hdGUoe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlKyJweCIsb3BhY2l0eToxfSxhLmFuaW1hdGlvbnNwZWVkLGYoKSkpLCJmYWRlIj09YS5hbmltYXRpb24mJihjLmNzcyh7b3BhY2l0eTowLHZpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlfSksZC5mYWRlSW4oYS5hbmltYXRpb25zcGVlZC8yKSxjLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQvMikuYW5pbWF0ZSh7b3BhY2l0eToxfSxhLmFuaW1hdGlvbnNwZWVkLGYoKSkpLCJub25lIj09YS5hbmltYXRpb24mJgooYy5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlfSksZC5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pLGYoKSksImV4dGVybmFsQW5pbWF0aW9uIj09YS5hbmltYXRpb24mJihjLmNzcyh7dmlzaWJpbGl0eToidmlzaWJsZSIsdG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpK2UsZGlzcGxheToibm9uZSJ9KS5zaG93KCksZC5jc3Moe2Rpc3BsYXk6ImJsb2NrIn0pLGYoKSkpO2Mub2ZmKCJyZXZlYWw6b3BlbiIpfSk7Yy5vbigicmV2ZWFsOmNsb3NlIixmdW5jdGlvbigpe2IoImJvZHkiKS5jc3MoIm92ZXJmbG93IiwiIik7YigiLnNsb3RNYWNoaW5lQ29udGFpbmVyIikuaGlkZSgpO2lmKCFnJiYoZz0hMCwiZmFkZUFuZFBvcCI9PWEuYW5pbWF0aW9uJiYoZC5kZWxheShhLmFuaW1hdGlvbnNwZWVkKS5mYWRlT3V0KGEuYW5pbWF0aW9uc3BlZWQpLGMuYW5pbWF0ZSh7dG9wOmIoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLW0rInB4IixvcGFjaXR5OjB9LAphLmFuaW1hdGlvbnNwZWVkLzIsZnVuY3Rpb24oKXtjLmNzcyh7dG9wOmgsb3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtmKCl9KSksImZhZGUiPT1hLmFuaW1hdGlvbiYmKGQuZGVsYXkoYS5hbmltYXRpb25zcGVlZCkuZmFkZU91dChhLmFuaW1hdGlvbnNwZWVkKSxjLmFuaW1hdGUoe29wYWNpdHk6MH0sYS5hbmltYXRpb25zcGVlZCxmdW5jdGlvbigpe2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIix0b3A6aH0pO2YoKX0pKSwibm9uZSI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3Zpc2liaWxpdHk6ImhpZGRlbiIsdG9wOmh9KSxkLmNzcyh7ZGlzcGxheToibm9uZSJ9KSksImV4dGVybmFsQW5pbWF0aW9uIj09YS5hbmltYXRpb24pKWMuaGlkZSgpLm9uZSgiYW5pbWF0aW9uRW5kIixmdW5jdGlvbigpe2IodGhpcykuY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHRvcDpoLGRpc3BsYXk6Im5vbmUifSk7ZC5jc3Moe2Rpc3BsYXk6Im5vbmUifSl9KTtjLm9mZigicmV2ZWFsOmNsb3NlIik7CiJ1bmRlZmluZWQiIT10eXBlb2YgYS5jbG9zZWQmJmEuY2xvc2VkKCl9KTtjLnRyaWdnZXIoInJldmVhbDpvcGVuIik7YigiLiIrYS5kaXNtaXNzbW9kYWxjbGFzcykub24oImNsaWNrLm1vZGFsRXZlbnQgdG91Y2hzdGFydCIsZnVuY3Rpb24oKXtjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7YS5jbG9zZW9uYmFja2dyb3VuZGNsaWNrJiYoZC5jc3Moe2N1cnNvcjoicG9pbnRlciJ9KSxkLm9uKCJjbGljay5tb2RhbEV2ZW50IixmdW5jdGlvbigpe2MudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KSk7aWYoYS5jbG9zZW9uZXNjYXBlKWIoImJvZHkiKS5vbigia2V5dXAiLGZ1bmN0aW9uKGspezI3PT09ay53aGljaCYmYy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pfSl9fSkoalF1ZXJ5KTsKLyoqIC9tL2pzL3Byb21vX2R5bmFtaWNfZmlsZV9mci5qcyAqKi8KKGZ1bmN0aW9uKCl7fSk7Ci8qKiAvbS9qcy9iYXNlNjQuanMgKiovCnZhciBfX19kMmNfYmFzZTY0anNfY19vbj0iMjAyNS0wNS0yMyAxNzowNjowOCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfYmFzZTY0anNfY19vbj0iMjAyNC0wNy0wOCAxMDozMDowNSI7InVzZSBzdHJpY3QiOwp2YXIgQmFzZTY0PXtfa2V5U3RyOiJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSIsX2I2NFRlc3Q6UmVnRXhwKCJeKD86W0EtWmEtejAtOSsvXXs0fSkqKD86W0EtWmEtejAtOSsvXXsyfT09fFtBLVphLXowLTkrL117M309KT8kIiksZW5jb2RlOmZ1bmN0aW9uKGEpe3ZhciBkPSIiLGM9MDtmb3IoYT1CYXNlNjQuX3V0ZjhfZW5jb2RlKGEpO2M8YS5sZW5ndGg7KXt2YXIgYj1hLmNoYXJDb2RlQXQoYysrKSxlPWEuY2hhckNvZGVBdChjKyspLGY9YS5jaGFyQ29kZUF0KGMrKyksZz1iPj4yO2I9KGImMyk8PDR8ZT4+NDt2YXIgaD0oZSYxNSk8PDJ8Zj4+NixrPWYmNjM7aXNOYU4oZSk\/aD1rPTY0OmlzTmFOKGYpJiYoaz02NCk7ZD1kK3RoaXMuX2tleVN0ci5jaGFyQXQoZykrdGhpcy5fa2V5U3RyLmNoYXJBdChiKSt0aGlzLl9rZXlTdHIuY2hhckF0KGgpK3RoaXMuX2tleVN0ci5jaGFyQXQoayl9cmV0dXJuIGR9LGRlY29kZTpmdW5jdGlvbihhKXt2YXIgZD0KIiIsYz0wO2ZvcihhPWEucmVwbGFjZSgvW15BLVphLXowLTlcK1wvPV0vZywiIik7YzxhLmxlbmd0aDspe3ZhciBiPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGU9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZj10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxnPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpO2I9Yjw8MnxlPj40O2U9KGUmMTUpPDw0fGY+PjI7dmFyIGg9KGYmMyk8PDZ8ZztkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpOzY0IT1mJiYoZCs9U3RyaW5nLmZyb21DaGFyQ29kZShlKSk7NjQhPWcmJihkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGgpKX1yZXR1cm4gQmFzZTY0Ll91dGY4X2RlY29kZShkKX0sX3V0ZjhfZW5jb2RlOmZ1bmN0aW9uKGEpe3ZhciBkPSIiO2E9YS5yZXBsYWNlKC9cclxuL2csIlxuIik7Zm9yKHZhciBjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciBiPWEuY2hhckNvZGVBdChjKTsxMjg+CmI\/ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKTooMTI3PGImJjIwNDg+Yj9kKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjZ8MTkyKTooZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj4xMnwyMjQpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+NiY2M3wxMjgpKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGImNjN8MTI4KSl9cmV0dXJuIGR9LF91dGY4X2RlY29kZTpmdW5jdGlvbihhKXtmb3IodmFyIGQ9IiIsYz0wLGIsZSxmO2M8YS5sZW5ndGg7KWI9YS5jaGFyQ29kZUF0KGMpLDEyOD5iPyhkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGIpLGMrKyk6MTkxPGImJjIyND5iPyhlPWEuY2hhckNvZGVBdChjKzEpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGImMzEpPDw2fGUmNjMpLGMrPTIpOihlPWEuY2hhckNvZGVBdChjKzEpLGY9YS5jaGFyQ29kZUF0KGMrMiksZCs9U3RyaW5nLmZyb21DaGFyQ29kZSgoYiYxNSk8PDEyfChlJjYzKTw8NnxmJjYzKSxjKz0zKTtyZXR1cm4gZH0sd2hpdGVMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuWyJ0cmFpbGVycyJdfSwKaXNCYXNlNjQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEJhc2U2NC53aGl0ZUxpc3QoKS5pbmNsdWRlcyhhLnRvTG93ZXJDYXNlKCkpfHwidW5kZWZpbmVkIj09PXR5cGVvZiBhfHwiIj09PWF8fCIiPT09YS50cmltKCl8fDQ+PWEubGVuZ3RoPyExOkJhc2U2NC5lbmNvZGUoQmFzZTY0LmRlY29kZShhKSk9PWF9fTsKLyoqIC9tL2pzL2QyY3Rjay91cHJvZmlsZS5maW5hbC5taW4uanMgKiovCmFjdGl2ZVVzZXJQcm9maWxlTW5nPXtvbnJlYWR5Om51bGwsb25ub3Rmb3VuZDpudWxsLGRpc2FibGVkOiExLHVpZDpudWxsLGFjdGl2ZVN0ZXA6MCxzd2ZTdG9yZTohMSxyZWdpc3RlcmVkUGFnZVZpZXdzOm51bGwscmVnaXN0ZXJlZEV2ZW50czpudWxsLHNlc3Npb25pZDpudWxsLHJlZ2lzdGVyZWRDYWxsYmFja3M6bnVsbCxyZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrczpudWxsLHBhZ2VWaWV3Q291bnQ6bnVsbCxfX3Byb3BlcnRpZXM6bnVsbCxqcXVlcnlBY3RpdmU6ITAsaXNEMkNTaXRlOiEwLF9fcmVzZXRWOjkscmVzZXRTZWNvbmRQYXNzOiExLF9fb3V0cHV0RGl2TXNnOiExLF9fb3V0cHV0Q29uc29sZU1zZzohMSxhamF4TW5nOnthc3luYzohMCxfbGFzdFg6bnVsbCx4OmZ1bmN0aW9uKCl7dHJ5e2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIFhNTEh0dHBSZXF1ZXN0KXJldHVybiBuZXcgWE1MSHR0cFJlcXVlc3Q7Zm9yKHZhciBhPVsiTVNYTUwyLlhtbEh0dHAuNS4wIiwKCQkJIk1TWE1MMi5YbWxIdHRwLjQuMCIsIk1TWE1MMi5YbWxIdHRwLjMuMCIsIk1TWE1MMi5YbWxIdHRwLjIuMCIsIk1pY3Jvc29mdC5YbWxIdHRwIl0sYixkPTA7ZDxhLmxlbmd0aDtkKyspdHJ5e2I9bmV3IEFjdGl2ZVhPYmplY3QoYVtkXSk7YnJlYWt9Y2F0Y2goYyl7fX1jYXRjaChjKXt9cmV0dXJuIGJ9LF9zZW5kOmZ1bmN0aW9uKGEsYixkLGMsZSxoKXt0cnl7dmFyIGY9dGhpcy54KCk7dGhpcy5fbGFzdFg9ZjtmLm9wZW4oZCxhLGUpO3RyeXtmLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIixmdW5jdGlvbihxKXsidW5kZWZpbmVkIiE9dHlwZW9mIGgmJm51bGwhPWgmJmgoZixmLnN0YXR1c1RleHQsRXJyb3IoZi5yZXNwb25zZVRleHQpKX0pfWNhdGNoKHEpe31mLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQ9PWYucmVhZHlTdGF0ZT9iKGYucmVzcG9uc2VUZXh0KToidW5kZWZpbmVkIiE9dHlwZW9mIGgmJm51bGwhPWgmJmgoZixmLnN0YXR1c1RleHQsRXJyb3IoZi5yZXNwb25zZVRleHQpKX07CgkJCSJQT1NUIj09ZCYmZi5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKTtmLnNlbmQoYyl9Y2F0Y2gocSl7InVuZGVmaW5lZCIhPXR5cGVvZiBoJiZudWxsIT1oJiZoKGYsInVua25vd24iLHEpfX0sYWpheDpmdW5jdGlvbihhKXt2YXIgYj10aGlzO3RyeXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGEudHlwZSYmKGEudHlwZT0iR0VUIiksInVuZGVmaW5lZCI9PXR5cGVvZiBhLmRhdGEmJihhLmRhdGE9e30pLHdpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5hamF4KSQuYWpheChhKS5kb25lKGZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5kb25lJiZhLmRvbmUoYyl9KS5mYWlsKGZ1bmN0aW9uKGMsZSxoKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZmFpbCYmYS5mYWlsKGMsZSxoKX0pLmFsd2F5cyhmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5hbHdheXMmJmEuYWx3YXlzKCl9KS5kb25lKGZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT0KCQl0eXBlb2YgYS5zdWNjZXNzJiZhLnN1Y2Nlc3MoYyl9KS5hbHdheXMoZnVuY3Rpb24oYyxlKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuY29tcGxldGUmJmEuY29tcGxldGUoYi5fbGFzdFgsInVuZGVmaW5lZCIhPXR5cGVvZiBiLl9sYXN0WC5zdGF0dXNUZXh0P2IuX2xhc3RYLnN0YXR1c1RleHQ6IiIpfSk7ZWxzZXt2YXIgZD1iLl9nZXQ7InBvc3QiPT1hLnR5cGUudG9Mb3dlckNhc2UoKSYmKGQ9Yi5fcG9zdCk7ZChhLnVybCxhLmRhdGEsZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmRvbmUmJmEuZG9uZShjKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuc3VjY2VzcyYmYS5zdWNjZXNzKGMpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5jb21wbGV0ZSYmYS5jb21wbGV0ZSgpOyJ1bmRlZmluZWQiIT10eXBlb2YgYS5hbHdheXMmJmEuYWx3YXlzKCl9LGIuYXN5bmMsZnVuY3Rpb24oYyxlLGgpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5mYWlsJiZhLmZhaWwoYyxlLGgpfSl9fWNhdGNoKGMpe2NvbnNvbGUmJgoJCWNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBhY2Nlc3NpbmcgYWpheE1uZy5nZXQ6ICVzIixjLm1lc3NhZ2UpfX0sX2dldDpmdW5jdGlvbihhLGIsZCxjLGUpe3ZhciBoPVtdLGY7Zm9yKGYgaW4gYiloLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGYpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYltmXSkpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPSEwO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuX3NlbmQoYSsiPyIraC5qb2luKCImIiksZCwiR0VUIixudWxsLGMsZSl9LF9wb3N0OmZ1bmN0aW9uKGEsYixkLGMsZSl7dmFyIGg9W10sZjtmb3IoZiBpbiBiKWgucHVzaChlbmNvZGVVUklDb21wb25lbnQoZikrIj0iK2VuY29kZVVSSUNvbXBvbmVudChiW2ZdKSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9ITA7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5fc2VuZChhLGQsIlBPU1QiLGguam9pbigiJiIpLAoJCQljLGUpfSxnZXRTY3JpcHQ6ZnVuY3Rpb24oYSxiKXt0cnl7aWYod2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmdldFNjcmlwdCkkLmdldFNjcmlwdChhLGIpO2Vsc2V7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IiksYz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF07ZC5hc3luYz0xO2Qub25sb2FkPWQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGUsaCl7aWYoaHx8IWQucmVhZHlTdGF0ZXx8L2xvYWRlZHxjb21wbGV0ZS8udGVzdChkLnJlYWR5U3RhdGUpKWQub25sb2FkPWQub25yZWFkeXN0YXRlY2hhbmdlPW51bGwsZD12b2lkIDAsIWgmJmImJnNldFRpbWVvdXQoYiwwKX07ZC5zcmM9YTtjLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGQsYyl9fWNhdGNoKGUpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciByZXRyaWV2aW5nIGpzIHNjcmlwdC4gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuOiAlcyIsCgkJCWUubWVzc2FnZSl9fX0sY29va2llTW5nOntyZWFkQ29va2llVmFsdWU6ZnVuY3Rpb24oYSl7dmFyIGI9bnVsbDt0cnl7aWYod2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZSliPSQuY29va2llKGEpLCJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9bnVsbCk7ZWxzZXthKz0iPSI7Zm9yKHZhciBkPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpLGM9MDtjPGQubGVuZ3RoO2MrKyl7Zm9yKHZhciBlPWRbY107IiAiPT1lLmNoYXJBdCgwKTspZT1lLnN1YnN0cmluZygxLGUubGVuZ3RoKTtpZigwPT1lLmluZGV4T2YoYSkpe2I9ZS5zdWJzdHJpbmcoYS5sZW5ndGgsZS5sZW5ndGgpO2JyZWFrfX19fWNhdGNoKGgpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciByZWFkaW5nIGNvb2tpZTogJXMiLGgubWVzc2FnZSl9cmV0dXJuIGJ9LHNldENvb2tpZVZhbHVlOmZ1bmN0aW9uKGEsYixkLGMpe3RyeXtpZighMCE9PXRoaXMuZGlzYWJsZWQpe2lmKCJ1bmRlZmluZWQiPT0KCQkJdHlwZW9mIGR8fG51bGw9PWQpZD0iLyI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jKWM9MDsidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPW51bGwpO3ZhciBlPW5ldyBEYXRlO2Uuc2V0VGltZShlLmdldFRpbWUoKSs4NjRFNSpjKTt3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llPyQuY29va2llKGEsYix7cGF0aDpkLHNlY3VyZTohMCxleHBpcmVzOjA9PWM\/IiI6ZX0pOihleHBpcmVzPTAhPWM\/IjsgZXhwaXJlcz0iK2UudG9HTVRTdHJpbmcoKToiIixkb2N1bWVudC5jb29raWU9YSsiPSIrYitleHBpcmVzKyI7IHNlY3VyZTsgcGF0aD0iK2QsYiYmYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmxvZ0Nvb2tpZShhLGIsYyxkKSl9fWNhdGNoKGgpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBzZXR0aW5nIGNvb2tpZTogJXMiLGgubWVzc2FnZSl9fSxkZWxldGVDb29raWU6ZnVuY3Rpb24oYSl7dHJ5e3dpbmRvdy5qUXVlcnkmJgoJCSJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWU\/KCQuY29va2llKGEsbnVsbCksJC5jb29raWUoYSxudWxsLHtwYXRoOiIvIn0pKTp0aGlzLnNldENvb2tpZVZhbHVlKGEsbnVsbCwtMSl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGRlbGV0aW5nIGNvb2tpZTogJXMiLGIubWVzc2FnZSl9fSxsb2dDb29raWU6ZnVuY3Rpb24oYSxiLGQsYyxlKXsidW5kZWZpbmVkIj09PXR5cGVvZiBlJiYoZT01KTsidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyP2UmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcubG9nQ29va2llKGEsYixkLGMsZS0xKX0sMTAwKTp3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhhLGIsZCxjKX19LF9fdXNlUHJveHk6ZnVuY3Rpb24oKXtyZXR1cm4hMT09PXRoaXMuaXNEMkNTaXRlPyExOiEwfSxfaXNCb3Q6ZnVuY3Rpb24oKXtyZXR1cm4vYm90fGdvb2dsZWJvdHxjcmF3bGVyfHNwaWRlcnxyb2JvdHxjcmF3bGluZy9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/CgkJITA6ITF9LGdldFN0YXRzVVJJOmZ1bmN0aW9uKCl7dmFyIGE9Ii9wcm94eV9zZDJjLyI7dHJ5eyExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlJiYoYT0iaHR0cDovL3N0YXRzLmQyY21lZGlhLmNhLyIsImh0dHBzOiI9PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCYmKGE9Imh0dHBzOi8vc3Nsc3RhdHMuZDJjbWVkaWEuY2EvIikpfWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gZ2V0U3RhdHNVUkk6ICVzIixiLm1lc3NhZ2UpLGE9Imh0dHBzOi8vc3Nsc3RhdHMuZDJjbWVkaWEuY2EvIn1yZXR1cm4gYX0sZ2V0RlBVUkk6ZnVuY3Rpb24oKXtpZighMD09PXRoaXMuZGlzYWJsZWQpcmV0dXJuIiI7dmFyIGE9Ii9qcy9kMmN0Y2svZnByaW50LnYyLm1pbi5qcyI7dHJ5e2E9ITE9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGU\/bnVsbCE9d2luZG93LmxvY2F0aW9uJiYidW5kZWZpbmVkIiE9Cgl0eXBlb2Ygd2luZG93LmxvY2F0aW9uLmhyZWYmJi0xIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJjcm0yLmQyY21lZGlhLmNhIik\/Imh0dHBzOi8vY3JtMi5kMmNtZWRpYS5jYS9hc3NldHMvanMvZDJjdGNrL2ZwcmludC52Mi5qcyI6Imh0dHBzOi8vd3d3LmF1dG9hdWJhaW5lLmNvbS9qcy9kMmN0Y2svZnByaW50LnYyLm1pbi5qcyI6ITA9PT10aGlzLl9fb3V0cHV0RGl2TXNnPyIvanMvZDJjdGNrL2ZwcmludC52Mi5qcyI6Ii9qcy9kMmN0Y2svZnByaW50LnYyLm1pbi5qcyJ9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBnZXRGUFVSSTogJXMiLGIubWVzc2FnZSksYT0iL2pzL2QyY3Rjay9mcHJpbnQudjIubWluLmpzIn1yZXR1cm4gYX0sZ2V0U2Vzc2lvbklEOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ7CgkJdmFyIGE9d2luZG93LmFjdGl2ZVNlc3Npb25JRDtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fDA9PWEpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD13aW5kb3cuYWN0aXZlU2Vzc2lvbklELGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZDthPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInVzaWQiKTtyZXR1cm4gbnVsbCE9YT8oYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPWEsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkKTowfSxyZWdpc3RlckNhbGxiYWNrOmZ1bmN0aW9uKGEpe2lmKCEwPT09dGhpcy5kaXNhYmxlZCl7aWYobnVsbCE9YSl0cnl7YSgpfWNhdGNoKGIpe31yZXR1cm4hMX1udWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcz1bXSk7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJgoJbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD9hKCk6YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcy5wdXNoKGEpfSxyZWdpc3RlclNlc3Npb25DYWxsYmFjazpmdW5jdGlvbihhKXtpZighMD09PXRoaXMuZGlzYWJsZWQpe2lmKG51bGwhPWEpdHJ5e2EoKX1jYXRjaChiKXt9cmV0dXJuITF9bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcz1bXSk7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQmJm51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCYmMCE9YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkP2EoKTphY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcy5wdXNoKGEpfSwKCV9fbm90aWZ5VVVJRDpmdW5jdGlvbigpe3RyeXtpZighMD09PXRoaXMuZGlzYWJsZWQpe3RyeXtiKCl9Y2F0Y2goZCl7fXJldHVybiExfWlmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3Mpe2Zvcih2YXIgYT0wO2E8YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcy5sZW5ndGg7YSsrKXt2YXIgYj1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzW2FdO2IoKX1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzPW51bGx9fWNhdGNoKGQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gX19ub3RpZnlVVUlEOiAlcyIsZC5tZXNzYWdlKX19LF9fbm90aWZ5U2Vzc2lvbklEOmZ1bmN0aW9uKCl7aWYoITA9PT10aGlzLmRpc2FibGVkKXJldHVybiExO3ZhciBhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpOwoJCWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YXx8IjAiPT1hfHwwPT1hKXZhciBiPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dHJ5e251bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzP2NsZWFySW50ZXJ2YWwoYik6MCE9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpJiYoY2xlYXJJbnRlcnZhbChiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVNlc3Npb25JRCgpKX1jYXRjaChkKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIk5vdGlmeSBzZXNzaW9uaWQgZmFpbGVkIHdpdGg6ICVzIixkLm1lc3NhZ2UpfX0sNTAwKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcyl0cnl7Zm9yKGE9MDthPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzLmxlbmd0aDthKyspKDAsYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3NbYV0pKCk7CgkJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzPW51bGx9Y2F0Y2goZCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmV4cGVjdGVkIGVycm9yIGNhdWdodCBpbiBfX25vdGlmeVNlc3Npb25JRDogJXMiLGQubWVzc2FnZSl9fSxsb2dNc2c6ZnVuY3Rpb24oYSl7dHJ5e2lmKCEwPT09dGhpcy5kaXNhYmxlZClyZXR1cm4hMTshMD09PXRoaXMuX19vdXRwdXREaXZNc2cmJiQoZG9jdW1lbnQuYm9keSkuYXBwZW5kKCI8ZGl2PiIrYSsiPC9kaXY+Iik7ITA9PT10aGlzLl9fb3V0cHV0Q29uc29sZU1zZyYmY29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKGEpfWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gbWVzc2FnZSBsb2dnaW5nLiBIb3cgaXJvbmljOiAlcyIsYi5tZXNzYWdlKX19LGNoZWNrU2NoZWR1bGVkUmVzZXQ6ZnVuY3Rpb24oKXt2YXIgYT0KCQkhMTt0cnl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYj1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkX3JzdCIpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YiliPTA7YiE9dGhpcy5fX3Jlc2V0ViYmKGE9ITAsYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX3JzdCIsdGhpcy5fX3Jlc2V0ViwiLyIsNEUzKSl9Y2F0Y2goZCl7dGhpcy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgaW4gc2NoZWR1bGVkIHJlc2V0IGNoZWNrOiAiK2QubWVzc2FnZSl9cmV0dXJuIGF9LGdldEFjdGl2ZVByb2ZpbGVpZDpmdW5jdGlvbigpe2lmKG51bGwhPXRoaXMudWlkKXJldHVybiBudWxsPT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEJiYod2luZG93LmFjdGl2ZVByb2ZpbGVJRD10aGlzLnVpZCksdGhpcy51aWQ7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4gbnVsbDsKCQl2YXIgYT10aGlzLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWQiKTtpZihudWxsIT1hJiYwPGEubGVuZ3RoKXJldHVybiB0aGlzLmFjdGl2ZVByb2ZpbGVJRD10aGlzLnVpZD1hLHRoaXMuX19maXJlUmVhZHlFdmVudCgpLHRoaXMudWlkO2E9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF92bGQzIik7aWYobnVsbCE9YSYmMCE9YS5sZW5ndGgpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZFVzZXJEYXRhQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZExvY2FsU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDsKCQkJYWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkR2xvYmFsU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRTZXNzaW9uU3RvcmFnZUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRGcm9tTG9jYWxEQigpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRGTFZDb29raWUoKX1lbHNlIHNldFRpbWVvdXQoImFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDMpIiwKCQkJNTAwKTtyZXR1cm4gbnVsbH0sZW5zdXJlVmFsaWRJRDpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmd8fCJzdHJpbmciPT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYwPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQubGVuZ3RoKWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1udWxsfSxzZXRBY3RpdmVQcm9maWxlaWQ6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWR8fCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0REJDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRQTkdDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRFVGFnQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0VXNlckRhdGFDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRMb2NhbFN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRHbG9iYWxTdG9yYWdlQ29va2llKCk7CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0U2Vzc2lvblN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRGTFZDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVVVSUQoKX0sX19jb250aW51ZUxvYWQ6ZnVuY3Rpb24oYSl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fZmlyZVJlYWR5RXZlbnQoKTtlbHNlIHN3aXRjaChhKXtjYXNlIDE6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRVRhZ0Nvb2tpZSgpO2JyZWFrO2Nhc2UgMjphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRQTkdDb29raWUoKTticmVhaztkZWZhdWx0OmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fZmlyZU5vdEZvdW5kKCl9fSxfX2ZpcmVSZWFkeUV2ZW50OmZ1bmN0aW9uKCl7aWYobnVsbCE9CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcub25yZWFkeSlhY3RpdmVVc2VyUHJvZmlsZU1uZy5vbnJlYWR5KGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlVVUlEKCl9LF9fZmlyZU5vdEZvdW5kOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcub25ub3Rmb3VuZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5vbm5vdGZvdW5kKCl9LHNldEZMVkNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yLnBsdWdpbnMmJiJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yLnBsdWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCJdfHx3aW5kb3cuQWN0aXZlWE9iamVjdCYmMCE9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIikpe2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5zd2ZTdG9yZSYmCgkJKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlPSEwLCJ1bmRlZmluZWQiPT10eXBlb2YgU3dmU3RvcmUpKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLmdldFNjcmlwdCgiL2pzL3N3ZnN0b3JlLmpzIixhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXRGTFZDb29raWUpO3JldHVybn10cnl7dmFyIGE9bmV3IFN3ZlN0b3JlKHtuYW1lc3BhY2U6InVwcm9maWxlIixzd2ZfdXJsOiIvZmxhc2gvc3RvcmFnZS5zd2YiLG9ucmVhZHk6ZnVuY3Rpb24oKXthLnNldCgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpfSxvbmVycm9yOmZ1bmN0aW9uKCl7fX0pfWNhdGNoKGIpeyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmbnVsbCE9Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gc2V0IEZMViBDb29raWUuIEVycm9yOiAiK2IubWVzc2FnZSl9fX1jYXRjaChiKXsidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJm51bGwhPWNvbnNvbGUmJmNvbnNvbGUubG9nJiYKCWNvbnNvbGUubG9nKCJNQUlOOiBVbmFibGUgdG8gc2V0IEZMViBDb29raWUuIEVycm9yOiAiK2IubWVzc2FnZSl9fX0sX19sb2FkRkxWQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yLnBsdWdpbnMmJiJvYmplY3QiPT10eXBlb2YgbmF2aWdhdG9yLnBsdWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCJdfHx3aW5kb3cuQWN0aXZlWE9iamVjdCYmMCE9bmV3IEFjdGl2ZVhPYmplY3QoIlNob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoIikpe2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5zd2ZTdG9yZSYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnN3ZlN0b3JlPSEwLCJ1bmRlZmluZWQiPT10eXBlb2YgU3dmU3RvcmUpKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLmdldFNjcmlwdCgiL2pzL3N3ZnN0b3JlLmpzIiwKCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRGTFZDb29raWUpO3JldHVybn10cnl7dmFyIGE9bmV3IFN3ZlN0b3JlKHtuYW1lc3BhY2U6InVwcm9maWxlIixzd2ZfdXJsOiIvZmxhc2gvc3RvcmFnZS5zd2YiLG9ucmVhZHk6ZnVuY3Rpb24oKXt2YXIgYj1hLmdldCgidWlkIik7InVuZGVmaW5lZCIhPXR5cGVvZiBiJiZudWxsIT1iJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDEpfSxvbmVycm9yOmZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMSl9fSl9Y2F0Y2goYil7fX1lbHNlIGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDEpfX0sX19sb2FkRnJvbUxvY2FsREI6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5vcGVuRGF0YWJhc2UmJgoJZGF0YWJhc2UudHJhbnNhY3Rpb24oZnVuY3Rpb24oYSl7YS5leGVjdXRlU3FsKCJTRUxFQ1QgdmFsdWUgRlJPTSB1cHJvZmlsZSBXSEVSRSBuYW1lPT8iLFsidWlkIl0sZnVuY3Rpb24oYixkKXsxPD1kLnJvd3MubGVuZ3RoJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWQucm93cy5pdGVtKDApLnZhbHVlKX0sZnVuY3Rpb24oYixkKXt9KX0pfWNhdGNoKGEpe319fSxzZXREQkNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e2lmKHdpbmRvdy5vcGVuRGF0YWJhc2Upe3ZhciBhPXdpbmRvdy5vcGVuRGF0YWJhc2UoInNxbGl0ZV91cHJvZmlsZSIsIiIsInVwcm9maWxlIiwxMDQ4NTc2KTsidW5kZWZpbmVkIiE9dHlwZW9mIHZhbHVlJiZhLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKGIpe2IuZXhlY3V0ZVNxbCgiQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgdXByb2ZpbGUoaWQgSU5URUdFUiBOT1QgTlVMTCBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5ULCB1aWQgVEVYVCBOT1QgTlVMTCwgdmFsdWUgVEVYVCBOT1QgTlVMTCwgVU5JUVVFICh1aWQpKSIsCgkJW10sZnVuY3Rpb24oZCxjKXt9LGZ1bmN0aW9uKGQsYyl7fSk7Yi5leGVjdXRlU3FsKCJJTlNFUlQgT1IgUkVQTEFDRSBJTlRPIHVwcm9maWxlKHVpZCwgdmFsdWUpIFZBTFVFUyg\/LCA\/KSIsWyJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZF0sZnVuY3Rpb24oZCxjKXt9LGZ1bmN0aW9uKGQsYyl7fSl9KX19Y2F0Y2goYil7fX19LF9fbG9hZFBOR0Nvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7aWYoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIikuZ2V0Q29udGV4dCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7YS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Euc3R5bGUucG9zaXRpb249ImFic29sdXRlIjthLndpZHRoPTIwMDthLmhlaWdodD0xO3ZhciBiPWEuZ2V0Q29udGV4dCgiMmQiKSxkPW5ldyBJbWFnZTsKCQlkLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7ZC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Quc3JjPSIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMS5wbmciO2Qub25lcnJvcj1mdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDMpfTtkLm9ubG9hZD1mdW5jdGlvbigpe3RyeXtiLmRyYXdJbWFnZShkLDAsMCk7Zm9yKHZhciBjPWIuZ2V0SW1hZ2VEYXRhKDAsMCwyMDAsMSkuZGF0YSxlPSIiLGg9MCxmPWMubGVuZ3RoO2g8ZiYmMCE9Y1toXTtoKz00KXtlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGNbaF0pO2lmKDA9PWNbaCsxXSlicmVhaztlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGNbaCsxXSk7aWYoMD09Y1toKzJdKWJyZWFrO2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoY1toKzJdKX0wPGUubGVuZ3RoJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWUpfWNhdGNoKHEpe31hY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgzKX19fWNhdGNoKGMpe319fSwKCXNldFBOR0Nvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9bmV3IEltYWdlO2Euc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjthLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7YS5zcmM9Ii9pbWFnZXNfYXBpL2QyY2lnY2FjaGUxLnBuZz92YWw9IithY3RpdmVVc2VyUHJvZmlsZU1uZy51aWR9fSxfX2xvYWRFVGFnQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RoaXMuYWpheE1uZy5hamF4KHt1cmw6Ii9pbWFnZXNfYXBpL2QyY2lnY2FjaGUyLnBuZyIsdHlwZToiR0VUIixzdWNjZXNzOmZ1bmN0aW9uKGEpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1hfSwKCQljb21wbGV0ZTpmdW5jdGlvbihhLGIpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDIpfX0pfX0sc2V0RVRhZ0Nvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGE9bmV3IEltYWdlO2Euc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjthLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7YS5zcmM9Ii9pbWFnZXNfYXBpL2QyY2lnY2FjaGUyLnBuZz92YWw9IithY3RpdmVVc2VyUHJvZmlsZU1uZy51aWR9fSxfX2xvYWRVc2VyRGF0YUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7dmFyIGE9dGhpcy5jcmVhdGVFbGVtKCJkaXYiLCJ1c2VyZGF0YV9lbCIsCgkJMSk7YS5zdHlsZS5iZWhhdmlvcj0idXJsKCNkZWZhdWx0I3VzZXJEYXRhKSI7YS5sb2FkKCJ1aWQiKTthY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9YS5nZXRBdHRyaWJ1dGUoInVpZCIpfWNhdGNoKGIpe319fSxzZXRVc2VyRGF0YUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3ZhciBhPXRoaXMuY3JlYXRlRWxlbSgiZGl2IiwidXNlcmRhdGFfZWwiLDEpO2Euc3R5bGUuYmVoYXZpb3I9InVybCgjZGVmYXVsdCN1c2VyRGF0YSkiO2Euc2V0QXR0cmlidXRlKCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCk7YS5zYXZlKCJ1aWQiKX1jYXRjaChiKXt9fX0sX19sb2FkTG9jYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ1aWQiKSl9Y2F0Y2goYSl7fX19LHNldExvY2FsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5sb2NhbFN0b3JhZ2UmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl9Y2F0Y2goYSl7fX19LF9fbG9hZEdsb2JhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e2lmKHdpbmRvdy5nbG9iYWxTdG9yYWdlKXJldHVybiB0aGlzLmdldEhvc3QoKSwKCQlldmFsKCJhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQgPSBnbG9iYWxTdG9yYWdlW2hvc3RdLnVpZCIpfWNhdGNoKGEpe319fSxzZXRHbG9iYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYibm9uZSIhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93Lmdsb2JhbFN0b3JhZ2UmJih0aGlzLmdldEhvc3QoKSxldmFsKCJnbG9iYWxTdG9yYWdlW2hvc3RdLnVpZCA9IGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCIpKX1jYXRjaChhKXt9fX0sX19sb2FkU2Vzc2lvblN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5zZXNzaW9uU3RvcmFnZSYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD0KCQl3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgidWlkIikpfWNhdGNoKGEpe319fSxzZXRTZXNzaW9uU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5zZXNzaW9uU3RvcmFnZSYmd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKX1jYXRjaChhKXt9fX0scmVnaXN0ZXJQYWdlVmlldzpmdW5jdGlvbigpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITA7bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3M9W10pO2Zvcih2YXIgYT0wO2E8YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3cy5sZW5ndGg7YSsrKWlmKHdpbmRvdy5sb2NhdGlvbi5ocmVmPT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzW2FdKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3MucHVzaCh3aW5kb3cubG9jYXRpb24uaHJlZik7cmV0dXJuITB9LHJlZ2lzdGVyUGFnZVZpZXdFdmVudDpmdW5jdGlvbihhLGIsZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMDtpZigidW5kZWZpbmVkIj09dHlwZW9mIGR8fG51bGw9PWQpZD0iIjthPWErInx8fCIrYisifHx8IitkO251bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHMmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzPVtdKTtmb3IoYj0wO2I8YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cy5sZW5ndGg7YisrKWlmKGE9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHNbYl0pcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cy5wdXNoKGEpOwoJCXJldHVybiEwfSxsb2dQYWdlVmlld0V2ZW50OmZ1bmN0aW9uKGEsYixkKXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJQYWdlVmlld0V2ZW50KGEsYikpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZHx8bnVsbD09ZClkPSIiO2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZHx8MD09YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkKWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyU2Vzc2lvbkNhbGxiYWNrKGZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhLGIsZCl9KTtlbHNle3ZhciBjPTA7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cubGFzdFZpZXdJRCl7dmFyIGU9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXZpZXciKTsKCQludWxsIT1lJiYoYz1lKX1lbHNlIGM9d2luZG93Lmxhc3RQYWdlVmlld0lEOyJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09Y3x8MD09Yz9jb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBpZGVudGlmeSBsYXN0IHZpZXcgaWQiKTooZT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpLGM9e3NpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxhY3Rpb246ImV2ZW50Iix2aWV3aWQ6YyxldmVudDphLGVjYXRlZ29yeTpiLGFkZGVkSW5mbzoidW5kZWZpbmVkIiE9dHlwZW9mIGQ\/ZDoiIn0sYWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5hamF4KHt1cmw6ZSsic2VydmljZS9zZXNzaW9uTW5nLnBocCIsdHlwZToiUE9TVCIsZGF0YTpjfSkpfX19fSxsb2dQYWdlVmlld0V4OmZ1bmN0aW9uKCl7dHJ5e2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJQYWdlVmlldygpKXtpZighMD09PQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBhPW51bGw7InVuZGVmaW5lZCIhPXR5cGVvZiBnZXRVcmxWYXJzJiYoYT1nZXRVcmxWYXJzKCkpO2dldEN1c3RvbVZSQj1mdW5jdGlvbihrLHcpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3VzdG9tX3ZhcmlhYmxlcyYmbnVsbCE9Y3VzdG9tX3ZhcmlhYmxlcylmb3IodmFyIHUgaW4gY3VzdG9tX3ZhcmlhYmxlcyl7aWYodS5uYW1lPT1rKXJldHVybiB1LnZhbHVlfWVsc2UgcmV0dXJuIHd9O2dldENLVmFsdWU9ZnVuY3Rpb24oayx3KXt2YXIgdT1nZXRDdXN0b21WUkIoayxudWxsKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHUmJm51bGwhPXUpcmV0dXJuIHU7dT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKGspO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgdXx8bnVsbD09dT9udWxsPT1hfHwidW5kZWZpbmVkIj09dHlwZW9mIGFba10\/InVuZGVmaW5lZCI9PXR5cGVvZiB3PwoJCSIiOnc6YVtrXTp1fTtnZXRVUkxWYWx1ZT1mdW5jdGlvbihrLHcpe2s9ay5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2s9KG5ldyBSZWdFeHAoIltcXD8mXSIraysiPShbXiYjXSopIikpLmV4ZWMod2luZG93LmxvY2F0aW9uLmhyZWYpO2s9bnVsbD09az9udWxsOmtbMV07cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBrfHxudWxsPT1rfHwwPT1rLnRvU3RyaW5nKCkubGVuZ3RoP3c6a307dmFyIGI9IiIsZD0wLGM9IkZSRU5DSCIsZT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IiksaD1mdW5jdGlvbihrKXt2YXIgdz17bWFrZToiIixtb2RlbDoiIix5ZWFyOiIiLHByaWNlOjAsc2l0ZWlkOjAsZGVhbGVyaWQ6MCxsYW5ndWFnZToiRlJFTkNIIn07aWYoIWspcmV0dXJuIHc7az1rLnNwbGl0KC9bOyZdLyk7Zm9yKHZhciB1PTA7dTxrLmxlbmd0aDt1Kyspe3ZhciBCPWtbdV0uc3BsaXQoIj0iKTtpZihCJiYyPT1CLmxlbmd0aCl7dmFyIEU9CgkJdW5lc2NhcGUoQlswXSk7Qj11bmVzY2FwZShCWzFdKTtCPUIucmVwbGFjZSgvXCsvZywiICIpO3dbRV09Qn19cmV0dXJuIHd9O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZSYmbnVsbCE9ZSlmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIHE9ZVtmXTtpZigtMSE9cS5zcmMuaW5kZXhPZigiL3VwbGlnaHQuanM\/Iikpe3ZhciBwPXEuc3JjLnJlcGxhY2UoL15bXlw\/XStcPz8vLCIiKSx5PWgocCk7dmFyIGw9eS5tYWtlO3ZhciBDPXkubW9kZWw7Yj15LnllYXI7dmFyIEE9eS5zaXRlaWQ7dmFyIHo9eS5kZWFsZXJpZDtkPXkucHJpY2U7Yz15Lmxhbmd1YWdlO2JyZWFrfX12YXIgbT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKTtlPTA7aWYoInVuZGVmaW5lZCI9PW18fDA9PW0pe209MDt2YXIgcj1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1c2lkX3RtcCIpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygcnx8bnVsbD09cil7dmFyIHg9CgkJbmV3IERhdGU7eC5zZXRUaW1lKHguZ2V0VGltZSgpKzcyRTUpO3ZhciBnPSI7IGV4cGlyZXM9Iit4LnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPSJ1c2lkX3RtcD0xIitnKyI7IHBhdGg9LyJ9ZWxzZSBlPSEwfXZhciBuPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2lmKC0xPG4uaW5kZXhPZigic3RlcD1yZXN1bWUiKSl7dmFyIHQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgic2Vzc2lkIik7bis9IiZzZXNzaWQ9IisoInVuZGVmaW5lZCIhPXR5cGVvZiB0fHxudWxsIT10P3Q6Ik5VTEwiKX12YXIgdj17c2lkOm0sdXVpZDp3aW5kb3cuYWN0aXZlUHJvZmlsZUlELHNpdGVpZDpBLGRlYWxlcmlkOnosdXRtU291cmNlOmdldFVSTFZhbHVlKCJ1dG1fc291cmNlIiwiIiksdXRtQ2FtcGFpZ246Z2V0VVJMVmFsdWUoInV0bV9jYW1wYWlnbiIsIm9yZ2FuaWMiKSx1dG1LZXl3b3JkOmdldENLVmFsdWUoInV0bV9rZXl3b3JkIiksdXRtTGFuZGluZzpnZXRDS1ZhbHVlKCJ1dG1fbGFuZGluZyIpLAoJCXV0bVNvdXJjZVJldGFyZ2V0aW5nOmdldENLVmFsdWUoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKSx1dG1DYW1wYWlnblJldGFyZ2V0aW5nOmdldENLVmFsdWUoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpLG1ha2U6bCxtb2RlbDpDLHllYXI6aXNOYU4oYik\/KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOmIsbGFuZ3VhZ2U6YyxwYWdlOiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVBhZ2U\/IiI6d2luZG93LmFjdGl2ZVBhZ2UscHJpY2U6ZCxzbG9va3VwOmUsaHJlZjpufSxEPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7dj1KU09OLnN0cmluZ2lmeSh2KTt2PXYucmVwbGFjZUFsbCgiLyIsIlxcLyIpO3RoaXMuYWpheE1uZy5hamF4KHt1cmw6RCsic2VydmljZS9zZXNzaW9uTW5nLnBocCIsZGF0YTp2LGRvbmU6ZnVuY3Rpb24oayl7dHJ5e2lmKCJzdHJpbmciPT10eXBlb2YgayYmKGs9SlNPTi5wYXJzZShrKSksInVuZGVmaW5lZCIhPXR5cGVvZiBrJiYKCQludWxsIT1rJiYoay5jb25zdHJ1Y3Rvcj09W10uY29uc3RydWN0b3J8fGsuY29uc3RydWN0b3I9PXt9LmNvbnN0cnVjdG9yKSl7bT1rLnNlc3Npb25pZDtsYXN0Vmlld0lEPWsudmlld2lkO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9sb2FkUHJvcGVydGllcyhrLnByb3BlcnRpZXMpO3dpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9bTt3aW5kb3cubGFzdFBhZ2VWaWV3SUQ9bGFzdFZpZXdJRDthY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9bTt2YXIgdz1uZXcgRGF0ZTt3LnNldFRpbWUody5nZXRUaW1lKCkrNzJFNSk7dmFyIHU9IjsgZXhwaXJlcz0iK3cudG9HTVRTdHJpbmcoKTtkb2N1bWVudC5jb29raWU9InVzaWQ9IittK3UrIjsgcGF0aD0vIjtkb2N1bWVudC5jb29raWU9InV2aWV3PSIrbGFzdFZpZXdJRCt1KyI7IHBhdGg9LyI7YWN0aXZlVXNlclByb2ZpbGVNbmcuX2RlbGV0ZUNvb2tpZSgidXNpZF90bXAiKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVNlc3Npb25JRCgpfX1jYXRjaChCKXt9dHJ5e251bGwhPQoJCXNpdGVXZWJzb2NrZXRMaXN0ZW5lci5zaXRlaWQmJnNpdGVXZWJzb2NrZXRMaXN0ZW5lci5jb25uZWN0KCl9Y2F0Y2goQil7fX19KX19Y2F0Y2goayl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gc3RhdCBwYWdlIGR1ZSB0byBlcnJvcjogIitrLm1lc3NhZ2UpfX0sbG9nUGFnZVZpZXc6ZnVuY3Rpb24oKXt0cnl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclBhZ2VWaWV3KCkpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoITE9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmUpcmV0dXJuIHRoaXMubG9nUGFnZVZpZXdFeCgpO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzY3JpcHQiKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGEmJm51bGwhPWEpZm9yKHZhciBiPTA7YjxhLmxlbmd0aDtiKyspaWYoLTEhPQoJCWFbYl0uc3JjLmluZGV4T2YoIi91cGxpZ2h0LmpzPyIpKXJldHVybiB0aGlzLmxvZ1BhZ2VWaWV3RXgoKTt2YXIgZD1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0VXJsVmFycyYmKGQ9Z2V0VXJsVmFycygpKTtnZXRDdXN0b21WUkI9ZnVuY3Rpb24oZyxuKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGN1c3RvbV92YXJpYWJsZXMmJm51bGwhPWN1c3RvbV92YXJpYWJsZXMpZm9yKHZhciB0IGluIGN1c3RvbV92YXJpYWJsZXMpe2lmKHQubmFtZT09ZylyZXR1cm4gdC52YWx1ZX1lbHNlIHJldHVybiBufTtnZXRDS1ZhbHVlPWZ1bmN0aW9uKGcsbil7dmFyIHQ9bnVsbDt0cnl7dmFyIHY9Z2V0Q3VzdG9tVlJCKGcsbnVsbCk7InVuZGVmaW5lZCIhPXR5cGVvZiB2JiZudWxsIT12JiYodD12KTtpZihudWxsPT10JiYodD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKGcpLG51bGw9PXQpKXtpZihudWxsPT1kfHwidW5kZWZpbmVkIj09dHlwZW9mIGRbZ10pcmV0dXJuInVuZGVmaW5lZCI9PQoJdHlwZW9mIG4\/IiI6bjt0PWRbZ119fWNhdGNoKEQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciByZXRyaWV2aW5nIGNrVmFsdWUgLS0gJXMiLEQubWVzc2FnZSl9cmV0dXJuIHR9O2dldFVSTFZhbHVlPWZ1bmN0aW9uKGcsbil7Zz1nLnJlcGxhY2UoL1tcW10vLCJcXFsiKS5yZXBsYWNlKC9bXF1dLywiXFxdIik7Zz0obmV3IFJlZ0V4cCgiW1xcPyZdIitnKyI9KFteJiNdKikiKSkuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7Zz1udWxsPT1nP251bGw6Z1sxXTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGd8fG51bGw9PWd8fDA9PWcudG9TdHJpbmcoKS5sZW5ndGg\/bjpnfTthPWZ1bmN0aW9uKCl7aWYoITE9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmUpcmV0dXJuW107dmFyIGc9W107dHJ5e3ZhciBuPVtdLHQ9ZnVuY3Rpb24oayx3KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mICQoIiMiK2spLmF0dHIoImlkIikmJgoJKGs9JCgiIyIraykudmFsKCksInN0cmluZyI9PXR5cGVvZiBrJiYwPGsubGVuZ3RoJiYtMT09ay5pbmRleE9mKCIjIyIpKT9rOnd9O24ucHVzaCgicG9wdXAiKTtuLnB1c2goInBob25lIik7bi5wdXNoKCJsYXN0dmlld2VkIik7bi5wdXNoKCJleHByZXNzY2FyIik7Zm9yKHZhciB2PTA7djxuLmxlbmd0aDt2Kyspe3ZhciBEPXQoblt2XSsibWFrZSIsbnVsbCk7aWYobnVsbCE9RCl7Zy5wdXNoKEQpO2cucHVzaCh0KG5bdl0rIm1vZGVsIixudWxsKSk7Zy5wdXNoKHQoblt2XSsieWVhciIsbnVsbCkpO2JyZWFrfX19Y2F0Y2goayl7Zz1bXSxnLnB1c2goIiIpLGcucHVzaCgiIiksZy5wdXNoKCIiKX0wPT1nLmxlbmd0aCYmZy5wdXNoKCIiKTsxPT1nLmxlbmd0aCYmZy5wdXNoKCIiKTsyPT1nLmxlbmd0aCYmZy5wdXNoKCIiKTtyZXR1cm4gZ307dmFyIGM9Yj0iIixlPSIiO3RyeXt2YXIgaD1hKCk7Yj0wPGgubGVuZ3RoP2hbMF06YjtjPTE8aC5sZW5ndGg\/aFsxXTpjO2U9MjxoLmxlbmd0aD8KCQloWzJdOmV9Y2F0Y2goZyl7ZT1jPWI9IiJ9dHJ5e2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoQ3JpdGVyaWEmJm51bGwhPXNlYXJjaENyaXRlcmlhKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWJ8fDA9PWIubGVuZ3RoKWI9LTE9PXNlYXJjaENyaXRlcmlhLm1ha2U\/IiI6c2VhcmNoQ3JpdGVyaWEubWFrZTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWN8fDA9PWMubGVuZ3RoKWM9LTE9PXNlYXJjaENyaXRlcmlhLm1vZGVsPyIiOnNlYXJjaENyaXRlcmlhLm1vZGVsO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgZXx8bnVsbD09ZXx8MD09ZS5sZW5ndGgpZT0tMT09c2VhcmNoQ3JpdGVyaWEueWVhcj8iIjpzZWFyY2hDcml0ZXJpYS55ZWFyfWlmKG51bGw9PWJ8fDA9PWIubGVuZ3RoKSJ1bmRlZmluZWQiIT10eXBlb2YgbWFrZSYmbnVsbCE9bWFrZSYmMDxtYWtlLmxlbmd0aCYmIjAiIT1tYWtlP2I9bWFrZTooYj0kKCIjcG9wdXBtYWtlIikudmFsKCksInVuZGVmaW5lZCI9PQoJdHlwZW9mIGImJihiPSQoIiNhY3RpdmVNYWtlIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9JCgiI2Nhck1ha2UiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0kKCdpbnB1dFtuYW1lPSJtYWtlIl0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1nZXRDS1ZhbHVlKCJtYWtlIiwiIikpKTtpZihudWxsPT1jfHwwPT1jLmxlbmd0aCkidW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsJiZudWxsIT1tb2RlbCYmMDxtb2RlbC5sZW5ndGgmJiIwIiE9bW9kZWw\/Yz1tb2RlbDooYz0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLCJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9JCgiI2FjdGl2ZU1vZGVsIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9JCgiI2Nhck1vZGVsIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYyYmKGM9JCgnaW5wdXRbbmFtZT0ibW9kZWwiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPWdldENLVmFsdWUoIm1vZGVsIiwKCQkiIikpKTtpZihudWxsPT1lfHwwPT1lLmxlbmd0aCkidW5kZWZpbmVkIiE9dHlwZW9mIHllYXImJm51bGwhPXllYXImJiFpc05hTih5ZWFyKSYmMDx5ZWFyLmxlbmd0aCYmIjAiIT15ZWFyP2U9eWVhcjooZT0kKCIjcG9wdXB5ZWFyIikudmFsKCksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCIjYWN0aXZlWWVhciIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoIiNjYXJZZWFyIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgiI3llYXIiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCdpbnB1dFtuYW1lPSJ5bWF4VGV4dCJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgnaW5wdXRbbmFtZT0ieW1pblRleHQiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPWdldENLVmFsdWUoInllYXIiLChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSkpKX1jYXRjaChnKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmCgljb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBpZGVudGlmeWluZyBtYWtlLW1vZGVsLXllYXI6ICIrZy5tZXNzYWdlKSxudWxsPT1iJiYoYj0iIiksbnVsbD09YyYmKGM9IiIpLG51bGw9PWUmJihlPSIiKX12YXIgZj0wO2lmKCExIT09YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlKXtpZigiVVNFRENBUlMiPT13aW5kb3cuYWN0aXZlUGFnZSl7dmFyIHE9MDskKCJkaXYuYm94MTcwIGRpdi5tYWluX3BpY2JveCBkaXYuYm94Ml9kZXRhaWxzX21pZCBkaXYuYm94Ml9kZXRhaWxzX3RleHQgc3BhbiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZz0kKHRoaXMpLnRleHQoKTstMSE9Zy5pbmRleE9mKCIkIikmJihxKyssZis9cGFyc2VJbnQoZy5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSl9KTtmPTA8cT9mL3E6MDtpc05hTihmKSYmKGY9MCl9MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNjdXJyZW50Q2FyUHJpY2UiKS5hdHRyKCJpZCIpfHwKCShmPXBhcnNlSW50KCQoIiNjdXJyZW50Q2FyUHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNjYXJwcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNjYXJwcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2NhclByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2NhclByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjZXhwcmVzc2NhcnByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI2V4cHJlc3NjYXJwcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT0KCXR5cGVvZiAkKCIjY2FycHJvb2ZjYXJwcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNjYXJwcm9vZmNhcnByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjc2VhcmNoUmVzdWx0c0F2Z1ByaWNlIikuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgiI3NlYXJjaFJlc3VsdHNBdmdQcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgnaW5wdXRbbmFtZT0icG1pbiJdJykuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgnaW5wdXRbbmFtZT0icG1pbiJdJykudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCdpbnB1dFtuYW1lPSJwbWF4Il0nKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCdpbnB1dFtuYW1lPSJwbWF4Il0nKS52YWwoKS5yZXBsYWNlKCIkIiwKCQkiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNjYXJQcmljZSIpLmF0dHIoImlkIil8fChmPSQoIiNjYXJQcmljZSIpLmhhc0NsYXNzKCJib3gyX2RldGFpbHNfdGV4dDI1Iik\/cGFyc2VJbnQoJCgiI2NhclByaWNlIikuY2hpbGRyZW4oIjpmaXJzdCIpLnRleHQoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKTpwYXJzZUludCgkKCIjY2FyUHJpY2UiKS50ZXh0KCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpO2lzTmFOKGYpJiYoZj0wKTt2YXIgcD0wLHk9MDsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5hY3RpdmVTaXRlSUQmJm51bGwhPXdpbmRvdy5hY3RpdmVTaXRlSUQmJjAhPXdpbmRvdy5hY3RpdmVTaXRlSUQ\/cD13aW5kb3cuYWN0aXZlU2l0ZUlEOihwPSQoIiNzaXRlSUQiKS52YWwoKSwidW5kZWZpbmVkIj09dHlwZW9mIHAmJihwPSQoIiN0b3BzaXRlaWQiKS52YWwoKSksInVuZGVmaW5lZCI9PQoJdHlwZW9mIHAmJihwPTApKTsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5hY3RpdmVEZWFsZXJJRCYmKHk9d2luZG93LmFjdGl2ZVNpdGVJRCk7dmFyIGw9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCksQz0wO2lmKCJ1bmRlZmluZWQiPT1sfHwwPT1sfHwiMCI9PWwpaWYobD0wLCJ1bmRlZmluZWQiPT10eXBlb2YgJC5jb29raWUoInVzaWRfdG1wIikpe3ZhciBBPW5ldyBEYXRlO0Euc2V0VGltZShBLmdldFRpbWUoKSs3MkU1KTt2YXIgej0iOyBleHBpcmVzPSIrQS50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT0idXNpZF90bXA9MSIreisiOyBwYXRoPS8ifWVsc2UgQz0hMDt2YXIgbT13aW5kb3cubG9jYXRpb24uaHJlZjstMTxtLmluZGV4T2YoInN0ZXA9cmVzdW1lIikmJihtKz0iJnNlc3NpZD0iKygidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llKCJzZXNzaWQiKT8kLmNvb2tpZSgic2Vzc2lkIik6Ik5VTEwiKSl9dmFyIHI9e3NpZDpsLHV1aWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0QWN0aXZlUHJvZmlsZWlkKCksCgkJc2l0ZWlkOnAsZGVhbGVyaWQ6eSx1dG1Tb3VyY2U6Z2V0VVJMVmFsdWUoInV0bV9zb3VyY2UiLCIiKSx1dG1DYW1wYWlnbjpnZXRVUkxWYWx1ZSgidXRtX2NhbXBhaWduIiwib3JnYW5pYyIpLHV0bUtleXdvcmQ6Z2V0Q0tWYWx1ZSgidXRtX2tleXdvcmQiKSx1dG1MYW5kaW5nOmdldENLVmFsdWUoInV0bV9sYW5kaW5nIiksdXRtU291cmNlUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpLHV0bUNhbXBhaWduUmV0YXJnZXRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIiksbWFrZTpiLG1vZGVsOmMseWVhcjppc05hTihlKT8obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk6ZSxsYW5ndWFnZTokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkscGFnZToidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQYWdlPyIiOndpbmRvdy5hY3RpdmVQYWdlLHByaWNlOmYsc2xvb2t1cDpDLGhyZWY6bX0seD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpOwoJCXI9SlNPTi5zdHJpbmdpZnkocik7cj1yLnJlcGxhY2VBbGwoIi8iLCJcXC8iKTt0aGlzLmFqYXhNbmcuYWpheCh7dHlwZToiUE9TVCIsdXJsOngrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IixkYXRhOnIsZG9uZTpmdW5jdGlvbihnKXsic3RyaW5nIj09dHlwZW9mIGcmJihnPUpTT04ucGFyc2UoZykpOyJ1bmRlZmluZWQiPT10eXBlb2YgZ3x8bnVsbD09Z3x8Zy5jb25zdHJ1Y3RvciE9W10uY29uc3RydWN0b3ImJmcuY29uc3RydWN0b3IhPXt9LmNvbnN0cnVjdG9yfHwobD1nLnNlc3Npb25pZCxsYXN0Vmlld0lEPWcudmlld2lkLGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9sb2FkUHJvcGVydGllcyhnLnByb3BlcnRpZXMpLHdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9bCx3aW5kb3cubGFzdFBhZ2VWaWV3SUQ9bGFzdFZpZXdJRCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9bCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInVzaWQiLAoJCQkJbCwiLyIsMiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dmlldyIsbGFzdFZpZXdJRCwiLyIsMiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZF90bXAiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVNlc3Npb25JRCgpKX0sZmFpbDpmdW5jdGlvbihnLG4sdCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gbG9nIHBhZ2Ugdmlldy4gRXJyb3I6ICIrdC5tZXNzYWdlKX0sYWx3YXlzOmZ1bmN0aW9uKCl7fX0pfX1jYXRjaChnKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuYWJsZSB0byBzdGF0IHBhZ2UgZHVlIHRvIGVycm9yOiAiK2cubWVzc2FnZSl9fSxfbG9hZFByb3BlcnRpZXM6ZnVuY3Rpb24oYSl7dHJ5eyJ1bmRlZmluZWQiIT10eXBlb2YgYSYmbnVsbCE9YSYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllcz1hLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnBhZ2VWaWV3Q291bnQ9CgkJYS5wYWdldmlld3MpfWNhdGNoKGIpe319LGdldFByb3BlcnR5OmZ1bmN0aW9uKGEsYil7cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXN8fG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllcz9udWxsOiJ1bmRlZmluZWQiPT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzW2FdPyJ1bmRlZmluZWQiIT10eXBlb2YgYj9iOiIiOmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllc1thXX0sYWRkUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGQpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YXx8MD09YS5sZW5ndGh8fCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09Ynx8InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEKXJldHVybiBudWxsOyJ1bmRlZmluZWQiPT10eXBlb2YgZCYmKGQ9IlVQREFURSIpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCk7CgkJdGhpcy5hamF4TW5nLmFqYXgoe3R5cGU6IkdFVCIsYWN0aW9uOiJhZGRwcm9wZXJ0eSIsdXVpZDphY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRBY3RpdmVQcm9maWxlaWQoKSxzaWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCkscG5hbWU6YSxwdmFsdWU6YixwbW9kZTpkfSk7cmV0dXJuITB9LHRhZ0Jyb3dzZXI6ZnVuY3Rpb24oYSxiKXt0cnl7dmFyIGQ9YSxjPXRoaXM7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWEpZD1mdW5jdGlvbihoKXt0cnl7dmFyIGY9bmV3IFN0cmluZyhoKTtmPWYudHJpbSgpO2lmKDA8Zi5sZW5ndGgpe2MubG9nTXNnKCJUYWdnZWQgd2l0aCB1dWlkID0+ICIrZik7dmFyIHE9Yy5nZXRBY3RpdmVQcm9maWxlaWQoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9Zi50cmltKCk7bnVsbCE9cSYmInVuZGVmaW5lZCIhPXR5cGVvZiBxLmxlbmd0aCYmCgkwPHEubGVuZ3RoJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQhPXEmJmMuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX3YxIixxLCIvIiwxODApO2MuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQsIi8iLDVFMyk7Yy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfdmxkMyIsITAsIi8iLDVFMyk7Yy5zZXRBY3RpdmVQcm9maWxlaWQoKX19Y2F0Y2gocCl7Yy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgcmV0dXJuZWQgZnJvbSB0YWdnaW5nOiAiK3AubWVzc2FnZSl9fTt0aGlzLmxvZ01zZygiR2VuZXJhdGluZyBmaW5nZXJwcmludCIpO3ZhciBlPXRoaXMuZ2V0RlBVUkkoKTtjLmFqYXhNbmcuZ2V0U2NyaXB0KGUsZnVuY3Rpb24oKXt0cnl7dmFyIGg9ZnVuY3Rpb24obCl7dHJ5e2MubG9nTXNnKCJGaW5nZXJwcmludGVkOiAiK2wpO3ZhciBDPWMuZ2V0QWN0aXZlUHJvZmlsZWlkKCksQT1lbmNvZGVVUkkod2luZG93LmxvY2F0aW9uLm9yaWdpbik7CgkJaWYoInVuZGVmaW5lZCI9PXR5cGVvZiBsfHxudWxsPT1sKXJldHVybiExO3ZhciB6PSExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZSYmMz09d2luZG93LmFjdGl2ZVNpdGVJRCYmKHo9ITApO2MuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWZwIixsLCIvIiw1RTMpO3ZhciBtPXtkOkEsZnAxOmwuc3Vic3RyaW5nKDAsOCksZnAyOmwuc3Vic3RyaW5nKDgsMTYpLGZwMzpsLnN1YnN0cmluZygxNiwyNCksZnA0Omwuc3Vic3RyaW5nKDI0LDMyKSx1aWQ6QyxhY3Rpb246InVwZ3JhZGVmcCIsZGJtOnosdjphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Jlc2V0Vn0scj1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpO2MubG9nTXNnKHIrInNlcnZpY2UvZDJjLnVwZ3JhZGUudjYuZnAuanMiKTtjLmxvZ01zZyhKU09OLnN0cmluZ2lmeShtKSk7Yy5hamF4TW5nLmFqYXgoe3VybDpyKyJzZXJ2aWNlL2QyYy51cGdyYWRlLnY2LmZwLmpzIix0eXBlOiJHRVQiLGRhdGE6bSwKCQkJZG9uZTpmdW5jdGlvbih4KXt0cnl7Yy5sb2dNc2coIlVVSUQgYWZ0ZXIgdXByb2ZpbGUgdXBkYXRlOiAiK3gpLCJ1bmRlZmluZWQiIT10eXBlb2YgZCYmbnVsbCE9ZD9kKHgpOmMuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkIix4LCIvIiw1RTMpLCJ1bmRlZmluZWQiIT10eXBlb2YgYiYmbnVsbCE9YiYmYigpfWNhdGNoKGcpe319fSl9Y2F0Y2goeCl7Yy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgZXhlY3V0aW5nIHRhZ01lIHN0ZXA6ICIreC5tZXNzYWdlKX19LGY9ITE7dHJ5e25hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiV2luIiksbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNYWMiKSxuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkxpbnV4IiksbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJBbmRyb2lkIiksLTEhPW5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigibGlrZSBNYWMiKSYmKGY9ITApLGxvY2F0aW9uLnByb3RvY29sLmluZGV4T2YoImh0dHBzIil9Y2F0Y2gobCl7fXZhciBxPQoJCXtwcmVwcm9jZXNzb3I6bnVsbCxhdWRpbzp7dGltZW91dDoxRTMsZXhjbHVkZUlPUzExOmZ9LGZvbnRzOntzd2ZDb250YWluZXJJZDoiZGN0a2RpdmZwMiIsc3dmUGF0aDoiZmxhc2gvY29tcGlsZWQvRm9udExpc3Quc3dmIix1c2VyRGVmaW5lZEZvbnRzOltdLGV4dGVuZGVkSnNGb250czohMX0sc2NyZWVuOntkZXRlY3RTY3JlZW5PcmllbnRhdGlvbjohMH0scGx1Z2luczp7c29ydFBsdWdpbnNGb3I6Wy9wYWxlbW9vbi9pXSxleGNsdWRlSUU6ITF9LGV4dHJhQ29tcG9uZW50czpbXSxOT1RfQVZBSUxBQkxFOiJub3QgYXZhaWxhYmxlIixFUlJPUjoiZXJyb3IiLEVYQ0xVREVEOiJleGNsdWRlZCJ9LHA9ITE7bnVsbCE9d2luZG93JiZudWxsIT13aW5kb3cubG9jYXRpb24mJiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmxvY2F0aW9uLmhyZWYmJigtMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJkMmNkZWJ1Zz0xIil8fC0xIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJjcm0yLmQyY21lZGlhLmNhIikpJiYKCShwPSEwKTt2YXIgeT1mdW5jdGlvbihsKXt0cnl7dmFyIEM9ZnVuY3Rpb24oeil7ej16Lm1hcChmdW5jdGlvbihtKXt2YXIgcj0iIjt0cnl7c3dpdGNoKHAmJmNvbnNvbGUubG9nKG0ua2V5LnRvTG93ZXJDYXNlKCkpLG0ua2V5LnRvTG93ZXJDYXNlKCkpe2Nhc2UgImNhbnZhcyI6Y2FzZSAid2ViZ2wiOmNhc2UgImFkYmxvY2siOnI9IiI7YnJlYWs7Y2FzZSAidXNlcmFnZW50IjppZigwPG0udmFsdWUubGVuZ3RoJiYtMSE9bS52YWx1ZS5pbmRleE9mKCIgIikpZm9yKHZhciB4PW0udmFsdWUuc3BsaXQoIiAiKSxnPTA7Zzx4Lmxlbmd0aDtnKyspe3ZhciBuPXhbZ107aWYoLTEhPW4uaW5kZXhPZigiLyIpKXt2YXIgdD1uLnNwbGl0KCIvIik7cis9dFswXX1lbHNlLTE9PW4uaW5kZXhPZigiLiIpJiYocis9bil9cCYmY29uc29sZS5sb2coIlVzZXIgQWdlbnQgLS0gIityKTticmVhaztkZWZhdWx0OiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXkuaXNBcnJheSYmQXJyYXkuaXNBcnJheShtLnZhbHVlKXx8CgltLnZhbHVlLmNvbnN0cnVjdG9yPT09QXJyYXk\/KG0udmFsdWUuc29ydCgpLHI9bS52YWx1ZS5qb2luKCkpOnI9bS52YWx1ZX19Y2F0Y2godil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJGUCBGYWlsZWQgLS0gJXMgLSAlbyIsdi5tZXNzYWdlLG0pfWlmKCJ1bmRlZmluZWQiPT10eXBlb2Ygcnx8bnVsbD09cilyPSIiO3JldHVybiByfSk7ei5zb3J0KCk7cmV0dXJuIHp9KGwpO3AmJmNvbnNvbGUubG9nKCJ0byBoYXNoOiAlbyIsQyk7dmFyIEE9RmluZ2VycHJpbnQyLng2NGhhc2gxMjgoQy5qb2luKCIiKSwzMSk7cCYmY29uc29sZS5sb2coIkZQID0+ICVzIixBKTtoKEEpO2MubG9nTXNnKCJGaW5nZXJwcmludDogIitBKX1jYXRjaCh6KXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIkZQMiBGYWlsZWQgLS0gJXMiLHoubWVzc2FnZSl9fTt3aW5kb3cucmVxdWVzdElkbGVDYWxsYmFjaz9yZXF1ZXN0SWRsZUNhbGxiYWNrKGZ1bmN0aW9uKCl7dHJ5e0ZpbmdlcnByaW50Mi5nZXQocSwKCQl5KX1jYXRjaChsKXtjLmxvZ01zZygiMS5VbmFibGUgdG8gaW5zdGFudGlhdGUgRlAyLiBFcnJvcjogIitsLm1lc3NhZ2UpfX0pOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0cnl7RmluZ2VycHJpbnQyLmdldChxLHkpfWNhdGNoKGwpe2MubG9nTXNnKCIyLlVuYWJsZSB0byBpbnN0YW50aWF0ZSBGUDIuIEVycm9yOiAiK2wubWVzc2FnZSl9fSw1MDApfWNhdGNoKGwpe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGV4ZWN1dGluZyBmaXJzdCBzdGVwOiAiK2wubWVzc2FnZSl9fSl9Y2F0Y2goaCl7Yy5sb2dNc2coIlVuZXhwZWN0ZWQgZXJyb3IgZXhlY3V0aW5nIGZpcnN0IHN0ZXA6ICIraC5tZXNzYWdlKX19LHVwZGF0ZUZQOmZ1bmN0aW9uKCl7dHJ5e2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dGhpcy5sb2dNc2coIlN0YXJ0aW5nIFNhZmFyaSBSdW4iKTtpZighMT09PXRoaXMucmVzZXRTZWNvbmRQYXNzKXt0aGlzLnJlc2V0U2Vjb25kUGFzcz0KCQkhMDt0aGlzLmxvZ01zZygiU3RhcnRpbmcgZmlyc3QgcGFzcyIpO3ZhciBhPXRoaXMuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZCIpLGI9dGhpcy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkX2lvc18yIik7dGhpcy5sb2dNc2coIlVVSUQuICIrYSsiIC0tIElPU1JFU0VULiAiK2IpO251bGw9PWF8fG51bGw9PWI\/KHRoaXMubG9nTXNnKCJEcm9wcGluZyByZXNldCBjb29raWUiKSx0aGlzLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF9pb3NfMiIsMSwiLyIsNUUzKSx0aGlzLnRhZ0Jyb3dzZXIobnVsbCkpOih0aGlzLmxvZ01zZygiU2Vjb25kIHBhc3MsIG5vdGhpbmcgdG8gZG8iKSx3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCkpfWVsc2Ugd2luZG93Ll9fX2QyY0NUS01ldGhvZCgpfWNhdGNoKGQpe3RoaXMubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIHVwZGF0aW5nIG1vYmlsZSBjb29raWU6ICIrZC5tZXNzYWdlKX19fTsKd2luZG93Ll9fX2QyY0NUS01ldGhvZD1mdW5jdGlvbigpe3RyeXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkmJiEwIT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZT13aW5kb3cualF1ZXJ5PyEwOiExO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BzaXRlaWQiKTtpZihudWxsPT1hfHwidW5kZWZpbmVkIj09dHlwZW9mIGEudmFsdWV8fGlzTmFOKGEudmFsdWUpKWFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ01zZygiTG9hZGluZyBmcHN5c3RlbSBvbiBub24gZDJjIHdlYnNpdGUiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGU9ITE7ZWxzZSB0cnl7d2luZG93LmFjdGl2ZVNpdGVJRD1wYXJzZUludChhLnZhbHVlKX1jYXRjaChwKXt3aW5kb3cuYWN0aXZlU2l0ZUlEPXZvaWQgMH12YXIgYj1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jaGVja1NjaGVkdWxlZFJlc2V0KCksZD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1c2lkIik7CglpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVTZXNzaW9uSUR8fG51bGw9PXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQpd2luZG93LmFjdGl2ZVNlc3Npb25JRD0wO251bGw9PWR8fGlzTmFOKGQpfHwod2luZG93LmFjdGl2ZVNlc3Npb25JRD1kKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3ZsZCIpO3ZhciBjPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCksZT1mdW5jdGlvbigpe3RyeXsidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5zdGF0RXhlY3V0ZWQmJigidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlldz8oYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXcoKSx3aW5kb3cuc3RhdEV4ZWN1dGVkPSEwKTphY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLmFqYXgoe3VybDpjKwoJCQkic2VydmljZS9zZXNzaW9uTW5nLnBocCIsdHlwZToiR0VUIixkYXRhOnthY3Rpb246InVua25vd24iLG1zZzoiMS5FaXRoZXIgYWN0aXZlVXNlclByb2ZpbGVNbmcgaXMgbm90IGRlZmluZWQgb3IgbG9nUGFnZVZpZXcgaXMgbm90IGRlZmluZWQifX0pKX1jYXRjaChwKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dNc2cocC5tZXNzYWdlKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLmFqYXgoe3VybDpjKyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIix0eXBlOiJHRVQiLGRhdGE6e2FjdGlvbjoidW5rbm93biIsbXNnOnAubWVzc2FnZX19KX19LGg9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZCIpLGY9bnVsbD09aHx8MD09aC5sZW5ndGg\/ITE6ITA7aD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkX3ZsZDMiKTt2YXIgcT1udWxsPT1ofHwwPT1oLmxlbmd0aD8hMTohMDtpZighYiYmZiYmCgkJcSl7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJDYWxsYmFjayhlKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUR8fG51bGw9PXdpbmRvdy5hY3RpdmVQcm9maWxlSUQpd2luZG93LmFjdGl2ZVByb2ZpbGVJRD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRBY3RpdmVQcm9maWxlaWQoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX25vdGlmeVVVSUQoKX1lbHNlIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1udWxsLHdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9bnVsbCxhY3RpdmVVc2VyUHJvZmlsZU1uZy50YWdCcm93c2VyKG51bGwsZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlckNhbGxiYWNrKGUpfSl9fWNhdGNoKHApe2M9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLl9nZXQoYysic2VydmljZS9zZXNzaW9uTW5nLnBocD9hY3Rpb249dW5rbm93biZtc2c9Mi4iKwoJZW5jb2RlVVJJQ29tcG9uZW50KHAubWVzc2FnZSkpLGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiMS4gVW5leHBlY3RlZCBlcnJvciBvY2N1cmVkIGxvYWRpbmcgdXByb2ZpbGUuZmluYWwuanMuIEVycm9yOiAiK3AubWVzc2FnZSl9fTsKdHJ5e2xldCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNkaXNhYmxlSW50ZXJuYWxTZXNzaW9uIik7aWYobnVsbCE9YSYmIjEiPT1hLnZhbHVlKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZD0hMDthY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9bnVsbDtsZXQgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdG9wc2l0ZWlkIik7bnVsbCE9YiYmKGI9cGFyc2VJbnQoYi52YWx1ZSkpO2lzTmFOKGIpfHwyMzUhPWI\/KGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWQiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1aWQiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3JzdCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVzaWQiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dmlldyIpLAoJYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXNpZCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVzaWRfdG1wIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF92MSIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfdmxkMyIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1ZnAiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX2lvc18yIikpOmNvbnNvbGUubG9nKCJieXBhc3NpbmcgY29va2llIHB1cmdlIil9ZWxzZSJsb2FkaW5nIiE9ZG9jdW1lbnQucmVhZHlTdGF0ZT93aW5kb3cuX19fZDJjQ1RLTWV0aG9kKCk6ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcj9kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIix3aW5kb3cuX19fZDJjQ1RLTWV0aG9kKToKCWRvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7ImNvbXBsZXRlIj09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmd2luZG93Ll9fX2QyY0NUS01ldGhvZCgpfSl9Y2F0Y2goYSl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCI1LiBVbmV4cGVjdGVkIGVycm9yIG9jY3VyZWQgbG9hZGluZyB1cHJvZmlsZS5maW5hbC5qcy4gRXJyb3I6ICIrYS5tZXNzYWdlKX07Ci8qKiAvbS9qcy9rYy5mYWIuanMgKiovCnZhciBfX19kMmNfa2NmYWJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjAzOjE4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19rY2ZhYmpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzA6MTgiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGEpe2Eua2N8fChhLmtjPXt9KTthLmtjLmZhYj1mdW5jdGlvbihoLGUsbCl7dmFyIGI9dGhpcztiLiRlbD1hKGgpO2IuZWw9aDtiLiRlbC5kYXRhKCJrYy5mYWIiLGIpO3ZhciBmLGs7Yi5pbml0PWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgZXx8bnVsbD09PWUpZT1be3VybDpudWxsLGJnY29sb3I6InJlZCIsaWNvbjoiKyJ9LHt1cmw6Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLGJnY29sb3I6Im9yYW5nZSIsaWNvbjoiKyJ9LHt1cmw6Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20iLGJnY29sb3I6InllbGxvdyIsaWNvbjoiKyJ9XTtiLmxpbmtzPWU7aWYoMDxiLmxpbmtzLmxlbmd0aCl7bWFpbl9idG49Yi5saW5rc1swXTtjb2xvcl9zdHlsZT1tYWluX2J0bi5jb2xvcj8iY29sb3I6IittYWluX2J0bi5jb2xvcisiOyI6IiI7YmdfY29sb3Jfc3R5bGU9bWFpbl9idG4uYmdjb2xvcj8iYmFja2dyb3VuZC1jb2xvcjoiK21haW5fYnRuLmJnY29sb3IrIjsiOgoiIjttYWluX2J0bl9kb209IjxidXR0b24gZGF0YS1saW5rLWhyZWY9JyIrKG1haW5fYnRuLnVybD9tYWluX2J0bi51cmw6IiIpKyInIGRhdGEtbGluay10YXJnZXQ9JyIrKG1haW5fYnRuLnRhcmdldD9tYWluX2J0bi50YXJnZXQ6IiIpKyInIGNsYXNzPSdrY19mYWJfbWFpbl9idG4nIHN0eWxlPSciK2JnX2NvbG9yX3N0eWxlKyInPjxzcGFuIHN0eWxlPSciK2NvbG9yX3N0eWxlKyInPiIrbWFpbl9idG4uaWNvbisiPC9zcGFuPjwvYnV0dG9uPiI7c3ViX2ZhYl9idG5zX2RvbT0iIjtiLmxpbmtzLnNoaWZ0KCk7Zm9yKHZhciBjPTA7YzxiLmxpbmtzLmxlbmd0aDtjKyspY29sb3Jfc3R5bGU9Yi5saW5rc1tjXS5jb2xvcj8iY29sb3I6IitiLmxpbmtzW2NdLmNvbG9yKyI7IjoiIixiZ19jb2xvcl9zdHlsZT1iLmxpbmtzW2NdLmJnY29sb3I\/ImJhY2tncm91bmQtY29sb3I6IitiLmxpbmtzW2NdLmJnY29sb3IrIjsiOiIiLHN1Yl9mYWJfYnRuc19kb20rPSI8ZGl2PjxidXR0b24gZGF0YS1saW5rLXRpdGxlPSciKwpiLmxpbmtzW2NdLnRpdGxlKyInIGRhdGEtbGluay1ocmVmPSciKyhiLmxpbmtzW2NdLnVybD9iLmxpbmtzW2NdLnVybDoiIikrIicgZGF0YS1saW5rLXRhcmdldD0nIisoYi5saW5rc1tjXS50YXJnZXQ\/Yi5saW5rc1tjXS50YXJnZXQ6IiIpKyInIGNsYXNzPSdzdWJfZmFiX2J0bicgc3R5bGU9JyIrYmdfY29sb3Jfc3R5bGUrIic+PHNwYW4gc3R5bGU9JyIrY29sb3Jfc3R5bGUrIic+IitiLmxpbmtzW2NdLmljb24rIjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4iO3N1Yl9mYWJfYnRuc19kb209IjxkaXYgY2xhc3M9J3N1Yl9mYWJfYnRuc193cmFwcGVyJz4iK3N1Yl9mYWJfYnRuc19kb20rIjwvZGl2PiI7Yi4kZWwuYXBwZW5kKHN1Yl9mYWJfYnRuc19kb20pLmFwcGVuZChtYWluX2J0bl9kb20pfWVsc2UidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGUmJih3aW5kb3cuY29uc29sZT17bG9nOmZ1bmN0aW9uKGcpe2FsZXJ0KGcpfX0pLGNvbnNvbGUubG9nKCJJbnZhbGlkIGxpbmtzIGFycmF5IHBhcmFtIik7CmIub3B0aW9ucz1hLmV4dGVuZCh7fSxhLmtjLmZhYi5kZWZhdWx0T3B0aW9ucyxsKTtmPWIuJGVsLmZpbmQoIi5rY19mYWJfbWFpbl9idG4iKTtrPWIuJGVsLmZpbmQoIi5zdWJfZmFiX2J0bnNfd3JhcHBlciIpO2Yub24oImNsaWNrIixmdW5jdGlvbihnKXswPGEodGhpcykuYXR0cigiZGF0YS1saW5rLWhyZWYiKS5sZW5ndGgmJihhKHRoaXMpLmF0dHIoImRhdGEtbGluay10YXJnZXQiKT93aW5kb3cub3BlbihhKHRoaXMpLmF0dHIoImRhdGEtbGluay1ocmVmIiksYSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstdGFyZ2V0IikpOndpbmRvdy5sb2NhdGlvbi5ocmVmPWEodGhpcykuYXR0cigiZGF0YS1saW5rLWhyZWYiKSk7ay50b2dnbGVDbGFzcygic2hvdyIpOzA8YSgiLmtjX2ZhYl9vdmVybGF5IikubGVuZ3RoPyhhKCIua2NfZmFiX292ZXJsYXkiKS5yZW1vdmUoKSxmLnRyaWdnZXIoImJsdXIiKSk6KGYudHJpZ2dlcigiZm9jdXMiKSxhKCJib2R5IikuYXBwZW5kKCc8ZGl2IGNsYXNzPSJrY19mYWJfb3ZlcmxheSIgPjwvZGl2PicpLAphKCJib2R5Iikub24oInRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7Zi50cmlnZ2VyKCJibHVyIil9KSk7MCE9PWEodGhpcykuZmluZCgiLmluayIpLmxlbmd0aCYmYSh0aGlzKS5maW5kKCIuaW5rIikucmVtb3ZlKCk7YSh0aGlzKS5wcmVwZW5kKCI8c3BhbiBjbGFzcz0naW5rJz48L3NwYW4+Iik7aW5rPWEodGhpcykuZmluZCgiLmluayIpO2luay5oZWlnaHQoKXx8aW5rLndpZHRoKCl8fChkPU1hdGgubWF4KGEodGhpcykub3V0ZXJXaWR0aCgpLGEodGhpcykub3V0ZXJIZWlnaHQoKSksaW5rLmNzcyh7aGVpZ2h0OmQsd2lkdGg6ZH0pKTt4PWcucGFnZVgtYSh0aGlzKS5vZmZzZXQoKS5sZWZ0LWluay53aWR0aCgpLzI7eT1nLnBhZ2VZLWEodGhpcykub2Zmc2V0KCkudG9wLWluay5oZWlnaHQoKS8yO2luay5jc3Moe3RvcDp5KyJweCIsbGVmdDp4KyJweCJ9KS5hZGRDbGFzcygiYW5pbWF0ZSIpfSk7ay5maW5kKCIuc3ViX2ZhYl9idG4iKS5vbigibW91c2Vkb3duIixmdW5jdGlvbihnKXswPAphKHRoaXMpLmF0dHIoImRhdGEtbGluay1ocmVmIikubGVuZ3RoJiYoYSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstdGFyZ2V0Iik\/d2luZG93Lm9wZW4oYSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstaHJlZiIpLGEodGhpcykuYXR0cigiZGF0YS1saW5rLXRhcmdldCIpKTp3aW5kb3cubG9jYXRpb24uaHJlZj1hKHRoaXMpLmF0dHIoImRhdGEtbGluay1ocmVmIikpfSk7Zi5mb2N1c291dChmdW5jdGlvbigpe2sucmVtb3ZlQ2xhc3MoInNob3ciKTtvdmVybGF5PWEoIi5rY19mYWJfb3ZlcmxheSIpO292ZXJsYXkucmVtb3ZlKCk7YSgiYm9keSIpLm9mZigidG91Y2hzdGFydCIpfSl9O2IuaW5pdCgpfTthLmtjLmZhYi5kZWZhdWx0T3B0aW9ucz17fTthLmZuLmtjX2ZhYj1mdW5jdGlvbihoLGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtuZXcgYS5rYy5mYWIodGhpcyxoLGUpfSl9fSkoalF1ZXJ5KTsKLyoqIC9tL2pzL29wZW5ob3Vycy5qcyAqKi8KdmFyIF9fX2QyY19vcGVuaG91cnNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjAzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19vcGVuaG91cnNqc19jX29uPSIyMDI1LTAzLTE4IDE0OjMwOjA4IjsidXNlIHN0cmljdCI7CnZhciBPcGVuSG91cnM9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYyhkKXt2YXIgZT0kKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuaGFzQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpOyQoZC5jdXJyZW50VGFyZ2V0KS5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93IikudG9nZ2xlQ2xhc3MoImV4cGFuZGVkIik7JCh0aGlzKS5wYXJlbnRzKGEub3B0aW9ucy5jb250YWluZXIpLmZpbmQoIi5vcGVuX2hvdXJzX21hcF9hY3RpdmUiKS5zbGlkZVRvZ2dsZSgic2xvdyIpOyQodGhpcykucGFyZW50cyhhLm9wdGlvbnMuY29udGFpbmVyKS5maW5kKCIub3Blbl9ob3Vyc19tYXBfYWN0aXZlIikucmVtb3ZlQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpO2V8fCgkKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuc2xpZGVUb2dnbGUoInNsb3ciKSwkKHRoaXMpLnNpYmxpbmdzKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZXEoMCkuYWRkQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpKX0KdmFyIGE9dGhpczthLm9wdGlvbnM9YjthLiRjb250YWluZXI9JChhLm9wdGlvbnMuY29udGFpbmVyKTthLmluaXQ9ZnVuY3Rpb24oKXthLiRjb250YWluZXIuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZCIpLm9uKCJjbGljayBhdXRvX29wZW4iLGMpOzA8YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQuZGVmYXVsdF9vcGVuZWQiKS5sZW5ndGg\/YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQuZGVmYXVsdF9vcGVuZWQiKS50cmlnZ2VyKCJhdXRvX29wZW4iKToyIT0kKCIuZXhwYW5kYWJsZV9jb250ZW50IikubGVuZ3RofHwwPCQoIi5leHBhbmRhYmxlX2NvbnRlbnQiKS5maW5kKCIudmlzaXRDb250YWN0SGVhZGVyIikubGVuZ3RoP2Eub3B0aW9ucy5oYXNPd25Qcm9wZXJ0eSgiYXV0b09wZW4iKSYmIWEub3B0aW9ucy5hdXRvT3Blbnx8YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQiKS5maXJzdCgpLnRyaWdnZXIoImF1dG9fb3BlbiIpOgokKCIuZXhwYW5kYWJsZV9jb250ZW50Iikuc2xpZGVUb2dnbGUoInNsb3ciKS5hZGRDbGFzcygib3Blbl9ob3Vyc19tYXBfYWN0aXZlIil9O3JldHVybiBhfTsKLyoqIC9tL2pzL2dvb2dsZW1hcHMuanMgKiovCnZhciBfX19kMmNfZ29vZ2xlbWFwc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTQ6NTQiOyd1c2Ugc3RyaWN0JztjbGFzcyBHb29nbGVNYXBzV3JhcHBlcntjb25zdHJ1Y3RvcihhKXt0aGlzLnByZXZpb3VzSW5mb1dpbmRvdz0hMTt0aGlzLm9wdGlvbnM9e2VsZW1lbnQ6YSYmYS5lbGVtZW50P2EuZWxlbWVudDoiIixjZW50ZXI6YSYmYS5jZW50ZXI\/YS5jZW50ZXI6e2xhdDo0NS40NjcyNzcsbG5nOi03My44MzQ1MjZ9LGNlbnRlck9mZnNldDphJiZhLmNlbnRlck9mZnNldD9hLmNlbnRlck9mZnNldDp7eDowLHk6MH0sem9vbTphJiZhLnpvb20\/YS56b29tOjksYWRkcmVzc2VzOmEmJmEuYWRkcmVzc2VzP2EuYWRkcmVzc2VzOltdLG9uQmVmb3JlSW5pdDphJiZhLm9uQmVmb3JlSW5pdD9hLm9uQmVmb3JlSW5pdDpmdW5jdGlvbigpe30sb25BZnRlckluaXQ6YSYmYS5vbkFmdGVySW5pdD9hLm9uQWZ0ZXJJbml0OmZ1bmN0aW9uKCl7fSxvbkFmdGVyTWFya2VyQ3JlYXRlZDphJiZhLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkP2Eub25BZnRlck1hcmtlckNyZWF0ZWQ6ZnVuY3Rpb24oKXt9fX1zdGF0aWMgc2V0R29vZ2xlTWFwKCl7dmFyIGE9CjAsZT1mdW5jdGlvbigpe2dvb2dsZS5tYXBzLk1hcC5wcm90b3R5cGUuc2V0Q2VudGVyV2l0aE9mZnNldD1mdW5jdGlvbihrLGcsbCl7dmFyIGM9dGhpcyxiPW5ldyBnb29nbGUubWFwcy5PdmVybGF5VmlldztiLm9uQWRkPWZ1bmN0aW9uKCl7dmFyIGY9dGhpcy5nZXRQcm9qZWN0aW9uKCksZD1mLmZyb21MYXRMbmdUb0NvbnRhaW5lclBpeGVsKGspO2QueCs9ZztkLnkrPWw7Yy5zZXRDZW50ZXIoZi5mcm9tQ29udGFpbmVyUGl4ZWxUb0xhdExuZyhkKSl9O2IuZHJhdz1mdW5jdGlvbigpe307Yi5zZXRNYXAodGhpcyl9fTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBnb29nbGUpZSgpO2Vsc2UgdmFyIGg9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXs0PmE\/InVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlPyhjbGVhckludGVydmFsKGgpLGUoKSk6YSsrOmNsZWFySW50ZXJ2YWwoaCl9LDFFMyl9aW5pdCgpe3ZhciBhPXRoaXMsZT1hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lng\/YS5vcHRpb25zLmNlbnRlck9mZnNldC54OgowLGg9YS5vcHRpb25zLmNlbnRlck9mZnNldC55P2Eub3B0aW9ucy5jZW50ZXJPZmZzZXQueTowLGs9bmV3IGdvb2dsZS5tYXBzLkxhdExuZ0JvdW5kczthLm9wdGlvbnMub25CZWZvcmVJbml0KCk7aWYoYS5vcHRpb25zLmFkZHJlc3Nlcy5sZW5ndGgpe3ZhciBnPWEub3B0aW9ucy5jZW50ZXIsbD1uZXcgZ29vZ2xlLm1hcHMuR2VvY29kZXIsYz1uZXcgZ29vZ2xlLm1hcHMuTWFwKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEub3B0aW9ucy5lbGVtZW50KSx7em9vbTphLm9wdGlvbnMuem9vbSxjZW50ZXI6YS5vcHRpb25zLmNlbnRlcixtYXBUeXBlSWQ6Z29vZ2xlLm1hcHMuTWFwVHlwZUlkLlJPQURNQVAsZ2VzdHVyZUhhbmRsaW5nOiJncmVlZHkiLHNjcm9sbHdoZWVsOiExLG1hcFR5cGVDb250cm9sOiExfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXJPbmNlKGMsImlkbGUiLGZ1bmN0aW9uKCl7YS5vcHRpb25zLmFkZHJlc3Nlcy5tYXAoZnVuY3Rpb24oYixmLGQpe2Y9ZnVuY3Rpb24obiwKcSl7dHJ5e2lmKHE9PWdvb2dsZS5tYXBzLkdlb2NvZGVyU3RhdHVzLk9LKXtrLmV4dGVuZChuWzBdLmdlb21ldHJ5LmxvY2F0aW9uKTtjLmZpdEJvdW5kcyhrKTtjLnNldFpvb20oYS5vcHRpb25zLnpvb20pO2c9Yy5nZXRCb3VuZHMoKS5nZXRDZW50ZXIoKTtjLnNldENlbnRlcldpdGhPZmZzZXQoZyxlLGgpO3ZhciBwPW5ldyBnb29nbGUubWFwcy5JbmZvV2luZG93KHtjb250ZW50OmIuaW5mb3dpbmRvd30pLG09bmV3IGdvb2dsZS5tYXBzLk1hcmtlcih7bWFwOmMscG9zaXRpb246blswXS5nZW9tZXRyeS5sb2NhdGlvbix0aXRsZTpiLnRpdGxlLGljb246Yi5pY29ufSk7bS5hZGRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV2aW91c0luZm9XaW5kb3cmJmEucHJldmlvdXNJbmZvV2luZG93LmNsb3NlKCk7YS5wcmV2aW91c0luZm9XaW5kb3c9cDtwLm9wZW4oYyxtKX0pO2Eub3B0aW9ucy5vbkFmdGVyTWFya2VyQ3JlYXRlZChiLG0pfX1jYXRjaChyKXtjb25zb2xlLmxvZyhyKX19OwphLmhhc0xhdChiKSYmYS5oYXNMbmcoYik\/KGQ9bmV3IGdvb2dsZS5tYXBzLkxhdExuZyhOdW1iZXIoYi5nZW9tZXRyeS5sb2NhdGlvbi5sYXQpLE51bWJlcihiLmdlb21ldHJ5LmxvY2F0aW9uLmxuZykpLGYoW3tnZW9tZXRyeTp7bG9jYXRpb246ZH19XSwiT0siKSk6bC5nZW9jb2RlKHthZGRyZXNzOmIuYWRkcmVzc30sZil9KX0pO2dvb2dsZS5tYXBzLmV2ZW50LmFkZERvbUxpc3RlbmVyKHdpbmRvdywicmVzaXplIixmdW5jdGlvbigpe2Muc2V0Q2VudGVyV2l0aE9mZnNldChnLGUsaCl9KX1hLm9wdGlvbnMub25BZnRlckluaXQoKX1faGFzTGF0TG5nUHJvcChhLGUpe3JldHVybiBhLmhhc093blByb3BlcnR5KCJnZW9tZXRyeSIpJiZhLmdlb21ldHJ5Lmhhc093blByb3BlcnR5KCJsb2NhdGlvbiIpJiZhLmdlb21ldHJ5LmxvY2F0aW9uLmhhc093blByb3BlcnR5KGUpJiYiZmFsc2UiIT1hLmdlb21ldHJ5LmxvY2F0aW9uW2VdPyEwOiExfWhhc0xhdChhKXtyZXR1cm4gdGhpcy5faGFzTGF0TG5nUHJvcChhLAoibGF0Iil9aGFzTG5nKGEpe3JldHVybiB0aGlzLl9oYXNMYXRMbmdQcm9wKGEsImxuZyIpfX07Ci8qKiAvbS9qcy9mb290ZXJXaWRnZXRfTS5qcyAqKi8KdmFyIF9fX2QyY19mb290ZXJXaWRnZXRNanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxMzoxNiI7J3VzZSBzdHJpY3QnO3ZhciB0cmFja0Zvb3Rlck1hcExvYWQ9ZnVuY3Rpb24oKXt2YXIgYT0kKCIjdGFyZ2V0UGFnZSIpLnZhbCgpOyJ1bmRlZmluZWQiPT1hJiYoYT0iVU5LTk9XTiIpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJGb290ZXItTWFwLUxvYWQiLCJNb2JpbGUiLGEsMSl9OwppblZpZXdFeGVjKCIjZm9vdGVyR29vZ2xlTWFwIixmdW5jdGlvbigpe2lmKCQoIiNmb290ZXJHb29nbGVNYXAiKS5sZW5ndGgpdHJ5e0dvb2dsZU1hcHNXcmFwcGVyLnNldEdvb2dsZU1hcCgpO3ZhciBhPSQoIiNmb290ZXJHb29nbGVNYXBab29tIikudmFsKCksYz0xPHBhcnNlSW50KGEpJiYxOD49cGFyc2VJbnQoYSk\/cGFyc2VJbnQoYSk6OTt3aW5kb3cuZm9vdGVyR29vZ2xlTWFwT2JqZWN0PW5ldyBHb29nbGVNYXBzV3JhcHBlcih7ZWxlbWVudDoiZm9vdGVyR29vZ2xlTWFwIixhZGRyZXNzZXM6InVuZGVmaW5lZCIhPXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXM\/Zm9vdGVyTWFwQWRkcmVzc2VzOltdLHpvb206YyxvbkJlZm9yZUluaXQ6ZnVuY3Rpb24oKXt0cmFja0Zvb3Rlck1hcExvYWQoKX0sb25BZnRlckluaXQ6ZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3NlcyYmMCE9Zm9vdGVyTWFwQWRkcmVzc2VzLmxlbmd0aHx8JCgiI2Zvb3Rlckdvb2dsZU1hcCIpLmhpZGUoKX19KTsKd2luZG93LmZvb3Rlckdvb2dsZU1hcE9iamVjdC5pbml0KCl9Y2F0Y2goYil7Y29uc29sZS5sb2coYil9fSk7aW5WaWV3RXhlYygiI2Zvb3Rlckdvb2dsZU1hcElmcmFtZSIsZnVuY3Rpb24oKXt0cmFja0Zvb3Rlck1hcExvYWQoKX0pOwokKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpeyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5mb290ZXJHb29nbGVNYXBPYmplY3Q\/d2luZG93LmZvb3Rlckdvb2dsZU1hcE9iamVjdC5jYWxjdWxhdGVBbmREaXNwbGF5Um91dGUoKTooY29uc29sZS5sb2coIklDSSIpLHNldFRpbWVvdXQoYSw1MDApKX1pblZpZXdFeGVjKCIjbWFwX29wZW5faG91cnMiLGZ1bmN0aW9uKCl7KG5ldyBPcGVuSG91cnMoe2NvbnRhaW5lcjoiI21hcF9vcGVuX2hvdXJzIixhdXRvT3BlbjohMH0pKS5pbml0KCl9KTskKCJkaXYjcGhvbmVOdW1iZXJEaXYgbGkgYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoInBob25lLmNhbGwiLCQodGhpcykuYXR0cigiaHJlZiIpLnJlcGxhY2UoInRlbDoiLAoiIikpfSk7JCgiI2RpcmVjdGlvbnNCdXR0b25IZWFkZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKTskKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOiQoIiNmb290ZXJHb29nbGVNYXBIb3VycyIpLm9mZnNldCgpLnRvcH0sMkUzKTthKCl9KX0pOwp3aW5kb3cub25sb2FkPWZ1bmN0aW9uKCl7KGZ1bmN0aW9uKCl7dmFyIGE9e25ld19nZW9sb2M6ITEsdXNlckNvb3JkOiExLHJlc3VsdDohMSxwcmV2X2dlb2xvYzpDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIik\/SlNPTi5wYXJzZShDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIikpOiExLGRlYWxlcl92aXNpdGVkOkNvb2tpZXMuZ2V0KCJkZWFsZXJWaXNpdGVkIik\/SlNPTi5wYXJzZShDb29raWVzLmdldCgiZGVhbGVyVmlzaXRlZCIpKTohMSxkZWFsZXJBZGRyZXNzOiIiLGdldFByZXZMb2NhdGlvbjpmdW5jdGlvbigpe3JldHVybiBDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIik\/SlNPTi5wYXJzZShDb29raWVzLmdldCgiZ2VvbG9jUHJvY2Vzc2VkIikpOiExfSxwcm9jZXNzVXNlckxvY2F0aW9uOmZ1bmN0aW9uKGIpe2EubmV3X2dlb2xvYz1iO3N3aXRjaCghMCl7Y2FzZSAwPT1hLnByZXZfZ2VvbG9jfHxhLnByZXZfZ2VvbG9jLmFjY2VwdGVkIT1iLnJlc3VsdDphLm5ld19nZW9sb2MubG9jYXRpb25fc3RyPQoxPT1iLnJlc3VsdD9iLmdlb2NvZGVfYWRkcmVzc19zdHIrIigiK2IuYWNjdXJhY3krIikiOiJHZW9sb2NhdGlvbiByZWZ1c2VkIjthLm5ld19nZW9sb2MuZGVzY3JpcHRpb249MT09Yi5yZXN1bHQ\/IkFDQ0VQVEVEIjoiIjthLnVzZXJDb29yZD17bGF0OmIubGF0aXR1ZGUsImxvbmciOmIubG9uZ2l0dWRlfTthLmNvbXBhcmVUb0RlYWxlckxvY2F0aW9uKCk7YnJlYWs7Y2FzZSAxPT1hLnByZXZfZ2VvbG9jLmFjY2VwdGVkJiYxPT1iLnJlc3VsdDp2YXIgZD17bGF0OmEucHJldl9nZW9sb2MubGF0aXR1ZGUsImxvbmciOmEucHJldl9nZW9sb2MubG9uZ2l0dWRlfTthLnVzZXJDb29yZD17bGF0OmIubGF0aXR1ZGUsImxvbmciOmIubG9uZ2l0dWRlfTsyMDA8Yy5nZXREaXN0YW5jZShkLGEudXNlckNvb3JkKSYmKGEubmV3X2dlb2xvYy5kZXNjcmlwdGlvbj0iVVBEQVRFRCIsYS5uZXdfZ2VvbG9jLmxvY2F0aW9uX3N0cj1iLmdlb2NvZGVfYWRkcmVzc19zdHIrIigiK2IuYWNjdXJhY3krIikiLAphLmNvbXBhcmVUb0RlYWxlckxvY2F0aW9uKCkpfX0sY29tcGFyZVRvRGVhbGVyTG9jYXRpb246ZnVuY3Rpb24oYil7Im9iamVjdCI9PXR5cGVvZiBiJiZiLmxhdCYmYi5sb25nPzIwMT5jLmdldERpc3RhbmNlKGEudXNlckNvb3JkLGIpPzA9PWEuZGVhbGVyX3Zpc2l0ZWQmJihhLm5ld19nZW9sb2MubG9jYXRpb25fc3RyPWEuZGVhbGVyQWRkcmVzcysiKCIrYS5uZXdfZ2VvbG9jLmFjY3VyYWN5KyIpIixhLm5ld19nZW9sb2MuZGVzY3JpcHRpb249IkRFQUxFUl9MT0NBVElPTiIsYS5sb2dQYWdlRXZlbnQoYS5uZXdfZ2VvbG9jLmxvY2F0aW9uX3N0ciksYj1uZXcgRGF0ZSxiLnNldEhvdXJzKDIzLDU5LDU5LDApLENvb2tpZXMuc2V0KCJkZWFsZXJWaXNpdGVkIiwxLGIsIi8iKSk6MD09YS5wcmV2X2dlb2xvYyYmYS5sb2dQYWdlRXZlbnQoYS5uZXdfZ2VvbG9jLmxvY2F0aW9uX3N0cik6YS5nZXREZWFsZXJDb29yZCgpfSxnZXREZWFsZXJDb29yZDpmdW5jdGlvbigpe2EuZGVhbGVyQWRkcmVzcz0KJCgnbWV0YVtuYW1lPSJnZW8ucGxhY2VuYW1lIl0nKS5wcm9wKCJjb250ZW50Iik7Yy5nZXRBZGRyZXNzQ29vcmQoYS5kZWFsZXJBZGRyZXNzLGEuY29tcGFyZVRvRGVhbGVyTG9jYXRpb24pfSxsb2dQYWdlRXZlbnQ6ZnVuY3Rpb24oYil7YiYmMDxiLmxlbmd0aCYmMT09YS5uZXdfZ2VvbG9jLnJlc3VsdCYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiYoYj1hLm5ld19nZW9sb2MuZGVzY3JpcHRpb24rIjogIitiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoIlRSQUNLX0dFT0xPQyIsYikpO2dldFVVSUQ9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJm51bGwhPXdpbmRvdy5hY3RpdmVQcm9maWxlSUQ\/d2luZG93LmFjdGl2ZVByb2ZpbGVJRDoidW5kZWZpbmVkIiE9CnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkP2FjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDoidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMmJiJ1bmRlZmluZWQiIT1Db29raWVzLmdldCgidXVpZCIpJiZudWxsIT1Db29raWVzLmdldCgidXVpZCIpP0Nvb2tpZXMuZ2V0KCJ1dWlkIik6IiJ9O2I9InVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzJiYidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMuZ2V0KCJ1c2lkIikmJm51bGwhPUNvb2tpZXMuZ2V0KCJ1c2lkIik\/Q29va2llcy5nZXQoInVzaWQiKTowO3ZhciBkPWdldFVVSUQoKSxlPSQoIiNzaXRlSUQiKS52YWwoKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL2dlb2xvY1RyYWNraW5nL3NpdGV2aXNpdG9yIixkYXRhOnt1dWlkOmQsc2Vzc2lvbmlkOmIsc2l0ZUlEOmUsc3RhdHVzOmEubmV3X2dlb2xvYy5nZW9sb2Nfc3RhdHVzLApkZXNjOmEubmV3X2dlb2xvYy5kZXNjcmlwdGlvbixsYXRpdHVkZTphLm5ld19nZW9sb2MubGF0aXR1ZGUsbG9uZ2l0dWRlOmEubmV3X2dlb2xvYy5sb25naXR1ZGUscG9zdGFsX2NvZGU6YS5uZXdfZ2VvbG9jLnBvc3RhbF9jb2RlLGFjY3VyYWN5OmEubmV3X2dlb2xvYy5hY2N1cmFjeSxhZGRyZXNzOmEubmV3X2dlb2xvYy5nZW9jb2RlX2FkZHJlc3Nfc3RyLGxvY2F0aW9uX3N0cjphLm5ld19nZW9sb2MubG9jYXRpb25fc3RyLGdlb2xvY19kYXRlOmEubmV3X2dlb2xvYy5nZW9sb2NfZGF0ZX0sc3VjY2VzczpmdW5jdGlvbihmKXt9LGZhaWx1cmU6ZnVuY3Rpb24oZil7fX0pfX07aWYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjYXNrVmlzaXRvckdlb2xvYyIpLnZhbCgpJiYxPT0kKCIjYXNrVmlzaXRvckdlb2xvYyIpLnZhbCgpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdlb0xvY2F0b3Ipe3ZhciBjPW5ldyBnZW9Mb2NhdG9yKGEucHJvY2Vzc1VzZXJMb2NhdGlvbik7Yy5mb3JjZUdlb2xvY0F0dGVtcHQ9CiEwO2MuZ2V0TG9jYXRpb24oKX19KSgpfTskKGZ1bmN0aW9uKCl7JCgiLmNFeHBlbmRMaXN0IEJVVFRPTiIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLmNsb3Nlc3QoImRpdi5jRm9vdGVyQ2FyTGlua3MiKTthLmxlbmd0aCYmKGEuaGFzQ2xhc3MoImNMaXN0RXhwZW5kZWQiKXx8YS5hZGRDbGFzcygiY0xpc3RFeHBlbmRlZCIpLmZpbmQoIi5jRXhwZW5kTGlzdCIpLmhpZGUoKSl9KX0pOwovKiogL20vanMvdG9hc3RyLmpzICoqLwp2YXIgX19fZDJjX3RvYXN0cmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTI6MDkiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3RvYXN0cmpzX2Nfb249IjIwMjQtMDMtMjYgMTI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKHope3ooWyJqcXVlcnkiXSxmdW5jdGlvbihkKXtyZXR1cm4gZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGEsYyl7YXx8KGE9bCgpKTtmPWQoIiMiK2EuY29udGFpbmVySWQpO2lmKGYubGVuZ3RoKXJldHVybiBmO2MmJihmPWQoIjxkaXYvPiIpLmF0dHIoImlkIixhLmNvbnRhaW5lcklkKS5hZGRDbGFzcyhhLnBvc2l0aW9uQ2xhc3MpLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpLmF0dHIoInJvbGUiLCJhbGVydCIpLmNzcygiY29sb3IiLGEuY29sb3IpLGYuYXBwZW5kVG8oZChhLnRhcmdldCkpKTtyZXR1cm4gZn1mdW5jdGlvbiBBKGEsYyxlKXtlPWUmJmUuZm9yY2U\/ZS5mb3JjZTohMTtyZXR1cm4gYSYmKGV8fDA9PT1kKCI6Zm9jdXMiLGEpLmxlbmd0aCk\/KGFbYy5oaWRlTWV0aG9kXSh7ZHVyYXRpb246Yy5oaWRlRHVyYXRpb24sZWFzaW5nOmMuaGlkZUVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe3UoYSl9fSksITApOiExfWZ1bmN0aW9uIEUoKXtyZXR1cm57dGFwVG9EaXNtaXNzOiEwLAp0b2FzdENsYXNzOiJ0b2FzdCIsY29udGFpbmVySWQ6InRvYXN0LWNvbnRhaW5lciIsZGVidWc6ITEsc2hvd01ldGhvZDoiZmFkZUluIixzaG93RHVyYXRpb246MzAwLHNob3dFYXNpbmc6InN3aW5nIixvblNob3duOmZ1bmN0aW9uKCl7ZCgiLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24iKS5hZGRDbGFzcygid2l0aFRvYXN0ZXIiKTtkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5hZGRDbGFzcygid2l0aFRvYXN0ZXIiKX0saGlkZU1ldGhvZDoiZmFkZU91dCIsaGlkZUR1cmF0aW9uOjFFMyxoaWRlRWFzaW5nOiJzd2luZyIsb25IaWRkZW46ZnVuY3Rpb24oKXtkKCIudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpO2QoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpfSxvbkNsb3NlOmZ1bmN0aW9uKCl7ZCgiLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24iKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKTsKZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIil9LGV4dGVuZGVkVGltZU91dDoxRTMsaWNvbkNsYXNzZXM6e2Vycm9yOiJ0b2FzdC1lcnJvciIsaW5mbzoidG9hc3QtaW5mbyIsc3VjY2VzczoidG9hc3Qtc3VjY2VzcyIsd2FybmluZzoidG9hc3Qtd2FybmluZyJ9LGljb25DbGFzczoidG9hc3QtaW5mbyIsY29sb3I6IiNGRkYiLGJnQ29sb3I6IiIscG9zaXRpb25DbGFzczoidG9hc3QtdG9wLXJpZ2h0Iix0aW1lT3V0OjVFMyx0aXRsZUNsYXNzOiJ0b2FzdC10aXRsZSIsbWVzc2FnZUNsYXNzOiJ0b2FzdC1tZXNzYWdlIix0YXJnZXQ6ImJvZHkiLGNsb3NlSHRtbDonPGJ1dHRvbiB0eXBlPSJidXR0b24iPiZ0aW1lczs8L2J1dHRvbj4nLG5ld2VzdE9uVG9wOiEwLHByZXZlbnREdXBsaWNhdGVzOiExLHByb2dyZXNzQmFyOiExfX1mdW5jdGlvbiByKGEpe2Z1bmN0aW9uIGMoayl7aWYoIWQoIjpmb2N1cyIsZykubGVuZ3RofHxrKXJldHVybiBjbGVhclRpbWVvdXQoaC5pbnRlcnZhbElkKSwKZ1tiLmhpZGVNZXRob2RdKHtkdXJhdGlvbjpiLmhpZGVEdXJhdGlvbixlYXNpbmc6Yi5oaWRlRWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7dShnKTtpZihiLm9uSGlkZGVuJiYiaGlkZGVuIiE9PW0uc3RhdGUpYi5vbkhpZGRlbigpO20uc3RhdGU9ImhpZGRlbiI7bS5lbmRUaW1lPW5ldyBEYXRlO3AmJnAobSl9fSl9ZnVuY3Rpb24gZSgpe2lmKDA8Yi50aW1lT3V0fHwwPGIuZXh0ZW5kZWRUaW1lT3V0KXY9c2V0VGltZW91dChjLGIuZXh0ZW5kZWRUaW1lT3V0KSxoLm1heEhpZGVUaW1lPXBhcnNlRmxvYXQoYi5leHRlbmRlZFRpbWVPdXQpLGguaGlkZUV0YT0obmV3IERhdGUpLmdldFRpbWUoKStoLm1heEhpZGVUaW1lfWZ1bmN0aW9uIEYoKXtjbGVhclRpbWVvdXQodik7aC5oaWRlRXRhPTA7Zy5zdG9wKCEwLCEwKVtiLnNob3dNZXRob2RdKHtkdXJhdGlvbjpiLnNob3dEdXJhdGlvbixlYXNpbmc6Yi5zaG93RWFzaW5nfSl9ZnVuY3Rpb24gRygpe3ZhciBrPShoLmhpZGVFdGEtKG5ldyBEYXRlKS5nZXRUaW1lKCkpLwpoLm1heEhpZGVUaW1lKjEwMDt3LndpZHRoKGsrIiUiKX12YXIgYj1sKCkseD1hLmljb25DbGFzc3x8Yi5pY29uQ2xhc3M7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5vcHRpb25zT3ZlcnJpZGUmJihiPWQuZXh0ZW5kKGIsYS5vcHRpb25zT3ZlcnJpZGUpLHg9YS5vcHRpb25zT3ZlcnJpZGUuaWNvbkNsYXNzfHx4KTthOntpZihiLnByZXZlbnREdXBsaWNhdGVzKWlmKGEubWVzc2FnZT09PXkpe3ZhciBxPSEwO2JyZWFrIGF9ZWxzZSB5PWEubWVzc2FnZTtxPSExfWlmKCFxKXtCKys7Zj1uKGIsITApO3ZhciB2PW51bGwsZz1kKCI8ZGl2Lz4iKTtxPWQoIjxkaXYvPiIpO3ZhciBDPWQoIjxkaXYvPiIpLHc9ZCgiPGRpdi8+IiksdD1kKGIuY2xvc2VIdG1sKSxoPXtpbnRlcnZhbElkOm51bGwsaGlkZUV0YTpudWxsLG1heEhpZGVUaW1lOm51bGx9LG09e3RvYXN0SWQ6QixzdGF0ZToidmlzaWJsZSIsc3RhcnRUaW1lOm5ldyBEYXRlLG9wdGlvbnM6YixtYXA6YX07NjxiLmJnQ29sb3IubGVuZ3RoJiYKZy5jc3MoImJhY2tncm91bmQtY29sb3IiLGIuYmdDb2xvcik7YS5pY29uQ2xhc3MmJmcuYWRkQ2xhc3MoYi50b2FzdENsYXNzKS5hZGRDbGFzcyh4KTthLnRpdGxlJiYocS5hcHBlbmQoYS50aXRsZSkuYWRkQ2xhc3MoYi50aXRsZUNsYXNzKSxnLmFwcGVuZChxKSk7YS5tZXNzYWdlJiYoQy5hcHBlbmQoYS5tZXNzYWdlKS5hZGRDbGFzcyhiLm1lc3NhZ2VDbGFzcyksZy5hcHBlbmQoQykpO2IuY2xvc2VCdXR0b24mJih0LmFkZENsYXNzKCJ0b2FzdC1jbG9zZS1idXR0b24iKS5hdHRyKCJyb2xlIiwiYnV0dG9uIiksZy5wcmVwZW5kKHQpKTtiLnByb2dyZXNzQmFyJiYody5hZGRDbGFzcygidG9hc3QtcHJvZ3Jlc3MiKSxnLnByZXBlbmQodykpO2IubmV3ZXN0T25Ub3A\/Zi5wcmVwZW5kKGcpOmYuYXBwZW5kKGcpO2cuaGlkZSgpO2dbYi5zaG93TWV0aG9kXSh7ZHVyYXRpb246Yi5zaG93RHVyYXRpb24sZWFzaW5nOmIuc2hvd0Vhc2luZyxjb21wbGV0ZTpiLm9uU2hvd259KTswPGIudGltZU91dCYmCih2PXNldFRpbWVvdXQoYyxiLnRpbWVPdXQpLGgubWF4SGlkZVRpbWU9cGFyc2VGbG9hdChiLnRpbWVPdXQpLGguaGlkZUV0YT0obmV3IERhdGUpLmdldFRpbWUoKStoLm1heEhpZGVUaW1lLGIucHJvZ3Jlc3NCYXImJihoLmludGVydmFsSWQ9c2V0SW50ZXJ2YWwoRywxMCkpKTsoZnVuY3Rpb24oKXtnLm9uKCJtb3VzZWVudGVyIixGKS5vbigibW91c2VsZWF2ZSIsZSk7aWYoIWIub25jbGljayYmYi50YXBUb0Rpc21pc3MpZy5vbigiY2xpY2siLGMpO2lmKGIuY2xvc2VCdXR0b24mJnQpdC5vbigiY2xpY2siLGZ1bmN0aW9uKGspe2suc3RvcFByb3BhZ2F0aW9uP2suc3RvcFByb3BhZ2F0aW9uKCk6dm9pZCAwIT09ay5jYW5jZWxCdWJibGUmJiEwIT09ay5jYW5jZWxCdWJibGUmJihrLmNhbmNlbEJ1YmJsZT0hMCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGIub25DbG9zZSliLm9uQ2xvc2UoKTtjKCEwKX0pO2lmKGIub25jbGljaylnLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLm9uY2xpY2soKTsKYygpfSl9KSgpO3AmJnAobSk7Yi5kZWJ1ZyYmY29uc29sZSYmY29uc29sZS5sb2cobSk7cmV0dXJuIGd9fWZ1bmN0aW9uIGwoKXtyZXR1cm4gZC5leHRlbmQoe30sRSgpLEQub3B0aW9ucyl9ZnVuY3Rpb24gdShhKXtmfHwoZj1uKCkpO2EuaXMoIjp2aXNpYmxlIil8fChhLnJlbW92ZSgpLDA9PT1mLmNoaWxkcmVuKCkubGVuZ3RoJiYoZi5yZW1vdmUoKSx5PXZvaWQgMCkpfXZhciBmLHAsQj0wLEQ9e2NsZWFyOmZ1bmN0aW9uKGEsYyl7dmFyIGU9bCgpO2Z8fG4oZSk7aWYoIUEoYSxlLGMpKWZvcihhPWYuY2hpbGRyZW4oKSxjPWEubGVuZ3RoLTE7MDw9YztjLS0pQShkKGFbY10pLGUpfSxyZW1vdmU6ZnVuY3Rpb24oYSl7dmFyIGM9bCgpO2Z8fG4oYyk7YSYmMD09PWQoIjpmb2N1cyIsYSkubGVuZ3RoP3UoYSk6Zi5jaGlsZHJlbigpLmxlbmd0aCYmZi5yZW1vdmUoKX0sZXJyb3I6ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJlcnJvciIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5lcnJvciwKbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX0sZ2V0Q29udGFpbmVyOm4saW5mbzpmdW5jdGlvbihhLGMsZSl7cmV0dXJuIHIoe3R5cGU6ImluZm8iLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuaW5mbyxtZXNzYWdlOmEsb3B0aW9uc092ZXJyaWRlOmUsdGl0bGU6Y30pfSxvcHRpb25zOnt9LHN1YnNjcmliZTpmdW5jdGlvbihhKXtwPWF9LHN1Y2Nlc3M6ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJzdWNjZXNzIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLnN1Y2Nlc3MsbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX0sdmVyc2lvbjoiMi4xLjEiLHdhcm5pbmc6ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJ3YXJuaW5nIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLndhcm5pbmcsbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX19LHk7cmV0dXJuIER9KCl9KX0pKCJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiYKZGVmaW5lLmFtZD9kZWZpbmU6ZnVuY3Rpb24oeixkKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPWQocmVxdWlyZSgianF1ZXJ5IikpOndpbmRvdy50b2FzdHI9ZCh3aW5kb3cualF1ZXJ5KX0pOwovKiogL20vanMvZGVhbGVyU21zTnVtYmVyLmpzICoqLwp2YXIgX19fZDJjX2RlYWxlclNtc051bWJlcmpzX2Nfb249IjIwMjYtMDMtMTIgMTY6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt3aW5kb3cuZGVhbGVyU21zTnVtYmVyPXdpbmRvdy5kZWFsZXJTbXNOdW1iZXJ8fG5ldyBmdW5jdGlvbigpe3RoaXMuX25hbWU9ImRlYWxlclNtc051bWJlciI7dGhpcy5fcmlkPTA7dGhpcy5fb2JzPVtdO3RoaXMuX2J1aWxkUXVlcnk9ZnVuY3Rpb24oYSxjKXtjPSJzdHJpbmciPT09dHlwZW9mIGM\/YzooJCgiYm9keS5FTkdMSVNIIikubGVuZ3RoPyIvZW4vIjoiL2ZyLyIpKyJhamF4L2dldERlYWxlclNtc051bWJlciI7dmFyIGIsZD17d3N3aWR0aDoiMCJ9LGc9WyJVVUlEIiwibWVzc2FnZVR5cGUiXTtjKz0iPyI7Zm9yKGIgaW4gZylpZigidW5kZWZpbmVkIj09PXR5cGVvZiBhW2dbYl1dfHwiIj09YVtnW2JdXSlyZXR1cm4gdGhpcy5fb25FcnJvcignbWFuZGF0b3J5IGZpZWxkIGlzIG1pc3NpbmcgIicrZ1tiXSsnIicpLCExO2ZvcihiIGluIGEpYS5oYXNPd25Qcm9wZXJ0eShiKSYmKGRbYl09YVtiXSk7Zm9yKGIgaW4gZClkLmhhc093blByb3BlcnR5KGIpJiYKKGMrPSImIitiKyI9IitlbmNvZGVVUklDb21wb25lbnQoZFtiXSkpO3JldHVybiBjfTt0aGlzLl9vbkVycm9yPWZ1bmN0aW9uKGEpe2NvbnNvbGUuZXJyb3IodGhpcy5fbmFtZSxhKX07dGhpcy5fbm90aWZ5T2JzZXJ2ZXI9ZnVuY3Rpb24oYSxjKXt0aGlzLl9vYnNbYV0oYyk7ZGVsZXRlIHRoaXMuX29ic1thXX07dGhpcy5fZG9SZXF1ZXN0PWZ1bmN0aW9uKGEsYyl7dmFyIGI9dGhpcy5fb25SZXNwb25zZS5iaW5kKHRoaXMpOyQuYWpheCh7Y2I6YixyaWQ6Yyx0eXBlOiJHRVQiLGNhY2hlOiExLGFzeW5jOiEwLGRhdGFUeXBlOiJqc29uIix1cmw6YX0pLmRvbmUoZnVuY3Rpb24oZCl7dGhpcy5jYih0aGlzLnJpZCxudWxsPT09ZD8hMTpkLCExKX0pLmZhaWwoZnVuY3Rpb24oZCxnKXt0aGlzLmNiKHRoaXMucmlkLCExLGcpfSl9O3RoaXMuX29uUmVzcG9uc2U9ZnVuY3Rpb24oYSxjLGIpe2lmKCExIT09Yil0aGlzLl9vbkVycm9yKCJyZXNwb25zZSBlcnJvcjogIitiKTtlbHNlIHRyeXshMT09PQpjP3RoaXMuX29uRXJyb3IoIi5kYXRhIGVxdWFsIGZhbHNlIik6InVuZGVmaW5lZCIhPT10eXBlb2YgYy5zdWNjZXNzJiYhMCE9PWMuc3VjY2Vzcz8odGhpcy5fb25FcnJvcigiLmRhdGEgZXJyb3I6ICIrYy5lcnJvck1lc3NhZ2UpLGM9ITEpOihiPSExLCJzdHJpbmciIT09dHlwZW9mIGMuZGF0YS5udW1iZXImJih0aGlzLl9vbkVycm9yKCIuZGF0YSBpbnZhbGlkIHNtcyBudW1iZXIiKSxiPSEwKSwic3RyaW5nIiE9PXR5cGVvZiBjLmRhdGEubWVzc2FnZSYmKHRoaXMuX29uRXJyb3IoIi5tZXNzYWdlIGludmFsaWQgc21zIG1lc3NhZ2UiKSxiPSEwKSxjPWI\/ITE6e3Ntc251bWJlcjpjLmRhdGEubnVtYmVyLHNtc21lc3NhZ2U6Yy5kYXRhLm1lc3NhZ2Usc21zY29kZTpjLmRhdGEuc21zQ29kZX0pfWNhdGNoKGQpe3RoaXMuX29uRXJyb3IoIi5kYXRhIGV4Y2VwdGlvbjoiK2QpLGM9ITF9dGhpcy5fbm90aWZ5T2JzZXJ2ZXIoYSxjKX07dGhpcy5fYWRkT2JzZXJ2ZXI9ZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIj09PQp0eXBlb2YgYSl7dmFyIGM9dGhpcy5fcmlkKys7dGhpcy5fb2JzW2NdPWE7cmV0dXJuIGN9dGhpcy5fb25FcnJvcigiaXMgbm90IGEgdmFsaWQgY2FsbGJhY2sgZnVuY3Rpb24iKTtyZXR1cm4hMX07dGhpcy5fYWRkQ29tbW9uVmFsdWVzVG9EYXRhPWZ1bmN0aW9uKGEsYyxiKXsib2JqZWN0IiE9PXR5cGVvZiBiJiYoYj17fSk7Yi5VVUlEPWE7Yi5zZXNzaW9uSWQ9YztiLnRlY2hub2xvZ3k9IkhUTUwiO2IudXJsPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2E9Z2V0Q29va2llKCJnY2xpZCIpP2dldENvb2tpZSgiZ2NsaWQiKToiIjtudWxsIT09YSYmInVuZGVmaW5lZCIhPT1hJiYiIiE9PWEmJiExIT09YSYmKGIuZ29vZ2xlQ2xpY2tJZD1hKTthPWdldEdhQ2xpZW50SWQoKTtudWxsIT09YSYmInVuZGVmaW5lZCIhPT1hJiYiIiE9PWEmJiExIT09YSYmKGIuZ2FDbGllbnRJZD1hKTthPSQoIiN0ZXh0U2VuZFRvRW1haWwiKS5sZW5ndGg\/JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpOiIiOyIiIT09CmEmJihiLnNlbmRUb0VtYWlsPWEpO2E9JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLmxlbmd0aD8kKCIjdGV4dFNlbmRUb0VtYWlsQURGIikudmFsKCk6IiI7IiIhPT1hJiYoYi5zZW5kVG9FbWFpbEFkZj1hKTthPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCk6IiI7IiIhPT1hJiYoYi5kZWFsZXJOYW1lPWEpO2xldCBkPWIubWFrZS50b0xvd2VyQ2FzZSgpO2lmKCQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKS5sZW5ndGgmJiIiIT09ZCYmImNhcmRldGFpbC5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpKXthPSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKS5maW5kKCJzZWxlY3QiKTtsZXQgZz1lbWFpbEhhbmRsZXIuZ2V0RGVwKCk7YS5maW5kKCJvcHRpb25bZGF0YS1icmFuZHNdIikuZWFjaChmdW5jdGlvbihlLGYpe2U9JChmKS5kYXRhKCJicmFuZHMiKS50b0xvd2VyQ2FzZSgpOwppZigiIiE9ZSYmZS5zcGxpdCgiLCIpLmluY2x1ZGVzKGQpKXtsZXQgaD1lPSIiLGs9Zi50ZXh0O3N3aXRjaChnKXtjYXNlICJVU0VEIjplPSQoZikuZGF0YSgiZW1haWx1c2VkIik7aD0kKGYpLmRhdGEoImVtYWlsYWRmdXNlZCIpO2JyZWFrO2Nhc2UgIlNFUlZJQ0UiOmU9JChmKS5kYXRhKCJlbWFpbHNlcnZpY2UiKTtoPSQoZikuZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiUEFSVFMiOmU9JChmKS5kYXRhKCJlbWFpbHBhcnRzIil8fCQoZikuZGF0YSgiZW1haWxzZXJ2aWNlIik7aD0kKGYpLmRhdGEoImVtYWlsYWRmcGFydHMiKXx8JChmKS5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTticmVhaztjYXNlICJGSU5BTkNFIjplPSQoZikuZGF0YSgiZW1haWxmaW5hbmNlIik7aD0kKGYpLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpO2JyZWFrO2Nhc2UgIk5FVyI6ZT0kKGYpLmRhdGEoImVtYWlsIiksaD0kKGYpLmRhdGEoImVtYWlsYWRmIil9aWYoIiIhPT1lfHwiIiE9PWgpYi5zZW5kVG9FbWFpbD0KZSxiLnNlbmRUb0VtYWlsQWRmPWgsYi5kZWFsZXJOYW1lPWt9fSl9YT0kKCIjQ0FNUEFJR05JRCIpLmxlbmd0aD8kKCIjQ0FNUEFJR05JRCIpLnZhbCgpOiIiOyIiIT09YSYmKGIuY2FtcGFpZ25JZD1hKTtjb25zb2xlLmxvZyh0aGlzLl9uYW1lKyIuZGF0YSIsYik7cmV0dXJuIGJ9O3RoaXMuX2luaXQ9ZnVuY3Rpb24oYSxjLGIsZCxnKXt2YXIgZTtpZighMT09PShhPXRoaXMuX2J1aWxkUXVlcnkodGhpcy5fYWRkQ29tbW9uVmFsdWVzVG9EYXRhKGEsYyxiKSxnKSl8fCExPT09KGU9dGhpcy5fYWRkT2JzZXJ2ZXIoZCkpKXJldHVybiExO3NldFRpbWVvdXQodGhpcy5fZG9SZXF1ZXN0LmJpbmQodGhpcyxhLGUpKX07dGhpcy5nZXRTbXNOdW1iZXI9ZnVuY3Rpb24oYSxjLGIpe2lmKCJvYmplY3QiPT09dHlwZW9mIHdpbmRvdy5hY3RpdmVVc2VyUHJvZmlsZU1uZylhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlckNhbGxiYWNrKHRoaXMuX2luaXQuYmluZCh0aGlzLHdpbmRvdy5hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQsCndpbmRvdy5hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSxhLGMsYikpO2Vsc2UgcmV0dXJuIHRoaXMuX29uRXJyb3IoJyJhY3RpdmVVc2VyUHJvZmlsZU1uZyIgaXMgbm90IGFuIG9iamVjdCcpLCExO3JldHVybiEwfX07Ci8qKiAvbS9qcy9nZW9Mb2NhdGlvbi5qcyAqKi8KdmFyIF9fX2QyY19nZW9Mb2NhdGlvbmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MjQiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2dlb0xvY2F0aW9uanNfY19vbj0iMjAyNS0wMi0yNiAwOTozMDoxMSI7InVzZSBzdHJpY3QiOwp2YXIgZ2VvTG9jYXRvcj1mdW5jdGlvbihmKXt2YXIgYT10aGlzO2EubWFwc0FQSUtleT1udWxsO2EudXNlSFRNTDU9ITA7YS5nZW9jb2RlTG9jYXRpb249ITA7YS5hdHRlbXB0UGFnZU51bT0wO2EudHJhY2tMb2NhdGlvbkdBPSExO2EuZm9yY2VHZW9sb2NBdHRlbXB0PSExO2Euc2hvd1BvaW50ZXJNZXNzYWdlPSEwO2EudGltZW91dHM9W107YS5icm93c2VyPSIiO2EuaXNNb2JpbGU9IjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKTthLmdlb2xvY1N0YXR1c2VzPXtPSzoiU1VDQ0VTUyIsUkVGVVNFRDoiUkVGVVNFRCIsQ09PS0lFX0FDQ0VQVEVEOiJQUkVfQUNDRVBURUQiLENPT0tJRV9SRUZVU0VEOiJQUkVfUkVGVVNFRCIsQ0FOQ0VMRUQ6IkNBTkNFTEVEIixGQUlMOiJGQUlMRUQifTthLmdlb2xvY0Vycm9ycz17SU5WQUxJRF9SRVNQT05TRToiSU5WQUxJRF9SRVNQT05TRSIsQ09OTkVDVElPTl9GQUlMRUQ6IkNPTk5FQ1RJT05fRkFJTEVEIixHRU9MT0NfRkFJTEVEOiJHRU9MT0NfRkFJTEVEIiwKR0VPTE9DX1JFRlVTRUQ6IkdFT0xPQ19SRUZVU0VEIixHRU9DT0RFX0ZBSUxFRDoiR0VPQ09ERV9GQUlMRUQifTthLmdlb2xvY1Jlc3VsdD17cmVzdWx0OjAsZ2VvbG9jX2RhdGU6IiIsZ2VvbG9jX3N0YXR1czphLmdlb2xvY1N0YXR1c2VzLkZBSUwsZ2VvY29kZV9zdGF0dXM6MCxsYXRpdHVkZTowLGxvbmdpdHVkZTowLGFjY3VyYWN5OjAscG9zdGFsX2NvZGU6IiIsZ2VvY29kZV9hZGRyZXNzOiIiLGdlb2NvZGVfYWRkcmVzc19zdHI6IiJ9O2EuZ2VvbG9jQ2FsbGJhY2s9ZnVuY3Rpb24oKXtmKGEuZ2VvbG9jUmVzdWx0KTtmPWZ1bmN0aW9uKCl7Y29uc29sZS5sb2coIkdlbyBjYWxsYmFjayBhbHJlYWR5IGZpcmVkLiIpfX07YS5faW5pdD1mdW5jdGlvbigpe2EuaXNNb2JpbGUmJihhLnNob3dQb2ludGVyTWVzc2FnZT0hMSk7aWYoMDxhLmF0dGVtcHRQYWdlTnVtKXt2YXIgYj1udWxsIT1Db29raWVzLmdldCgiZ2VvbG9jUGFnZVZpZXdzIik\/cGFyc2VJbnQoQ29va2llcy5nZXQoImdlb2xvY1BhZ2VWaWV3cyIpKSsKMToxO0Nvb2tpZXMuc2V0KCJnZW9sb2NQYWdlVmlld3MiLGI8YS5hdHRlbXB0UGFnZU51bT9iOjAsbnVsbCwiLyIpO2lmKGI8YS5hdHRlbXB0UGFnZU51bSlyZXR1cm4gYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ0FOQ0VMRUQsYS5nZW9sb2NDYWxsYmFjaygpLCExfWlmKCFhLmZvcmNlR2VvbG9jQXR0ZW1wdCYmQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKXJldHVybiBiPUpTT04ucGFyc2UoQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKSwiMSI9PWIuYWNjZXB0ZWQ\/KGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0xLGEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPWIuZ2VvbG9jX2RhdGUsYS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNPT0tJRV9BQ0NFUFRFRCxhLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZT1iLmxhdGl0aXVkZSxhLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGU9CmIubG9uZ2l0dWRlLGEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcz1iLmFkZHJlc3MsYS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cj1iLmFkZHJlc3Nfc3RyKTooYS5nZW9sb2NSZXN1bHQucmVzdWx0PTAsYS5nZW9sb2NSZXN1bHQuc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuQ09PS0lFX1JFRlVTRUQpLGEuZ2VvbG9jQ2FsbGJhY2soKSwhMTtpZigiaHR0cHM6IiE9bG9jYXRpb24ucHJvdG9jb2wpcmV0dXJuIGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wLGEuZ2VvbG9jUmVzdWx0LnN0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNBTkNFTEVELGEuZ2VvbG9jQ2FsbGJhY2soKSwhMTtpZihsdF9JRTl8fCFuYXZpZ2F0b3IuZ2VvbG9jYXRpb24pYS51c2VIVE1MNT0hMTtuYXZpZ2F0b3IuYnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBjPW5hdmlnYXRvci51c2VyQWdlbnQsZD1jLm1hdGNoKC8ob3BlcmF8Y2hyb21lfHNhZmFyaXxmaXJlZm94fG1zaWV8dHJpZGVudCg\/PVwvKSlcLz9ccyooXGQrKS9pKXx8CltdO2lmKC90cmlkZW50L2kudGVzdChkWzFdKSl7dmFyIGU9L1xicnZbIDpdKyhcZCspL2cuZXhlYyhjKXx8W107cmV0dXJuIklFeHBsb3JlciAiKyhlWzFdfHwiIil9aWYoIkNocm9tZSI9PT1kWzFdJiYoZT1jLm1hdGNoKC9cYk9QUlwvKFxkKykvKSxudWxsIT1lKSlyZXR1cm4iT3BlcmEgIitlWzFdO2Q9ZFsyXT9bZFsxXSxkWzJdXTpbbmF2aWdhdG9yLmFwcE5hbWUsbmF2aWdhdG9yLmFwcFZlcnNpb24sIi0\/Il07bnVsbCE9KGU9Yy5tYXRjaCgvdmVyc2lvblwvKFxkKykvaSkpJiZkLnNwbGljZSgxLDEsZVsxXSk7cmV0dXJuIGQuam9pbigiICIpfSgpO2EuYnJvd3Nlcj1uYXZpZ2F0b3IuYnJvd3NlcjtyZXR1cm4hMH07YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgYj0iTGF0aXR1ZGU6ICIrYS5nZW9sb2NSZXN1bHQubGF0aXR1ZGUrIjsgTG9uZ2l0dWRlOiAiK2EuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZTszPD1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZS5sZW5ndGgmJgooYj1hLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSk7YS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIkFjY2VwdGVkIixiKTthLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZT0obmV3IERhdGUpLmdldFRpbWUoKTtiPW5ldyBEYXRlO2Iuc2V0SG91cnMoMjMsNTksNTksMCk7Q29va2llcy5zZXQoImdlb2xvY1Byb2Nlc3NlZCIsSlNPTi5zdHJpbmdpZnkoe2FjY2VwdGVkOjEsZ2VvbG9jX2RhdGU6YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGUsbGF0aXR1ZGU6YS5nZW9sb2NSZXN1bHQubGF0aXR1ZGUsbG9uZ2l0dWRlOmEuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZSxwb3N0YWxfY29kZTphLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSxhY2N1cmFjeTphLmdlb2xvY1Jlc3VsdC5hY2N1cmFjeSxhZGRyZXNzOmEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcyxhZGRyZXNzX3N0cjphLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3Nfc3RyfSksYiwiLyIpO2EuZ2VvbG9jQ2FsbGJhY2soKX07CmEuaGFuZGxlTG9jYXRpb25FcnJvcj1mdW5jdGlvbihiLGMpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPSIiO2EuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlPShuZXcgRGF0ZSkuZ2V0VGltZSgpO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5GQUlMO3N3aXRjaChiKXtjYXNlIGEuZ2VvbG9jRXJyb3JzLklOVkFMSURfUkVTUE9OU0U6Yz0iR2VvbG9jIGVycm9yIG1lc2FnZTogSW52YWxpZCByZXNwb25zZSBkYXRhIjticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkNPTk5FQ1RJT05fRkFJTEVEOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IENvbmVjdGlvbiBmYWlsZWQiO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuR0VPTE9DX1JFRlVTRUQ6YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLlJFRlVTRUQ7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9MT0NfRkFJTEVEOmJyZWFrOwpjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0NPREVfRkFJTEVEOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IEludmFsaWQgcmVzcG9uc2UgZGF0YSI7YnJlYWs7ZGVmYXVsdDpjPSJVbmtub3duIGVycm9yIG9jdXJyZWQifWEudHJhY2tMb2NhdGlvbigiR2VvbG9jYXRpb24iLCJGYWlsZWQiLGMpO2EuZ2VvbG9jQ2FsbGJhY2soKX07YS5nZXRMb2NhdGlvbj1mdW5jdGlvbigpe2EuX2luaXQoKSYmKDA9PWEudXNlSFRNTDU\/YS5nZXRHb29nbGVTZXJ2aWNlTG9jYXRpb24oKTphLmdldEhUTUw1TG9jYXRpb24oKSl9O2EuZ2V0R29vZ2xlU2VydmljZUxvY2F0aW9uPWZ1bmN0aW9uKCl7YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKTtyZXR1cm4hMX07YS5nZXRIVE1MNUxvY2F0aW9uPWZ1bmN0aW9uKCl7YS5zaG93R2VvbG9jTXNnKCk7bmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbihmdW5jdGlvbihiKXthLmhpZGVHZW9sb2NNc2coKTthLmNsZWFyU2V0VGltZW91dHMoKTsKYS5nZW9sb2NSZXN1bHQucmVzdWx0PTE7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX3N0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLk9LO2EuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlPWIuY29vcmRzLmxhdGl0dWRlO2EuZ2VvbG9jUmVzdWx0LmxvbmdpdHVkZT1iLmNvb3Jkcy5sb25naXR1ZGU7YS5nZW9sb2NSZXN1bHQuYWNjdXJhY3k9Yi5jb29yZHMuYWNjdXJhY3k7aWYoMSE9YS5nZW9jb2RlTG9jYXRpb24pcmV0dXJuIGEuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCksITE7YS5sYXRMb25nR2VvY29kZShiLmNvb3Jkcy5sYXRpdHVkZSxiLmNvb3Jkcy5sb25naXR1ZGUpfSxmdW5jdGlvbihiKXtjb25zb2xlLmxvZyhiKTt2YXIgYz0iR2VvbG9jIGVycm9yIGNvZGU6ICIrYi5jb2RlKyIsIGdlb2xvYyBlcnJvciBtZXNhZ2U6ICIrYi5tZXNzYWdlO2EuaGlkZUdlb2xvY01zZygpO2EuY2xlYXJTZXRUaW1lb3V0cygpO0Nvb2tpZXMuc2V0KCJnZW9sb2NQcm9jZXNzZWQiLEpTT04uc3RyaW5naWZ5KHthY2NlcHRlZDowfSksCjEsIi8iKTt2YXIgZD1hLmdlb2xvY0Vycm9ycy5HRU9MT0NfUkVGVVNFRDsxIT1wYXJzZUludChiLmNvZGUpJiYoZD1hLmdlb2xvY0Vycm9ycy5HRU9MT0NfRkFJTEVEKTthLmhhbmRsZUxvY2F0aW9uRXJyb3IoZCxjKX0se3RpbWVvdXQ6MjVFM30pfTthLmxhdExvbmdHZW9jb2RlPWZ1bmN0aW9uKGIsYyl7YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzPWIrInwiK2M7YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cj0iTGF0aXR1ZGU6ICIrYisiOyBMb25naXR1ZGU6ICIrYzthLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpfTthLnRyYWNrUG9zdGFsPWZ1bmN0aW9uKCl7aWYoJGNvb2tpZT1Db29raWVzLmdldCgiSFRNTDVHZW8iKSlpZigkY29va2llPUpTT04ucGFyc2UoJGNvb2tpZSksJGNvb2tpZS5wb3N0YWxfY29kZSlyZXR1cm47aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUmJiIiIT09YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUpe3ZhciBiPQphLmdlb2xvY1Jlc3VsdC5wb3N0YWxfY29kZSsifCIrYS5nZW9sb2NSZXN1bHQuYWNjdXJhY3k7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsIkhUTUw1R2VvLnBvc3RhbCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYiwiSFRNTDVHZW8ucG9zdGFsIikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsIkhUTUw1R2VvLnBvc3RhbCIpO2I9bmV3IERhdGU7Yi5zZXRIb3VycygyMyw1OSw1OSwwKTtDb29raWVzLnNldCgiSFRNTDVHZW8iLEpTT04uc3RyaW5naWZ5KHtwb3N0YWxfY29kZToxfSksYiwiLyIpfX07CmEuZ2V0QWRkcmVzc0Nvb3JkPWZ1bmN0aW9uKGIsYyl7cmV0dXJuITF9O2EudHJhY2tMb2NhdGlvbj1mdW5jdGlvbihiLGMsZCl7aWYoIWEudHJhY2tMb2NhdGlvbkdBKXJldHVybiExfTthLmNsZWFyU2V0VGltZW91dHM9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPGEudGltZW91dHMubGVuZ3RoO2IrKyljbGVhclRpbWVvdXQoYS50aW1lb3V0c1tiXSk7YS50aW1lb3V0cz1bXX07YS5zaG93R2VvbG9jTXNnPWZ1bmN0aW9uKCl7aWYoIWEuc2hvd1BvaW50ZXJNZXNzYWdlKXJldHVybiExO2EuY2xlYXJTZXRUaW1lb3V0cygpO3ZhciBiPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCl9LDNFNCk7YS50aW1lb3V0cy5wdXNoKGIpO2lmKC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iil8fC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpKSQoIi5nZW9sb2MtbW9kYWwtYmciKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KSwKJCgiI2dlb2xvY2F0aW9uTXNnIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCk7Y2xlYXJUaW1lb3V0KGIpfSksJCgiI2dlb2xvY2F0aW9uTXNnSUUiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2dlb2xvY0ZhaWwoKTtjbGVhclRpbWVvdXQoYil9KTt2YXIgYz0iZ2VvbG9jYXRpb25Nc2ciLGQ9ITAsZT17dG9wOiIwIixsZWZ0OiIwIn07c3dpdGNoKCEwKXtjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpOmU9e2JvdHRvbToiMHB4IixsZWZ0OiI0MyUifTtjPSJnZW9sb2NhdGlvbk1zZ0lFIjticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iik6ZT17dG9wOiI5MHB4IixsZWZ0OiI1cHgifTskKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCI3NXB4Iik7JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJ0b3AiLCIzNXB4Iik7LTE9PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKS5pbmRleE9mKCJXaW5kb3dzIikmJgokKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIxNzVweCIpO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIkNocm9tZSIpOmU9e3RvcDoiNjVweCIsbGVmdDoiMHB4In07JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMjEwcHgiKTstMT09JCgiI3R4dFVzZXJBZ2VudCIpLnZhbCgpLmluZGV4T2YoIldpbmRvd3MiKSYmKGU9e3RvcDoiNzVweCIsbGVmdDoiNTBweCJ9LCQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjI0MHB4IikpO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIlNhZmFyaSIpOmU9e3RvcDoiNTE1cHgiLGxlZnQ6IjM1JSJ9O2Q9ITA7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiT3BlcmEiKTplPXt0b3A6IjAiLGxlZnQ6IjAifTtkPSExO2JyZWFrO2RlZmF1bHQ6ZT17dG9wOiIwIixsZWZ0OiIwIn0sZD0hMX1kJiYoInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIucmV2ZWFsLW1vZGFsLWJnIikudmFsKCkmJgoiYmxvY2siPT0kKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJkaXNwbGF5IikmJiQoIi5yZXZlYWwtbW9kYWwtYmciKS5oaWRlKCksJCgiLmdlb2xvYy1tb2RhbC1iZyIpLnNob3coKSwkKCIjIitjKS5jc3MoZSksJCgiIyIrYykuc2hvdygpLCJ1bmRlZmluZWQiPT10eXBlb2Ygc2l0ZVNlY3Rpb24mJihzaXRlU2VjdGlvbj0iVU5ERUZJTkVEIiksYS50cmFja0xvY2F0aW9uKCJHZW9sb2NhdGlvbiIsIlNlY3Rpb24tIitzaXRlU2VjdGlvbiwiIikpfTthLmhpZGVHZW9sb2NNc2c9ZnVuY3Rpb24oYil7aWYoIWEuc2hvd1BvaW50ZXJNZXNzYWdlKXJldHVybiExO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYnx8bnVsbD09YiliPSExOyQoIi5nZW9sb2MtbW9kYWwtYmciKS5oaWRlKCk7Ynx8KCQoIiNnZW9sb2NhdGlvbk1zZyIpLmhpZGUoKSwkKCIjZ2VvbG9jYXRpb25Nc2dJRSIpLmhpZGUoKSl9O2EuZ2VvbG9jRmFpbD1mdW5jdGlvbigpey0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpJiYKbG9jYXRpb24ucmVsb2FkKCk7b3ZlcmxheU9ubHk9ITA7aWYoLTE8YS5icm93c2VyLmluZGV4T2YoIkZpcmVmb3giKXx8LTE8YS5icm93c2VyLmluZGV4T2YoIklFIikpb3ZlcmxheU9ubHk9ITE7YS5oaWRlR2VvbG9jTXNnKG92ZXJsYXlPbmx5KTtyZXR1cm4hMX07YS5nZXREaXN0YW5jZT1mdW5jdGlvbihiLGMsZCl7cmV0dXJuIGEuZ2V0RGlzdGFuY2VIYXZlcnNpbmUoYixjKX07YS5nZXREaXN0YW5jZUhhdmVyc2luZT1mdW5jdGlvbihiLGMpe3ZhciBkPShjLmxhdC1iLmxhdCkqTWF0aC5QSS8xODAsZT0oYy5sb25nLWIubG9uZykqTWF0aC5QSS8xODA7Yj1NYXRoLnNpbihkLzIpKk1hdGguc2luKGQvMikrTWF0aC5jb3MoYi5sYXQqTWF0aC5QSS8xODApKk1hdGguY29zKGMubGF0Kk1hdGguUEkvMTgwKSpNYXRoLnNpbihlLzIpKk1hdGguc2luKGUvMik7cmV0dXJuKDEyNzU2Mjc0Kk1hdGguYXRhbjIoTWF0aC5zcXJ0KGIpLE1hdGguc3FydCgxLWIpKSkudG9GaXhlZCgyKX07YS5nZXREaXN0YW5jZUdtYXBzPQpmdW5jdGlvbihiLGMpe3JldHVybiBhLmdldERpc3RhbmNlSGF2ZXJzaW5lKGIsYyl9fTsKLyoqIC9tL2pzL3ByaW50VGhpcy5qcyAqKi8KdmFyIF9fX2QyY19wcmludFRoaXNqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjQwIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19wcmludFRoaXNqc19jX29uPSIyMDI0LTA3LTMwIDEwOjMwOjA4IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihjKXtmdW5jdGlvbiByKGQsZSl7ZSYmZC5hcHBlbmQoZS5qcXVlcnk\/ZS5jbG9uZSgpOmUpfWZ1bmN0aW9uIHQoZCxlLGspe3ZhciBmPWUuY2xvbmUoay5mb3JtVmFsdWVzKTtrLmZvcm1WYWx1ZXMmJnUoZSxmLCJzZWxlY3QsIHRleHRhcmVhIik7ay5yZW1vdmVTY3JpcHRzJiZmLmZpbmQoInNjcmlwdCIpLnJlbW92ZSgpO2sucHJpbnRDb250YWluZXI\/Zi5hcHBlbmRUbyhkKTpmLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmNoaWxkcmVuKCkuYXBwZW5kVG8oZCl9KX1mdW5jdGlvbiB1KGQsZSxrKXt2YXIgZj1kLmZpbmQoayk7ZS5maW5kKGspLmVhY2goZnVuY3Rpb24oZyxxKXtjKHEpLnZhbChmLmVxKGcpLnZhbCgpKX0pfXZhciBhO2MuZm4ucHJpbnRUaGlzPWZ1bmN0aW9uKGQpe2E9Yy5leHRlbmQoe30sYy5mbi5wcmludFRoaXMuZGVmYXVsdHMsZCk7dmFyIGU9dGhpcyBpbnN0YW5jZW9mIGpRdWVyeT90aGlzOmModGhpcyk7ZD0icHJpbnRUaGlzLSIrKG5ldyBEYXRlKS5nZXRUaW1lKCk7CmlmKHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSE9PWRvY3VtZW50LmRvbWFpbiYmbmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvbXNpZS9pKSl7dmFyIGs9J2phdmFzY3JpcHQ6ZG9jdW1lbnQud3JpdGUoIjxoZWFkPjxzY3JpcHQ+ZG9jdW1lbnQuZG9tYWluPVxcIicrZG9jdW1lbnQuZG9tYWluKydcXCI7XHgzYy9zY3JpcHQ+PC9oZWFkPjxib2R5PjwvYm9keT4iKScsZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTtmLm5hbWU9InByaW50SWZyYW1lIjtmLmlkPWQ7Zi5jbGFzc05hbWU9Ik1TSUUiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZik7Zi5zcmM9a31lbHNlIGMoIjxpZnJhbWUgaWQ9JyIrZCsiJyBuYW1lPSdwcmludElmcmFtZScgLz4iKS5hcHBlbmRUbygiYm9keSIpO3ZhciBnPWMoIiMiK2QpO2EuZGVidWd8fGcuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHdpZHRoOiIwcHgiLGhlaWdodDoiMHB4IixsZWZ0OiItNjAwcHgiLHRvcDoiLTYwMHB4In0pOwpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcShiLHApe2I9Yi5nZXQoMCk7Yj1iLmNvbnRlbnRXaW5kb3d8fGIuY29udGVudERvY3VtZW50fHxiO2I9Yi5kb2N1bWVudHx8Yi5jb250ZW50RG9jdW1lbnR8fGI7Yi5vcGVuKCk7Yi53cml0ZShwKTtiLmNsb3NlKCl9YS5kb2N0eXBlU3RyaW5nJiZxKGcsYS5kb2N0eXBlU3RyaW5nKTt2YXIgbT1nLmNvbnRlbnRzKCksbD1tLmZpbmQoImhlYWQiKSxuPW0uZmluZCgiYm9keSIpLGg9YygiYmFzZSIpO2g9ITA9PT1hLmJhc2UmJjA8aC5sZW5ndGg\/aC5hdHRyKCJocmVmIik6InN0cmluZyI9PT10eXBlb2YgYS5iYXNlP2EuYmFzZTpkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK2RvY3VtZW50LmxvY2F0aW9uLmhvc3Q7bC5hcHBlbmQoJzxiYXNlIGhyZWY9IicraCsnIj4nKTthLmltcG9ydENTUyYmYygibGlua1tyZWw9c3R5bGVzaGVldF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Yyh0aGlzKS5hdHRyKCJocmVmIik7aWYoYil7dmFyIHA9CmModGhpcykuYXR0cigibWVkaWEiKXx8ImFsbCI7bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrYisiJyBtZWRpYT0nIitwKyInLz4iKX19KTthLmltcG9ydFN0eWxlJiZjKCJzdHlsZSIpLmVhY2goZnVuY3Rpb24oKXtsLmFwcGVuZCh0aGlzLm91dGVySFRNTCl9KTthLnBhZ2VUaXRsZSYmbC5hcHBlbmQoIjx0aXRsZT4iK2EucGFnZVRpdGxlKyI8L3RpdGxlPiIpO2EubG9hZENTUyYmKEFycmF5LmlzQXJyYXkoYS5sb2FkQ1NTKT9qUXVlcnkuZWFjaChhLmxvYWRDU1MsZnVuY3Rpb24oYixwKXtsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIit0aGlzKyInLz4iKX0pOmwuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK2EubG9hZENTUysiJy8+IikpO2lmKGg9YS5jb3B5VGFnQ2xhc3NlcyloPSEwPT09aD8iYmgiOmgsLTEhPT1oLmluZGV4T2YoImIiKSYmCm4uYWRkQ2xhc3MoYygiYm9keSIpWzBdLmNsYXNzTmFtZSksLTEhPT1oLmluZGV4T2YoImgiKSYmbS5maW5kKCJodG1sIikuYWRkQ2xhc3MoYygiaHRtbCIpWzBdLmNsYXNzTmFtZSk7cihuLGEuaGVhZGVyKTtpZihhLmNhbnZhcyl7dmFyIHY9MDtlLmZpbmQoImNhbnZhcyIpLmFkZEJhY2soImNhbnZhcyIpLmVhY2goZnVuY3Rpb24oKXtjKHRoaXMpLmF0dHIoImRhdGEtcHJpbnR0aGlzIix2KyspfSl9dChuLGUsYSk7YS5jYW52YXMmJm4uZmluZCgiY2FudmFzIikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWModGhpcykuZGF0YSgicHJpbnR0aGlzIik7Yj1jKCdbZGF0YS1wcmludHRoaXM9IicrYisnIl0nKTt0aGlzLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKGJbMF0sMCwwKTtiLnJlbW92ZURhdGEoInByaW50dGhpcyIpfSk7YS5yZW1vdmVJbmxpbmUmJihpc0Z1bmN0aW9uKGMucmVtb3ZlQXR0cik\/bS5maW5kKCJib2R5ICoiKS5yZW1vdmVBdHRyKCJzdHlsZSIpOm0uZmluZCgiYm9keSAqIikuYXR0cigic3R5bGUiLAoiIikpO3IobixhLmZvb3Rlcik7c2V0VGltZW91dChmdW5jdGlvbigpe2cuaGFzQ2xhc3MoIk1TSUUiKT8od2luZG93LmZyYW1lcy5wcmludElmcmFtZS50cmlnZ2VyKCJmb2N1cyIpLGwuYXBwZW5kKCI8c2NyaXB0PiAgd2luZG93LnByaW50KCk7IFx4M2Mvc2NyaXB0PiIpKTpkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoInByaW50Iik\/Z1swXS5jb250ZW50V2luZG93LmRvY3VtZW50LmV4ZWNDb21tYW5kKCJwcmludCIsITEsbnVsbCk6KGdbMF0uY29udGVudFdpbmRvdy50cmlnZ2VyKCJmb2N1cyIpLGdbMF0uY29udGVudFdpbmRvdy5wcmludCgpKTthLmRlYnVnfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5yZW1vdmUoKX0sMUUzKX0sYS5wcmludERlbGF5KX0sMzMzKX07Yy5mbi5wcmludFRoaXMuZGVmYXVsdHM9e2RlYnVnOiExLGltcG9ydENTUzohMCxpbXBvcnRTdHlsZTohMSxwcmludENvbnRhaW5lcjohMCxsb2FkQ1NTOiIiLHBhZ2VUaXRsZToiIixyZW1vdmVJbmxpbmU6ITEsCnByaW50RGVsYXk6MzMzLGhlYWRlcjpudWxsLGZvb3RlcjpudWxsLGZvcm1WYWx1ZXM6ITAsY2FudmFzOiExLGJhc2U6ITEsZG9jdHlwZVN0cmluZzoiPCFET0NUWVBFIGh0bWw+IixyZW1vdmVTY3JpcHRzOiExLGNvcHlUYWdDbGFzc2VzOiExfX0pKGpRdWVyeSk7Ci8qKiAvbS9qcy9wb3B1cC5qcyAqKi8KdmFyIF9fX2QyY19wb3B1cGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTE6MjciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3BvcHVwanNfY19vbj0iMjAyNC0wMy0xNSAxMDozMDoxMCI7InVzZSBzdHJpY3QiO3ZhciBhY3RpdmF0ZWRQb3B1cERpdklEPSIiLG1haW5Qb3B1cERpdklEPSIiLHBvcHVwT25BZnRlclN1Ym1pdENsb3NlPSExLGlzUG9wdXBJbml0aWFsaXplZD0hMTsKZnVuY3Rpb24gc2hvd1BvcHVwV2lkZ2V0KGEsYj0hMCl7dmFyIGM9ITE9PT1iPyExOiEwO2lmKGlzU21zVGV4dFVzRm9ybSgpJiZiKXJldHVybiBzaG93U21zVGV4dFVzRm9ybShjKSwhMTtpZighMT09PWlzUG9wdXBJbml0aWFsaXplZClyZXR1cm4hMTthPWE\/YTp7fTtzZXR0aW5ncz17c2hvd01haW5Qb3B1cDohMSxkb05vdFJlZGlyZWN0OiExLGV2ZW50VHlwZToiY2xpY2siLGRlbGF5OiExfTskLmV4dGVuZChzZXR0aW5ncyxhKTthPXNldHRpbmdzLmRvTm90UmVkaXJlY3Q7Yj1zZXR0aW5ncy5ldmVudFR5cGU7Yz1zZXR0aW5ncy5kZWxheTt2YXIgZD0wPGFjdGl2YXRlZFBvcHVwRGl2SUQubGVuZ3RoP2FjdGl2YXRlZFBvcHVwRGl2SUQ6ITE7ITA9PT1zZXR0aW5ncy5zaG93TWFpblBvcHVwJiYwPG1haW5Qb3B1cERpdklELmxlbmd0aCYmKGQ9bWFpblBvcHVwRGl2SUQpO2lmKGQmJjA8ZC5sZW5ndGgpJCgiIyIrZCkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKGIpLm9wZW4oYyk7ZWxzZSBpZigiZnVuY3Rpb24iPT09CnR5cGVvZiBzaG93UG9wdXBXaWRnZXRPTEQpc2hvd1BvcHVwV2lkZ2V0T0xEKCExKTtlbHNlIGlmKCExPT09YSkwPCQoIiNwcm9tb1NlY3Rpb25uYWJsZWQiKS5sZW5ndGgmJiIwIiE9JCgiI3Byb21vU2VjdGlvbm5hYmxlZCIpLnZhbCgpP3dpbmRvdy5sb2NhdGlvbi5ocmVmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyIvb3VyLXByb21vdGlvbnMuaHRtbCI6Ii9wcm9tb3Rpb25zLmh0bWwiOndpbmRvdy5sb2NhdGlvbi5ocmVmPSIvIjtlbHNlIHJldHVybiExfWZ1bmN0aW9uIHBvcHVwUG9zdE1lc3NhZ2VPbkF1dG9hdWJhaW5lKCl7c2V0VGltZW91dChmdW5jdGlvbigpeyQucG9zdE1lc3NhZ2UoImNsb3NlUG9wdXAiLCIqIixwYXJlbnQpfSwxRTMpfQpmdW5jdGlvbiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZShhLGIsYyxkLGUsZixnKXtpc1BvcHVwSW5pdGlhbGl6ZWQ9ITA7YyYmKG1haW5Qb3B1cERpdklEPWYrZCk7cmV0dXJuIGI9PWEmJmN8fCJyZXNldCI9PWImJmM\/KGFjdGl2YXRlZFBvcHVwRGl2SUQ9ZitkLCJ1c2VkY2Fycy5odG1sIiE9ZXx8Zz8ibmV3Y2Fycy5odG1sIiE9ZXx8Zz8hMDooY29uc29sZS5sb2coInBvcHVwLmpzIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIC0gbmV3Y2FycyByZXR1cm5zIGZhbHNlLiBQb3B1cCBtYXkgYmUgY2FuY2VsbGVkLiIpLCExKToodGhpcy5jb25zb2xlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBjb25zb2xlLmxvZyYmY29uc29sZS5sb2coInBvcHVwLmpzIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIC0gdXNlZGNhcnMgIHJldHVybnMgZmFsc2UuIFBvcHVwIG1heSBiZSBjYW5jZWxsZWQuIiksITEpKTohMX0KZnVuY3Rpb24gcG9wdXBjbG9zZVBERihhLGIpeyQoIiNwb3B1cGRpdnBkZiIrYSkubGVuZ3RoJiYkKCIjcG9wdXBkaXZwZGYiK2EpLmNzcygiZGlzcGxheSIsIm5vbmUiKTskKCIjcG9wdXBkaWZwZGZtb2RhbCIpLmxlbmd0aCYmJCgiI3BvcHVwZGlmcGRmbW9kYWwiKS5yZW1vdmUoKTskKCIjcG9wdXBkaXZwZGZpZnJhbWUiKS5sZW5ndGgmJiQoIiNwb3B1cGRpdnBkZmlmcmFtZSIpLnJlbW92ZSgpO2ImJnBvcHVwUG9zdE1lc3NhZ2VPbkF1dG9hdWJhaW5lKCl9ZnVuY3Rpb24gcHJpbnRQREZJRnJhbWUoKXt3aW5kb3cuZnJhbWVzLnBvcHVwZGl2cGRmaWZyYW1lLnByaW50TWUoKX1mdW5jdGlvbiBwb3B1cFRyaW0oYSl7cmV0dXJuIGEucmVwbGFjZSgvXlxzK3xccyskL2dtLCIiKX0KZnVuY3Rpb24gc2hvd1BvcHVwV2lkZ2V0QWRkVmVoaWNsZShhKXskKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnZhbChhKX0pO3Nob3dQb3B1cFdpZGdldCgpfWZ1bmN0aW9uIHNob3dTcGVjaWFsU2NoZWR1bGVPbmxvYWQoKXt2YXIgYT0kKCIjc3BlY2lhbFNjaGVkdWxlIik7MDxhLmxlbmd0aCYmYS5wb3B1cGl6ZSh7c2hvd29ubG9hZDohMCxjb29raWVOYW1lOiJzcFNjaGVkdWxlRGlzcGxheWVkIixjb29raWVDcmVhdGU6Im9uT3BlbiIsY2xvc2VCdXR0b246ITB9KX1mdW5jdGlvbiBzaG93U3BlY2lhbFNjaGVkdWxlKCl7JCgiI3NwZWNpYWxTY2hlZHVsZSIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9ZnVuY3Rpb24gc2hvd1RyYWRlQm9vc3RQb3B1cCgpeyQoIiNUcmFkZUluQmFyUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfQpmdW5jdGlvbiBpc1Ntc1RleHRVc0Zvcm0oKXtsZXQgYT1bIm5ld2NhcmRldGFpbC5odG1sIiwibmV3Y2Fycy5odG1sIl0sYj1bImNhcmRldGFpbC5odG1sIiwidXNlZGNhcnMuaHRtbCJdO3JldHVybiIxIj09JCgiI0Rpc2NvdW50UG9wdXBOZXdSZWJhdGVTaG93VGV4dFVzIikudmFsKCkmJmEuaW5jbHVkZXMoJCgiI1BBR0VJRCIpLnZhbCgpKXx8IjEiPT0kKCIjRGlzY291bnRQb3B1cFVzZWRSZWJhdGVTaG93VGV4dFVzIikudmFsKCkmJmIuaW5jbHVkZXMoJCgiI1BBR0VJRCIpLnZhbCgpKT8hMDohMX1mdW5jdGlvbiBzaG93U21zVGV4dFVzRm9ybShhPSEwKXskKCIjaXNNb2JpbGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiExIT09YT9kZWFsZXJMaW5lU21zKCk6ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3NsaWRlaXQgI29wZW4taXRlbSIpLmNoZWNrZWQ9ITB9OwovKiogL20vanMvbXVsdGlGb3JtUG9wdXAuanMgKiovCnZhciBfX19kMmNfbXVsdGlGb3JtUG9wdXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjU2IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19tdWx0aUZvcm1Qb3B1cGpzX2Nfb249IjIwMjQtMDMtMjUgMTI6MzQ6MDAiOyJ1c2Ugc3RyaWN0IjsKZnVuY3Rpb24gbXVsdGlGb3JtUG9wdXBJbml0aWFsaXplKGEpe2E9YXx8Im11bHRpZm9ybVBvcHVwQ29udGFpbmVyIjskKGAjJHthfWApLmZpbmQoIiNtdWx0aWZvcm1fYnRuXzEgIikub24oImNsaWNrIHRvdWNoIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCk7JC52YWxpZGl0eS5zdGFydCgpOyQoYCMke2F9YCkuZmluZCgiI211bHRpZm9ybV9wb3N0YWwiKS5yZXF1aXJlKCkucmVxdWlyZVBvc3RhbENvZGUoKTtpZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXtiPSQoIiNtdWx0aWZvcm1fcG9zdGFsIikudmFsKCk7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50PygidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIkxvZyBFdmVudCIsYiwiVXNlckZvcm0ucG9zdGFsIiksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLAoiVXNlckZvcm0ucG9zdGFsIikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsYiwiVXNlckZvcm0ucG9zdGFsIik7JChgIyR7YX1gKS5maW5kKCIubXVsdGlmb3JtX2NpcmNsZTIiKS5jc3Moe2JhY2tncm91bmRDb2xvcjokKCIubXVsdGlmb3JtX2NpcmNsZTEiKS5jc3MoImJhY2tncm91bmRDb2xvciIpLGNvbG9yOiQoIi5tdWx0aWZvcm1fY2lyY2xlMSIpLmNzcygiY29sb3IiKX0pOyQoYCMke2F9YCkuZmluZCgiLm11bHRpZm9ybV9jaXJjbGUxIikuY3NzKHtiYWNrZ3JvdW5kQ29sb3I6IiNmZmYiLGNvbG9yOiIjMzMzIn0pOyQoYCMke2F9YCkuZmluZCgiLm11bHRpZm9ybV9zdGVwMSIpLmhpZGUoKTskKGAjJHthfWApLmZpbmQoIi5tdWx0aWZvcm1fc3RlcDIiKS5zaG93KCk7KG5ldyBGb3JtKS5tYXNrUGhvbmUoIiNtdWx0aWZvcm1fc21zIik7Yj0kKCIuYnJhbmRlbWFpbCIpLmxlbmd0aD8kKCIuYnJhbmRlbWFpbCIpLnZhbCgpOiIiOwp2YXIgYz0kKCIubW9kZWxlbWFpbCIpLmxlbmd0aD8kKCIubW9kZWxlbWFpbCIpLnZhbCgpOiIiLGQ9JCgiLnllYXJlbWFpbCIpLmxlbmd0aD8kKCIueWVhcmVtYWlsIikudmFsKCk6IiI7Yi5sZW5ndGgmJmMubGVuZ3RoJiZkLmxlbmd0aCYmJChgIyR7YX1gKS5maW5kKCIjc2VhcmNoZWR2ZWhpY2xlIikudmFsKGIrIiAiK2MrIiAiK2QpOyQoYCMke2F9YCkuZmluZCgiI211bHRpZm9ybV9mb3JtVyAubXVsdGlmb3JtX3N0ZXAyIGlucHV0OmZpcnN0IikudHJpZ2dlcigiZm9jdXMiKTskKGAjJHthfWApLmZpbmQoIiNtdWx0aWZvcm1fZm9ybVcgI3NlYXJjaGVkdmVoaWNsZSIpLmxlbmd0aCYmbnVsbCE9Q29va2llcy5nZXQoImxhc3R2aWV3ZWR2ZWhpY2xlIikmJiQoYCMke2F9YCkuZmluZCgiI211bHRpZm9ybV9mb3JtVyAjc2VhcmNoZWR2ZWhpY2xlIikudmFsKENvb2tpZXMuZ2V0KCJsYXN0dmlld2VkdmVoaWNsZSIpLnJlcGxhY2VBbGwoInx8fCIsIiAiKSl9fSl9OwovKiogL20vanMvcGRmUG9wdXAuanMgKiovCnZhciBfX19kMmNfcGRmUG9wdXBqc19jX29uPSIyMDI2LTA1LTEyIDA5OjMwOjExIjsndXNlIHN0cmljdCc7ZnVuY3Rpb24gc3VibWl0U3BlY3NOZXdQZGZSZXF1ZXN0KCl7dmFyIGE9JCgiLmVtYWlsU3ViamVjdCIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnRleHQoKSxkPSQoIi5lbWFpbEJvZHkiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS5odG1sKCksYz0kKCIjY2xpZW50RW1haWwiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS52YWwoKSxiPSQoIiNjbGllbnRTbXMiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS52YWwoKSxmPSJ1bmRlZmluZWQiIT0kKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKCk\/JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpOiIiLGc9InVuZGVmaW5lZCIhPSQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoKT8kKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCk6IiIsaD0idW5kZWZpbmVkIiE9JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCk\/JCgiaW5wdXQueWVhcmVtYWlsIikudmFsKCk6IiI7ZD1kLnJlcGxhY2UoL3tcJENMSUVOVEVNQUlMfS9nLApjKTtkPWQucmVwbGFjZSgve1wkQ0xJRU5UUEhPTkV9L2csYik7ZW1haWxIYW5kbGVyLnN1YmplY3Q9YTtlbWFpbEhhbmRsZXIuYm9keT1kO2VtYWlsSGFuZGxlci5zZW5kVG89JCgiI3RleHRTZW5kVG9FbWFpbCIpLnZhbCgpO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpO2VtYWlsSGFuZGxlci5tYWlsSUQ9IlNwZWNzUmVxdWVzdE5ldyI7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1jO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9YjtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJOZXciOzA8Zi5sZW5ndGgmJihlbWFpbEhhbmRsZXIubWFrZT1mKTswPGcubGVuZ3RoJiYoZW1haWxIYW5kbGVyLm1vZGVsPWcpOzA8aC5sZW5ndGgmJihlbWFpbEhhbmRsZXIueWVhcj1oKTt2YXIgZT1nZXRNYWlsU2VudEhhbmRsZXIoIl9wb3B1cFRlY2hTcGVjc05ld0RpdiIpO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihrKXtrPyJ1bmRlZmluZWQiIT0KdHlwZW9mIGUmJmUuc2hvd1N1Y2Nlc3MoKToidW5kZWZpbmVkIiE9dHlwZW9mIGUmJmUuc2hvd0ZhaWwoKX07ZW1haWxIYW5kbGVyLnNlbmRNYWlsKCk7JCgiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikucG9wdXBpemUoKS5jbG9zZSgpfXZhciBnbG9iYWxMb2NhbGU9dm9pZCAwO2Z1bmN0aW9uIGlzTG9jYWxlKGEpe3ZvaWQgMD09PWdsb2JhbExvY2FsZSYmKGdsb2JhbExvY2FsZT0kKCIjdGV4dExhbmd1YWdlRGV0YWlsIikudmFsKCkpO3JldHVybiBnbG9iYWxMb2NhbGUudG9Mb3dlckNhc2UoKT09YS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGlzRW5nbGlzaCgpe3JldHVybiBpc0xvY2FsZSgiRU5HTElTSCIpfWZ1bmN0aW9uIGlzRnJlbmNoKCl7cmV0dXJuIGlzTG9jYWxlKCJGUkVOQ0giKX0KZnVuY3Rpb24gcHJpbnRTcGVjcygpe3ZhciBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTthPWEuc3Vic3RyaW5nKDAsYS5sYXN0SW5kZXhPZigiLyIpKzEpKyQoIiNwb3B1cFRlY2hTcGVjc0RpdiAjcHJpbnRQYWdlIikuYXR0cigiaHJlZiIpO3dpbmRvdy5vcGVuKGEpO3JldHVybiExfWZ1bmN0aW9uIHByaW50U3BlY3NOZXcoKXt2YXIgYT0kKCJpbnB1dCNzcGVjQnJvY2h1cmVVcmkiKS52YWwoKXx8JCgiI3NwZWNCcm9jaHVyZVVyaU5ldyIpLnZhbCgpO3dpbmRvdy5vcGVuKGEpO3JldHVybiExfQpmdW5jdGlvbiBzZW5kU3BlY3NOZXdQZGZSZXF1ZXN0KCl7JC52YWxpZGl0eS5zdGFydCgpO3ZhciBhPTA8JCgiI2NsaWVudFNtcyIsIiNwb3B1cFRlY2hTcGVjc05ld0RpdiIpLnZhbCgpLmxlbmd0aD8hMDohMTthPyQoIiNjbGllbnRTbXMiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS5yZXF1aXJlKCkudmFsaWRhdGVNb2JpbGUoKTokKCIjY2xpZW50RW1haWwiLCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYiKS5yZXF1aXJlKCkudmFsaWRFbWFpbEFkZHJlc3MoKTtpZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXt2YXIgZD0iIixjPXt9O2E\/ZD0oIkVOR0xJU0giPT0kKCIjdGV4dExhbmd1YWdlIikudmFsKCk\/Ii9lbiI6Ii9mciIpKyIvYWpheC9TZW5kU21zP3dzd2lkdGg9MCI6KGMuZW1haWw9JCgiI2NsaWVudEVtYWlsIiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikudmFsKCksZD0kKCIjcHJpbnRQYWdlIiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikuYXR0cigiaHJlZiIpKwoiJmVtYWlsPSIrYy5lbWFpbCk7Yy5waG9uZT0kKCIjY2xpZW50U21zIiwiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikudmFsKCk7Yy5tYWtlPSQoJ1tuYW1lPSJicmFuZCJdJykudmFsKCk7Yy5tb2RlbD0kKCdbbmFtZT0ibW9kZWwiXScpLnZhbCgpO2MueWVhcj0kKCdbbmFtZT0ieWVhciJdJykudmFsKCk7JC5hamF4KHthc3luYzohMSx1cmw6ZCxkYXRhOmMsc3VjY2VzczpmdW5jdGlvbihiKXtiPUpTT04ucGFyc2UoYik7InVuZGVmaW5lZCIhPT10eXBlb2YgYi5tZXNzYWdlJiZjb25zb2xlLmxvZyhiLm1lc3NhZ2UpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlX3BvcHVwVGVjaFNwZWNzTmV3RGl2IHNwYW4uc3VjY2VzcyIpLmh0bWwoJCgiI1JFUVVFU1RfU0VOVCIpLnZhbCgpKTtzdWJtaXRTcGVjc05ld1BkZlJlcXVlc3QoKX0sZmFpbHVyZTpmdW5jdGlvbihiKXtjb25zb2xlLmxvZygiYWpheCBmYWlsdXJlIixzYXZlSGFuZGxlci5mYWlsTWVzc2FnZSsiXG4iK2IpOyQoIiNwb3B1cFRlY2hTcGVjc05ld0RpdiAuY2xvc2UtcmV2ZWFsLW1vZGFsIikudHJpZ2dlcigiY2xpY2siKX0sCmVycm9yOmZ1bmN0aW9uKGIsZixnKXskKCIjcG9wdXBUZWNoU3BlY3NOZXdEaXYgLmNsb3NlLXJldmVhbC1tb2RhbCIpLnRyaWdnZXIoImNsaWNrIik7Y29uc29sZS5sb2coImFqYXggZXJyb3IiLGIucmVzcG9uc2VUZXh0KX19KX19ZnVuY3Rpb24gc2hvd1NwZWNzUmVxdWVzdE5ld1BvcHVwKCl7JCgiI3BvcHVwVGVjaFNwZWNzTmV3RGl2IikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKTtyZXR1cm4hMX0KZnVuY3Rpb24gc2VuZFNtcyhhLGQsYyl7JC52YWxpZGl0eS5zdGFydCgpO3ZhciBiPSJORVciPT1jPyJuZXciOiIiO2xldCBmPSJORVciPT1jPyJOZXciOiIiOyJNb2JpbGUtUmVxdWVzdE1vbnRobHlQYXltZW50cyI9PWQ\/JChgI2NsaWVudE5hbWUke2J9YCwiI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyIikucmVxdWlyZSgpLm5vbkh0bWwoKTooJChgI2NsaWVudFNtcyR7Yn1gLGAjcG9wdXBUZWNoU3BlY3Mke2Z9RGl2YCkucmVxdWlyZSgpLnZhbGlkYXRlTW9iaWxlKCksJChgI2NsaWVudE5hbWUke2J9YCxgI3BvcHVwVGVjaFNwZWNzJHtmfURpdmApLnJlcXVpcmUoKS5ub25IdG1sKCkpO2lmKCQudmFsaWRpdHkuZW5kKCkudmFsaWQpe3ZhciBnPSQoYCNjbGllbnROYW1lJHtifWAsYCNwb3B1cFRlY2hTcGVjcyR7Zn1EaXZgKS52YWwoKSxoPSQoYCNjbGllbnRTbXMke2J9YCxgI3BvcHVwVGVjaFNwZWNzJHtmfURpdmApLnZhbCgpO2I9JChgI2NsaWVudEVtYWlsJHtifWAsCmAjcG9wdXBUZWNoU3BlY3Mke2Z9RGl2YCkudmFsKCk7aWYoIm9iamVjdCI9PT10eXBlb2YgZGVhbGVyU21zTnVtYmVyKXthPXtkZXB0OiQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS5sZW5ndGgmJiIxIj09JCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpPyJORVciOmVtYWlsSGFuZGxlcj9lbWFpbEhhbmRsZXIuZ2V0RGVwKCk6Yy50b1VwcGVyQ2FzZSgpLG1lc3NhZ2VUeXBlOmEsdXNlck5hbWU6Zyx1c2VyUGhvbmU6aCx1c2VyRW1haWw6Yn07Yz0kKCIjcGhvbmVteWVhciIpLmxlbmd0aD8kKCIjcGhvbmVteWVhciIpLnZhbCgpOiIiO2c9JCgiI3Bob25lbWFrZSIpLmxlbmd0aD8kKCIjcGhvbmVtYWtlIikudmFsKCk6IiI7aD0kKCIjcGhvbmVtb2RlbCIpLmxlbmd0aD8kKCIjcGhvbmVtb2RlbCIpLnZhbCgpOiIiO2I9JCgiI3Bob25lc3RvY2tudW1iZXIiKS5sZW5ndGg\/JCgiI3Bob25lc3RvY2tudW1iZXIiKS52YWwoKToiIjtvd25lcklkPSQoIiN2ZWhpY2xlT3duZXJJZCIpLmxlbmd0aD8KJCgiI3ZlaGljbGVPd25lcklkIikudmFsKCk6IiI7IiIhPT1nJiYoYS5tYWtlPWcpOyIiIT09aCYmKGEubW9kZWw9aCk7IiIhPT1jJiYoYS55ZWFyPWMpOyIiIT09YiYmKGEuc3RvY2tOdW1iZXI9Yik7IiIhPT1vd25lcklkJiYoYS5kZWFsZXJJZD1vd25lcklkKTthLnZlaGljbGVJZD0iIjthLlZJTj0iIjthLnByaWNlPSIiO2EubW9kZWxJZD0iIjtpZihzaXRlUGFnZS5uYW1lPSJvYmplY3QiPT09dHlwZW9mIHNlYXJjaERldGFpbHMmJiJvYmplY3QiPT09dHlwZW9mIHNlYXJjaERldGFpbHMudmVoaWNsZSlhLnZlaGljbGVJZD1zZWFyY2hEZXRhaWxzLnZlaGljbGVJRHx8IiIsYS5WSU49c2VhcmNoRGV0YWlscy52ZWhpY2xlLk5JVnx8IiIsYS5wcmljZT1zZWFyY2hEZXRhaWxzLnZlaGljbGUucHJpY2V8fCIiO2lmKHNpdGVQYWdlLm5hbWU9Im9iamVjdCI9PT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmIm9iamVjdCI9PT10eXBlb2YgbmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbClhLm1vZGVsSWQ9Cm5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuaWR8fCIiO2RlYWxlclNtc051bWJlci5nZXRTbXNOdW1iZXIoYSxmdW5jdGlvbihlKXtpZighMSE9PWUpeyJvYmplY3QiPT09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGQsZS5zbXNtZXNzYWdlKTt2YXIgaz0vV2luZG93c1xzUGhvbmUvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPyI\/IjoiPyYiO2U9InNtczoiK2Uuc21zbnVtYmVyK2srImJvZHk9IitlbmNvZGVVUklDb21wb25lbnQoZS5zbXNtZXNzYWdlKTtjb25zb2xlLmxvZygiU01TSFJFRjoiLGUpO3dpbmRvdy5sb2NhdGlvbi5ocmVmPWV9fSl9fX0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXskKCIjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfc21zIikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciBhPSQoIiNwaG9uZW1ha2UiKS52YWwoKSsiLSIrJCgiI3Bob25lbW9kZWwiKS52YWwoKSsiLSIrJCgiI3Bob25lbXllYXIiKS52YWwoKTtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkNvdXJyaWVscyIsIiBEZW1hbmRlIGRlIG1lbnN1YWxpdOlzICh26WhpY3VsZSBkJ29jY2FzaW9uKSIsIkRlbWFuZGVzLSIrYSwxKTtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiQ291cnJpZWxzLWRlcHQiLCJPY2Nhc2lvbiIsYSwxKTtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiQ291cnJpZWxzLXBhZ2UiLCJVc2VkLVZEUCIsIiBEZW1hbmRlIGRlIG1lbnN1YWxpdOlzICh26WhpY3VsZSBkJ29jY2FzaW9uKSIsMSl9KX0pOwovKiogL20vanMvbmViQ2FsL25lYkRhdGVGbi5qcyAqKi8KdmFyIF9fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA0OjI0IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDI0LTAxLTMxIDE0OjMxOjU3IjsidXNlIHN0cmljdCI7X19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzI6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0MjoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDIxLTEyLTE1IDEyOjM4OjM5IjsidXNlIHN0cmljdCI7Y29uc3QgbmViRGF0ZUZuPXt9OwokKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyQubmViTGFuZz17bW9udGhOYW1lczoiSmFudmllciBGJmVhY3V0ZTt2cmllciBNYXJzIEF2cmlsIE1haSBKdWluIEp1aWxsZXQgQW8mdWNpcmM7dCBTZXB0ZW1icmUgT2N0b2JyZSBOb3ZlbWJyZSBEJmVhY3V0ZTtjZW1icmUiLnNwbGl0KCIgIiksbW9udGhOYW1lc1Nob3J0OiJKYW52LiBGJmVhY3V0ZTt2ci4gTWFycyBBdnIuIE1haSBKdWluIEp1aWwuIEFvJnVjaXJjO3QgU2VwdC4gT2N0LiBOb3YuIEQmZWFjdXRlO2MuIi5zcGxpdCgiICIpLGRheU5hbWVzOiJEaW1hbmNoZSBMdW5kaSBNYXJkaSBNZXJjcmVkaSBKZXVkaSBWZW5kcmVkaSBTYW1lZGkiLnNwbGl0KCIgIiksZGF5TmFtZXNTaG9ydDoiRGltIEx1biBNYXIgTWVyIEpldSBWZW4gU2FtIi5zcGxpdCgiICIpLGRheU5hbWVzTWluOiJEaSBMdSBNYSBNZSBKZSBWZSBTYSIuc3BsaXQoIiAiKSx3ZWVrSGVhZGVyOiJTbSIsZGF0ZUZvcm1hdDoieS1NLWQiLGZpcnN0RGF5OjEsCmlzUlRMOiExLHNob3dNb250aEFmdGVyWWVhcjohMSx5ZWFyU3VmZml4OiIiLGludmFsaWREYXRlRm9ybWF0OiJpbnZhbGlkX2RhdGUifTokLm5lYkxhbmc9e21vbnRoTmFtZXM6IkphbnVhcnkgRmVicnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksbW9udGhOYW1lc1Nob3J0OiJKYW4uIEZlYi4gTWFyLiBBcHIuIE1heSBKdW4uIEp1bC4gQXVnLiBTZXB0LiBPY3QuIE5vdi4gRGVjLiIuc3BsaXQoIiAiKSxkYXlOYW1lczoiU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2RheSBGcmlkYXkgU2F0dXJkYXkiLnNwbGl0KCIgIiksZGF5TmFtZXNTaG9ydDoiU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0Ii5zcGxpdCgiICIpLGRheU5hbWVzTWluOiJTdSBNbyBUdSBXZSBUaCBGciBTYSIuc3BsaXQoIiAiKSx3ZWVrSGVhZGVyOiJTbSIsZGF0ZUZvcm1hdDoieS1NLWQiLApmaXJzdERheToxLGlzUlRMOiExLHNob3dNb250aEFmdGVyWWVhcjohMSx5ZWFyU3VmZml4OiIiLGludmFsaWREYXRlRm9ybWF0OiJpbnZhbGlkX2RhdGUifTtEYXRlLkxaPWZ1bmN0aW9uKGEpe3JldHVybigwPmF8fDk8YT8iIjoiMCIpK2F9O25lYkRhdGVGbi5MWj1mdW5jdGlvbihhKXtyZXR1cm4oMD5hfHw5PGE\/IiI6IjAiKSthfTtEYXRlLnByZWZlckFtZXJpY2FuRm9ybWF0PSEwO25lYkRhdGVGbi5jbGVhclRpbWU9ZnVuY3Rpb24oYSl7YSBpbnN0YW5jZW9mIERhdGUmJihhLnNldEhvdXJzKDApLGEuc2V0TWludXRlcygwKSxhLnNldFNlY29uZHMoMCksYS5zZXRNaWxsaXNlY29uZHMoMCkpO3JldHVybiBhfTsKRGF0ZS5wcm90b3R5cGUudG9NeXNxbEZvcm1hdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEZ1bGxZZWFyKCkrIi0iK0RhdGUuTFooMSt0aGlzLmdldE1vbnRoKCkpKyItIitEYXRlLkxaKHRoaXMuZ2V0RGF0ZSgpKSsiICIrRGF0ZS5MWih0aGlzLmdldEhvdXJzKCkpKyI6IitEYXRlLkxaKHRoaXMuZ2V0TWludXRlcygpKSsiOiIrRGF0ZS5MWih0aGlzLmdldFNlY29uZHMoKSl9O0RhdGUucHJvdG90eXBlLmlzTGVhcFllYXI9ZnVuY3Rpb24oKXtyZXR1cm4gMjk9PShuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksMSwyOSkpLmdldERhdGUoKX07RGF0ZS5wcm90b3R5cGUuZ2V0TGFzdERheU9mTW9udGhDYWw9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLHRoaXMuZ2V0TW9udGgoKSsxLDApKS5nZXREYXRlKCl9O0RhdGUucHJvdG90eXBlLnNldERheT1mdW5jdGlvbihhKXt0aGlzLnNldERhdGUoYSk7cmV0dXJuIHRoaXN9OwpEYXRlLnByb3RvdHlwZS5zZXRNb249ZnVuY3Rpb24oYSl7dGhpcy5zZXRNb250aChhKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuc2V0WWVhcj1mdW5jdGlvbihhKXt0aGlzLnNldEZ1bGxZZWFyKGEpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5hZGREYXk9ZnVuY3Rpb24oYSl7dGhpcy5zZXREYXRlKHRoaXMuZ2V0RGF0ZSgpK2EpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5hZGRNb249ZnVuY3Rpb24oYSl7dGhpcy5zZXRNb250aCh0aGlzLmdldE1vbnRoKCkrYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmFkZFllYXI9ZnVuY3Rpb24oYSl7dGhpcy5zZXRGdWxsWWVhcih0aGlzLmdldEZ1bGxZZWFyKCkrYSk7cmV0dXJuIHRoaXN9O0RhdGUucGFyc2VEYXRlVGltZT1mdW5jdGlvbihhKXthPWEuc3BsaXQoL1stIDpdLyk7cmV0dXJuIG5ldyBEYXRlKGFbMF0sYVsxXS0xLGFbMl0sYVszXSxhWzRdLGFbNV0pfTsKbmViRGF0ZUZuLnBhcnNlU3RyaW5nPWZ1bmN0aW9uKGEsZSl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgZXx8bnVsbD09PWV8fCIiPT09ZSl7ZT1bIk0vZC95IiwiTS1kLXkiLCJNLmQueSIsIk0vZCIsIk0tZCJdO3ZhciBjPVsiZC9NL3kiLCJkLU0teSIsImQuTS55IiwiZC9NIiwiZC1NIl07ZT1bInktTS1kO01NTSBkLCB5O01NTSBkLHk7eS1NTU0tZDtkLU1NTS15O01NTSBkO01NTS1kO2QtTU1NIi5zcGxpdCgiOyIpLERhdGUucHJlZmVyQW1lcmljYW5Gb3JtYXQ\/ZTpjLERhdGUucHJlZmVyQW1lcmljYW5Gb3JtYXQ\/YzplXTtmb3IoYz0wO2M8ZS5sZW5ndGg7YysrKWZvcih2YXIgaD1lW2NdLGs9MDtrPGgubGVuZ3RoO2srKyl7dmFyIG49bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEsaFtrXSk7aWYobnVsbCE9PW4pcmV0dXJuIG59cmV0dXJuIG51bGx9dGhpcy5pc0ludGVnZXI9ZnVuY3Rpb24odSl7Zm9yKHZhciBxPTA7cTx1Lmxlbmd0aDtxKyspaWYoLTE9PSIxMjM0NTY3ODkwIi5pbmRleE9mKHUuY2hhckF0KHEpKSlyZXR1cm4hMTsKcmV0dXJuITB9O3RoaXMuZ2V0SW50PWZ1bmN0aW9uKHUscSx5LHcpe2Zvcig7dz49eTt3LS0pe3ZhciB4PXUuc3Vic3RyaW5nKHEscSt3KTtpZih4Lmxlbmd0aDx5KWJyZWFrO2lmKHRoaXMuaXNJbnRlZ2VyKHgpKXJldHVybiB4fXJldHVybiBudWxsfTthKz0iIjtlKz0iIjtoPWM9MDt2YXIgbT0iIixiPSIiLGw9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLGc9MSxkPTEsZj0wLHI9MCx0PTAsdj0iIjttPVtdO2ZvcihiPTA7aDxlLmxlbmd0aDspe209ZS5jaGFyQXQoaCk7Zm9yKGI9IiI7ZS5jaGFyQXQoaCk9PW0mJmg8ZS5sZW5ndGg7KWIrPWUuY2hhckF0KGgrKyk7aWYoInl5eXkiPT1ifHwieXkiPT1ifHwieSI9PWIpeyJ5eXl5Ij09YiYmKG49az00KTsieXkiPT1iJiYobj1rPTIpOyJ5Ij09YiYmKGs9MixuPTQpO2w9dGhpcy5nZXRJbnQoYSxjLGssbik7aWYobnVsbD09PWwpcmV0dXJuIG51bGw7Yys9bC5sZW5ndGg7Mj09bC5sZW5ndGgmJihsPTcwPGw\/MTkwMCsobC0wKToyRTMrCihsLTApKX1lbHNlIGlmKCJNTU0iPT1ifHwiTk5OIj09Yil7Zz0wO209Ik1NTSI9PWI\/JC5uZWJMYW5nLm1vbnRoTmFtZXMuY29uY2F0KCQubmViTGFuZy5tb250aE5hbWVzU2hvcnQpOiQubmViTGFuZy5tb250aE5hbWVzU2hvcnQ7Zm9yKGI9MDtiPG0ubGVuZ3RoO2IrKyl7dmFyIHA9bVtiXTtpZihhLnN1YnN0cmluZyhjLGMrcC5sZW5ndGgpLnRvTG93ZXJDYXNlKCk9PXAudG9Mb3dlckNhc2UoKSl7Zz1iJTEyKzE7Yys9cC5sZW5ndGg7YnJlYWt9fWlmKDE+Z3x8MTI8ZylyZXR1cm4gbnVsbH1lbHNlIGlmKCJFRSI9PWJ8fCJFIj09Yilmb3IobT0iRUUiPT1iPyQubmViTGFuZy5kYXlOYW1lczokLm5lYkxhbmcuZGF5TmFtZXNTaG9ydCxiPTA7YjxtLmxlbmd0aDtiKyspe2lmKHA9bVtiXSxhLnN1YnN0cmluZyhjLGMrcC5sZW5ndGgpLnRvTG93ZXJDYXNlKCk9PXAudG9Mb3dlckNhc2UoKSl7Yys9cC5sZW5ndGg7YnJlYWt9fWVsc2UgaWYoIk1NIj09Ynx8Ik0iPT1iKXtnPXRoaXMuZ2V0SW50KGEsCmMsYi5sZW5ndGgsMik7aWYobnVsbD09PWd8fDE+Z3x8MTI8ZylyZXR1cm4gbnVsbDtjKz1nLmxlbmd0aH1lbHNlIGlmKCJkZCI9PWJ8fCJkIj09Yil7ZD10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PWR8fDE+ZHx8MzE8ZClyZXR1cm4gbnVsbDtjKz1kLmxlbmd0aH1lbHNlIGlmKCJoaCI9PWJ8fCJoIj09Yil7Zj10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PWZ8fDE+Znx8MTI8ZilyZXR1cm4gbnVsbDtjKz1mLmxlbmd0aH1lbHNlIGlmKCJISCI9PWJ8fCJIIj09Yil7Zj10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PWZ8fDA+Znx8MjM8ZilyZXR1cm4gbnVsbDtjKz1mLmxlbmd0aH1lbHNlIGlmKCJLSyI9PWJ8fCJLIj09Yil7Zj10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PWZ8fDA+Znx8MTE8ZilyZXR1cm4gbnVsbDtjKz1mLmxlbmd0aDtmKyt9ZWxzZSBpZigia2siPT1ifHwiayI9PWIpe2Y9dGhpcy5nZXRJbnQoYSwKYyxiLmxlbmd0aCwyKTtpZihudWxsPT09Znx8MT5mfHwyNDxmKXJldHVybiBudWxsO2MrPWYubGVuZ3RoO2YtLX1lbHNlIGlmKCJtbSI9PWJ8fCJtIj09Yil7cj10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PXJ8fDA+cnx8NTk8cilyZXR1cm4gbnVsbDtjKz1yLmxlbmd0aH1lbHNlIGlmKCJzcyI9PWJ8fCJzIj09Yil7dD10aGlzLmdldEludChhLGMsYi5sZW5ndGgsMik7aWYobnVsbD09PXR8fDA+dHx8NTk8dClyZXR1cm4gbnVsbDtjKz10Lmxlbmd0aH1lbHNlIGlmKCJhIj09Yil7aWYoImFtIj09YS5zdWJzdHJpbmcoYyxjKzIpLnRvTG93ZXJDYXNlKCkpdj0iQU0iO2Vsc2UgaWYoInBtIj09YS5zdWJzdHJpbmcoYyxjKzIpLnRvTG93ZXJDYXNlKCkpdj0iUE0iO2Vsc2UgcmV0dXJuIG51bGw7Yys9Mn1lbHNle2lmKGEuc3Vic3RyaW5nKGMsYytiLmxlbmd0aCkhPWIpcmV0dXJuIG51bGw7Yys9Yi5sZW5ndGh9fWlmKGMhPWEubGVuZ3RoKXJldHVybiBudWxsO2lmKDI9PQpnKWlmKDA9PT1sJTQmJjAhPT1sJTEwMHx8MD09PWwlNDAwKXtpZigyOTxkKXJldHVybiBudWxsfWVsc2UgaWYoMjg8ZClyZXR1cm4gbnVsbDtpZigzMDxkJiYoND09Z3x8Nj09Z3x8OT09Z3x8MTE9PWcpKXJldHVybiBudWxsOzEyPmYmJiJQTSI9PXY\/Zj1mLTArMTI6MTE8ZiYmIkFNIj09diYmKGYtPTEyKTtyZXR1cm4gbmV3IERhdGUobCxnLTEsZCxmLHIsdCl9O0RhdGUuaXNWYWxpZD1mdW5jdGlvbihhLGUpe3JldHVybiBudWxsIT09bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEsZSl9O0RhdGUucHJvdG90eXBlLmRpZmY9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PT1hPyExOnRoaXMuZ2V0VGltZSgpPT1hLmdldFRpbWUoKT8wOnRoaXMuZ2V0VGltZSgpPmEuZ2V0VGltZSgpPy0xOjF9OwpEYXRlLnByb3RvdHlwZS5mb3JtYXQ9ZnVuY3Rpb24oYSl7YSs9IiI7dmFyIGU9IiIsYz0wLGg9dGhpcy5nZXRGdWxsWWVhcigpKyIiLGs9dGhpcy5nZXRNb250aCgpKzEsbj10aGlzLmdldERhdGUoKSxtPXRoaXMuZ2V0RGF5KCksYj10aGlzLmdldEhvdXJzKCksbD10aGlzLmdldE1pbnV0ZXMoKSxnPXRoaXMuZ2V0U2Vjb25kcygpLGQ9e307ND5oLmxlbmd0aCYmKGg9IiIrKCtoKzE5MDApKTtkLnk9IiIraDtkLnl5eXk9aDtkLnl5PWguc3Vic3RyaW5nKDIsNCk7ZC5NPWs7ZC5NTT1EYXRlLkxaKGspO2QuTU1NPSQubmViTGFuZy5tb250aE5hbWVzW2stMV07ZC5OTk49JC5uZWJMYW5nLm1vbnRoTmFtZXNTaG9ydFtrLTFdO2QuZD1uO2QuZGQ9RGF0ZS5MWihuKTtkLkU9JC5uZWJMYW5nLmRheU5hbWVzU2hvcnRbbV07ZC5FRT0kLm5lYkxhbmcuZGF5TmFtZXNbbV07ZC5IPWI7ZC5ISD1EYXRlLkxaKGIpO2QuaD0wPT09Yj8xMjoxMjxiP2ItMTI6YjtkLmhoPURhdGUuTFooZC5oKTtkLks9CmQuaC0xO2Quaz1kLkgrMTtkLktLPURhdGUuTFooZC5LKTtkLmtrPURhdGUuTFooZC5rKTtkLmE9MTE8Yj8iUE0iOiJBTSI7ZC5tPWw7ZC5tbT1EYXRlLkxaKGwpO2Qucz1nO2ZvcihkLnNzPURhdGUuTFooZyk7YzxhLmxlbmd0aDspe2g9YS5jaGFyQXQoYyk7Zm9yKGs9IiI7YS5jaGFyQXQoYyk9PWgmJmM8YS5sZW5ndGg7KWsrPWEuY2hhckF0KGMrKyk7ZT0idW5kZWZpbmVkIiE9dHlwZW9mIGRba10\/ZStkW2tdOmUra31yZXR1cm4gZX07CkRhdGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihhLGUpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGF8fG51bGw9PT1hfHwidW5kZWZpbmVkIj09PXR5cGVvZiBlfHxudWxsPT09ZSlyZXR1cm4gdGhpcztlPStlO2lmKCJ5Ij09YSl0aGlzLnNldEZ1bGxZZWFyKHRoaXMuZ2V0RnVsbFllYXIoKStlKTtlbHNlIGlmKCJNIj09YSl0aGlzLnNldE1vbnRoKHRoaXMuZ2V0TW9udGgoKStlKTtlbHNlIGlmKCJkIj09YSl0aGlzLnNldERhdGUodGhpcy5nZXREYXRlKCkrZSk7ZWxzZSBpZigidyI9PWEpZm9yKGE9MDxlPzE6LTE7MCE9PWU7KXtmb3IodGhpcy5hZGQoImQiLGEpOzA9PT10aGlzLmdldERheSgpfHw2PT09dGhpcy5nZXREYXkoKTspdGhpcy5hZGQoImQiLGEpO2UtPWF9ZWxzZSJoIj09YT90aGlzLnNldEhvdXJzKHRoaXMuZ2V0SG91cnMoKStlKToibSI9PWE\/dGhpcy5zZXRNaW51dGVzKHRoaXMuZ2V0TWludXRlcygpK2UpOiJzIj09YSYmdGhpcy5zZXRTZWNvbmRzKHRoaXMuZ2V0U2Vjb25kcygpKwplKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IERhdGUodGhpcy5nZXRUaW1lKCkpfTsKLyoqIC9tL2pzL25lYkNhbC9uZWJDYWwuanMgKiovCnZhciBfX19kMmNfbmViQ2FsanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNDoyMiI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbmViQ2FsanNfY19vbj0iMjAyNC0wNC0xNiAxMTozMDowNyI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZSl7ZS5uZWJDYWw9ZnVuY3Rpb24oaCxnKXt2YXIgbD17c2xpZGVEdXJhdGlvbjo1MDAsZmFkZUR1cmF0aW9uOjIwMCx0b2dnbGVEdXJhdGlvbjoyMDAscHJlZmlsbDohMSxkZWZhdWx0RGF0ZTp2b2lkIDAsbGlua1dpdGhJbnB1dDohMCxrZXlOYXZpZ2F0aW9uOiEwLHRoZW1lOiJkZWZhdWx0IixkZWZhdWx0VmlldzoibW9udGgiLHN0YXJ0TW9uZGF5OiExLGFsd2F5c1Nob3c6ITEsaW5qZWN0SW5zaWRlVGFyZ2V0OiExLGZvcm1hdDoieXl5eS1NTS1kZCIsYWxpZ25YOiJtaWRkbGUiLGFsaWduWToiYm90dG9tIixvZmZzZXRYOjIwLG9mZnNldFk6MCxwb3J0cmFpdDohMCxwaWNrYWJsZTohMCx0b2dnbGVyOnZvaWQgMCxkaXNhbGxvd1VzZXJJbnB1dDohMSxtaW5EYXRlOnZvaWQgMCxtYXhEYXRlOnZvaWQgMCxleGNsdWRlZFdlZWtkYXlzOnZvaWQgMCxleGNsdWRlZERhdGVzOnZvaWQgMCxjcmVhdGVIaWRkZW5JbnB1dDohMSxoaWRkZW5JbnB1dE5hbWU6ImRhdGUiLGhpZGRlbklucHV0Rm9ybWF0OiIldCIsCm9uU2VsZWN0OiExLG9uVmlld0NoYW5nZTohMX0sYT10aGlzO2Eub3B0aW9ucz17fTthLnRhcmdldD1lKGgpO2EuaW5pdD1mdW5jdGlvbigpe2Eub3B0aW9ucz1lLmV4dGVuZCh7fSxsLGcpO2EudG9kYXk9bmViRGF0ZUZuLmNsZWFyVGltZShuZXcgRGF0ZSk7YS50cmFuc2l0aW9uaW5nPSExO3ZvaWQgMCE9PWEub3B0aW9ucy5kZWZhdWx0RGF0ZT9hLnNlbGVjdGVkRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLm9wdGlvbnMuZGVmYXVsdERhdGUpKTphLm9wdGlvbnMubGlua1dpdGhJbnB1dCYmdm9pZCAwIT09YS50YXJnZXQudmFsKCkmJjAhPT1hLnRhcmdldC52YWwoKSYmKGEuc2VsZWN0ZWREYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEudGFyZ2V0LnZhbCgpKSkpO2lmKHZvaWQgMD09PWEuc2VsZWN0ZWREYXRlfHxudWxsPT09YS5zZWxlY3RlZERhdGUpYS5zZWxlY3RlZERhdGU9YS50b2RheS5jbG9uZSgpOwphLmVsZW1lbnQ9ZSgnPGRpdiBjbGFzcz0ibmViQ2FsICcrYS5vcHRpb25zLnRoZW1lKyciIHN0eWxlPSJkaXNwbGF5OiAnKyhhLm9wdGlvbnMuYWx3YXlzU2hvdz8iYmxvY2siOiJub25lIikrJyI+PGRpdiBjbGFzcz0iY2FsLXdyYXBwZXIiPjxkaXYgY2xhc3M9ImNhbC1oZWFkZXIiPjxkaXYgY2xhc3M9ImNhbC1hcnJvdy1sZWZ0Ij48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtYXJyb3ctcmlnaHQiPjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1sYWJlbCBjYWwtY2xpY2thYmxlIj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtYm9keSI+PGRpdiBjbGFzcz0iY2FsLWlubmVyIj48ZGl2IGNsYXNzPSJjYWwtY29udGFpbmVyIGEiPjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1jb250YWluZXIgYiI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWZvb3RlciI+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7YS5vcHRpb25zLmluamVjdEluc2lkZVRhcmdldD8oYS5lbGVtZW50LmFkZENsYXNzKCJpbmxpbmUiKSwKYS5lbGVtZW50LmFwcGVuZFRvKGEudGFyZ2V0KSk6KGEuZWxlbWVudC5hcHBlbmRUbyhlKCJib2R5IikpLGEucG9zaXRpb24oKSxlKHdpbmRvdykub24oInJlc2l6ZSIsYS5wb3NpdGlvbikpO2EuY3VycmVudENvbnRhaW5lcj1hLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYSIpLmNzcygiei1pbmRleCIsOTk5KTthLnRlbXBDb250YWluZXI9YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmIiKS5jc3MoInotaW5kZXgiLDk5OCk7YS5oZWFkZXI9YS5lbGVtZW50LmZpbmQoIi5jYWwtaGVhZGVyIik7YS5sYWJlbD1hLmhlYWRlci5maW5kKCIuY2FsLWxhYmVsIik7YS5hcnJvd0xlZnQ9YS5oZWFkZXIuZmluZCgiLmNhbC1hcnJvdy1sZWZ0Iik7YS5hcnJvd1JpZ2h0PWEuaGVhZGVyLmZpbmQoIi5jYWwtYXJyb3ctcmlnaHQiKTthLmxhYmVsLm9uKCJjbGljayIsYS5sZXZlbFVwKTthLmFycm93TGVmdC5vbigiY2xpY2siLGEuc2xpZGVMZWZ0KTthLmFycm93UmlnaHQub24oImNsaWNrIiwKYS5zbGlkZVJpZ2h0KTt2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmKGEub3B0aW9ucy5taW5EYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEub3B0aW9ucy5taW5EYXRlKSkpO3ZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiYoYS5vcHRpb25zLm1heERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS5vcHRpb25zLm1heERhdGUpKSk7aWYodm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMpe3ZhciBiPVtdO2Eub3B0aW9ucy5leGNsdWRlZERhdGVzLmVhY2goZnVuY3Rpb24oYyl7Yi5pbmNsdWRlKGEuZm9ybWF0KG5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGMpKSwiJXQiKSl9KTthLm9wdGlvbnMuZXhjbHVkZWREYXRlcz1ifWEub3B0aW9ucy5jcmVhdGVIaWRkZW5JbnB1dCYmKGEuaGlkZGVuSW5wdXQ9KG5ldyBFbGVtZW50KCJpbnB1dCIse3R5cGU6ImhpZGRlbiIsCm5hbWU6YS5vcHRpb25zLmhpZGRlbklucHV0TmFtZX0pKS5hcHBlbmRUbyhhLnRhcmdldCkpOyFhLm9wdGlvbnMuZGlzYWxsb3dVc2VySW5wdXQmJmEub3B0aW9ucy5saW5rV2l0aElucHV0JiYiaW5wdXQiPT1hLnRhcmdldC5hdHRyKCJ0YWciKSYmYS50YXJnZXQuYWRkRXZlbnQoImtleXVwIixmdW5jdGlvbigpe2Euc2V0RGF0ZShhLnRhcmdldC5hdHRyKCJ2YWx1ZSIpLCExKX0pO3ZvaWQgMCE9PWEub3B0aW9ucy50b2dnbGVyJiYoYS5vcHRpb25zLnRvZ2dsZXI9ZShhLm9wdGlvbnMudG9nZ2xlcikpOyh2b2lkIDAhPT1hLm9wdGlvbnMudG9nZ2xlcj9hLm9wdGlvbnMudG9nZ2xlcjphLnRhcmdldCkub24oImZvY3VzIixhLnNob3cpLm9uKCJjbGljayIsYS5zaG93KTtpZighYS5vcHRpb25zLmFsd2F5c1Nob3cpZShkb2N1bWVudCkub24oIm1vdXNlZG93biIsYS5vdXRzaWRlQ2xpY2spOyJJTlBVVCI9PWEudGFyZ2V0LnByb3AoInRhZ05hbWUiKSYmKGEudGFyZ2V0LnRyaWdnZXIoImtleWRvd24iLAphLm9uS2V5RG93biksYS50YXJnZXQudHJpZ2dlcigia2V5dXAiLGEub25LZXlVcCksYS5vcHRpb25zLmRpc2FsbG93VXNlcklucHV0JiZhLnRhcmdldC5hZGRFdmVudCgiY29udGV4dG1lbnUiLCRsYW1iZGEoITEpKSk7YS5zZWxlY3RlZERhdGU9YS5jb3JyZWN0RGF0ZShhLnNlbGVjdGVkRGF0ZSk7YS5vcHRpb25zLnByZWZpbGwmJmEucGljaygpO2Eudmlld0RhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShhLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLnNldERheSgxKSk7YS52aWV3PWEub3B0aW9ucy5kZWZhdWx0VmlldzthLnJlbmRlcigpfTthLnJlbmRlcj1mdW5jdGlvbigpe2EuY3VycmVudENvbnRhaW5lci5lbXB0eSgpO3N3aXRjaChhLnZpZXcpe2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlclllYXIoKTticmVhaztkZWZhdWx0OmEucmVuZGVyTW9udGgoKX1yZXR1cm4gYX07YS5yZW5kZXJNb250aD1mdW5jdGlvbigpe2Eudmlldz0KIm1vbnRoIjthLmN1cnJlbnRDb250YWluZXIuZW1wdHkoKS5hZGRDbGFzcygiY2FsLW1vbnRoIik7YS5vcHRpb25zLnBpY2thYmxlJiZhLmN1cnJlbnRDb250YWluZXIuYWRkQ2xhc3MoImNhbC1waWNrYWJsZSIpO3ZhciBiPWUubmViTGFuZyxjPWEudmlld0RhdGUuZ2V0RGF5KCktKGEub3B0aW9ucy5zdGFydE1vbmRheT8xOjApOy0xPT1jJiYoYz02KTthLmxhYmVsLmh0bWwoYi5tb250aE5hbWVzW2Eudmlld0RhdGUuZ2V0TW9udGgoKV0rIiAiK2Eudmlld0RhdGUuZm9ybWF0KCJ5eXl5IikpO2Zvcih2YXIgZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSxmPWEub3B0aW9ucy5zdGFydE1vbmRheT8xOjA7ZjwoYS5vcHRpb25zLnN0YXJ0TW9uZGF5Pzg6Nyk7ZisrKXt2YXIgaz1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoYi5kYXlOYW1lc1Nob3J0W2Eub3B0aW9ucy5zdGFydE1vbmRheSYmNz09Zj8wOmZdKS5hcHBlbmRUbyhkKTsKay5odG1sKGsuaHRtbCgpKX1kPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpO2I9YS52aWV3RGF0ZS5jbG9uZSgpLmFkZCgiTSIsLTEpLmdldExhc3REYXlPZk1vbnRoQ2FsKCk7Zm9yKGY9MDtmPGM7ZisrKWEuaW5qZWN0RGF5KGQsYS52aWV3RGF0ZS5jbG9uZSgpLmFkZCgiTSIsLTEpLnNldERheShiLShjLWYpKzEpLCEwKTtmb3IoZj0xO2Y8PWEudmlld0RhdGUuZ2V0TGFzdERheU9mTW9udGhDYWwoKTtmKyspYS5pbmplY3REYXkoZCxhLnZpZXdEYXRlLmNsb25lKCkuc2V0RGF5KGYpKSw3PT1kLmNoaWxkcmVuKCkubGVuZ3RoJiYoZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSk7Yj04LWQuY2hpbGRyZW4oKS5sZW5ndGg7Yz1hLnZpZXdEYXRlLmNsb25lKCkuYWRkKCJNIiwxKS5zZXREYXkoMSk7Zm9yKGY9MTtmPGI7ZisrKWEuaW5qZWN0RGF5KGQsCmMuY2xvbmUoKS5zZXREYXkoZiksITApO2ZvcihiPWEuY3VycmVudENvbnRhaW5lci5maW5kKCIuY2FsLXJvdyIpLmxlbmd0aDs3PmI7YisrKWZvcihkPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpLGs9MDs3Pms7aysrKWEuaW5qZWN0RGF5KGQsYy5jbG9uZSgpLnNldERheShmKSwhMCksZisrO2EucmVuZGVyQWZ0ZXIoKX07YS5pbmplY3REYXk9ZnVuY3Rpb24oYixjLGQpe2I9ZSgiPGRpdj48L2Rpdj4iKS5odG1sKGMuZ2V0RGF0ZSgpKS5hcHBlbmRUbyhiKTtiLmRhdGEoImRhdGUiLGMpO2QmJmIuYWRkQ2xhc3MoImNhbC1vdXRzaWRlIik7aWYodm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJmEub3B0aW9ucy5taW5EYXRlPmN8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiZhLm9wdGlvbnMubWF4RGF0ZTxjfHx2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWRXZWVrZGF5cyYmYS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMuY29udGFpbnMoYy5mb3JtYXQoIkUiKS50b0ludCgpKXx8CnZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZERhdGVzJiZhLm9wdGlvbnMuZXhjbHVkZWREYXRlcy5jb250YWlucyhhLmZvcm1hdChjLCIldCIpKSliLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGlmKGEub3B0aW9ucy5waWNrYWJsZSliLm9uKCJjbGljayIsYS5waWNrKTtjLmZvcm1hdCgiZCIpPT1hLnRvZGF5LmZvcm1hdCgiZCIpJiZiLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkfHxjLmZvcm1hdCgiZCIpIT1hLnNlbGVjdGVkRGF0ZS5mb3JtYXQoImQiKXx8Yi5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIil9O2EucmVuZGVyWWVhcj1mdW5jdGlvbigpe2Eudmlldz0ieWVhciI7YS5jdXJyZW50Q29udGFpbmVyLmFkZENsYXNzKCJjYWwteWVhci1kZWNhZGUgIisoYS5vcHRpb25zLnBvcnRyYWl0PyJjYWwtcG9ydHJhaXQiOiJjYWwtbGFuZHNjYXBlIikpO3ZhciBiPWUubmViTGFuZy5tb250aE5hbWVzU2hvcnQ7YS5sYWJlbC5odG1sKGEudmlld0RhdGUuZm9ybWF0KCJ5eXl5IikpOwpmb3IodmFyIGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lciksZD0xOzEzPmQ7ZCsrKXt2YXIgZj1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoYltkLTFdKS5hcHBlbmRUbyhjKSxrPWEudmlld0RhdGUuY2xvbmUoKS5zZXRNb24oZC0xKTtmLmRhdGEoImRhdGUiLGspO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiZhLm9wdGlvbnMubWluRGF0ZS5jbG9uZSgpLnNldERheSgxKT5rfHx2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmYS5vcHRpb25zLm1heERhdGUuY2xvbmUoKS5zZXREYXkoMSk8aylmLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGYub24oImNsaWNrIixhLmxldmVsRG93bik7ZC0xPT1hLnRvZGF5LmdldE1vbnRoKCkmJmEudmlld0RhdGUuZ2V0RnVsbFllYXIoKT09YS50b2RheS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkLTE9PWEuc2VsZWN0ZWREYXRlLmdldE1vbnRoKCkmJgphLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCk9PWEuc2VsZWN0ZWREYXRlLmdldEZ1bGxZZWFyKCkmJmYuYWRkQ2xhc3MoImNhbC1zZWxlY3RlZCIpO2QlKGEub3B0aW9ucy5wb3J0cmFpdD8zOjQpfHwxMj09ZHx8KGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lcikpfWEucmVuZGVyQWZ0ZXIoKX07YS5yZW5kZXJEZWNhZGU9ZnVuY3Rpb24oKXthLmxhYmVsLnJlbW92ZUNsYXNzKCJjYWwtY2xpY2thYmxlIik7YS52aWV3PSJkZWNhZGUiO2EuY3VycmVudENvbnRhaW5lci5hZGRDbGFzcygiY2FsLXllYXItZGVjYWRlICIrKGEub3B0aW9ucy5wb3J0cmFpdD8iY2FsLXBvcnRyYWl0IjoiY2FsLWxhbmRzY2FwZSIpKTt2YXIgYjtmb3IoYj1wYXJzZUludChhLnZpZXdEYXRlLmZvcm1hdCgieXl5eSIpKTtiJTEyOyliLS07YS5sYWJlbC5odG1sKGIrIiAmIzE1MDsgIisoYisxMSkpO2Zvcih2YXIgYz1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSwKZD1iO2Q8YisxMjtkKyspe3ZhciBmPWUoIjxkaXY+PC9kaXY+IikuaHRtbChkKS5hcHBlbmRUbyhjKSxrPWEudmlld0RhdGUuY2xvbmUoKS5zZXRZZWFyKGQpO2YuZGF0YSgiZGF0ZSIsayk7aWYodm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJmEub3B0aW9ucy5taW5EYXRlLmdldEZ1bGxZZWFyKCk+ZHx8dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJmEub3B0aW9ucy5tYXhEYXRlLmdldEZ1bGxZZWFyKCk8ZClmLmFkZENsYXNzKCJjYWwtbm9uLXNlbGVjdGFibGUiKTtlbHNlIGYub24oImNsaWNrIixhLmxldmVsRG93bik7ZD09YS50b2RheS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtdG9kYXkiKTtkPT1hLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtc2VsZWN0ZWQiKTsoZCsxKSUoYS5vcHRpb25zLnBvcnRyYWl0PzM6NCl8fGQ9PWIrMTF8fChjPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpKX1hLnJlbmRlckFmdGVyKCl9OwphLnJlbmRlckFmdGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPWEuY3VycmVudENvbnRhaW5lci5maW5kKCIuY2FsLXJvdyIpLGM9MDtjPGIubGVuZ3RoO2MrKyllKGJbY10pLmFkZENsYXNzKCJjYWwtcm93ICIrImFiY2RlZmciLnNwbGl0KCIiKVtjXSsiICIrKGMlMj8iY2FsLWV2ZW4iOiJjYWwtb2RkIikpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9wdGlvbnMub25WaWV3Q2hhbmdlKWEub3B0aW9ucy5vblZpZXdDaGFuZ2UoYS52aWV3LGEuc2VsZWN0ZWREYXRlLGEudmlld0RhdGUpfTthLnNsaWRlTGVmdD1mdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZyYmKGEudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLnN0b3AoKSxhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50cmFuc2l0aW9uaW5nPSExKTthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS52aWV3RGF0ZS5hZGQoIk0iLC0xKTticmVhaztjYXNlICJ5ZWFyIjphLnZpZXdEYXRlLmFkZCgieSIsCi0xKTticmVhaztjYXNlICJkZWNhZGUiOmEudmlld0RhdGUuc2V0RnVsbFllYXIoYS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpLTEyKX1hLnJlbmRlcigpO2EudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuY3NzKHtsZWZ0Oi1hLmN1cnJlbnRDb250YWluZXIud2lkdGgoKX0pLmFuaW1hdGUoe2xlZnQ6MH0sYS5vcHRpb25zLnNsaWRlRHVyYXRpb24pO2EudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLmFuaW1hdGUoe2xlZnQ6YS50ZW1wQ29udGFpbmVyLndpZHRoKCl9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3Moe2xlZnQ6MH0pO2EudHJhbnNpdGlvbmluZz0hMX0pfTthLnNsaWRlUmlnaHQ9ZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmcmJihhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuc3RvcCgpLGEudHJhbnNpdGlvbmluZz0hMSk7YS5zd2l0Y2hDb250YWluZXJzKCk7CnN3aXRjaChhLnZpZXcpe2Nhc2UgIm1vbnRoIjphLnZpZXdEYXRlLmFkZCgiTSIsMSk7YnJlYWs7Y2FzZSAieWVhciI6YS52aWV3RGF0ZS5hZGQoInkiLDEpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS52aWV3RGF0ZS5zZXRGdWxsWWVhcihhLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCkrMTIpfWEucmVuZGVyKCk7YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5jc3Moe2xlZnQ6YS5jdXJyZW50Q29udGFpbmVyLndpZHRoKCl9KS5hbmltYXRlKHtsZWZ0OjB9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uKTthLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5hbmltYXRlKHtsZWZ0Oi1hLnRlbXBDb250YWluZXIud2lkdGgoKX0sYS5vcHRpb25zLnNsaWRlRHVyYXRpb24sZnVuY3Rpb24oKXtlKHRoaXMpLmNzcyh7bGVmdDowfSk7YS50cmFuc2l0aW9uaW5nPSExfSl9O2EubGV2ZWxEb3duPWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcpe2Euc3dpdGNoQ29udGFpbmVycygpOwphLnZpZXdEYXRlPWUoYi50YXJnZXQpLmRhdGEoImRhdGUiKTtzd2l0Y2goYS52aWV3KXtjYXNlICJ5ZWFyIjphLnJlbmRlck1vbnRoKCk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlclllYXIoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLmxldmVsVXA9ZnVuY3Rpb24oKXtpZigiZGVjYWRlIiE9YS52aWV3JiYhYS50cmFuc2l0aW9uaW5nKXthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPQohMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS5jaGFuZ2VWaWV3PWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcmJmIhPWEudmlldyl7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGIpe2Nhc2UgIm1vbnRoIjphLnJlbmRlck1vbnRoKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlckRlY2FkZSgpfWEudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuZmFkZUluKGEub3B0aW9ucy5mYWRlRHVyYXRpb24sZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmc9ITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2EudXBkYXRlTWluRGF0ZT1mdW5jdGlvbihiKXtpZighYS50cmFuc2l0aW9uaW5nJiYoYj1uZWJEYXRlRm4ucGFyc2VTdHJpbmcoYiksbnVsbCE9PWIpKXthLm9wdGlvbnMubWluRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKGIpOwphLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLnVwZGF0ZU1heERhdGU9ZnVuY3Rpb24oYil7aWYoIWEudHJhbnNpdGlvbmluZyYmKGI9bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGIpLG51bGwhPT1iKSl7YS5vcHRpb25zLm1heERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShiKTthLnN3aXRjaENvbnRhaW5lcnMoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpOwpicmVhaztjYXNlICJkZWNhZGUiOmEucmVuZGVyRGVjYWRlKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0hMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS5zd2l0Y2hDb250YWluZXJzPWZ1bmN0aW9uKCl7YS5jdXJyZW50Q29udGFpbmVyPWEuY3VycmVudENvbnRhaW5lci5oYXNDbGFzcygiYSIpP2EuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5iIik6YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmEiKTthLnRlbXBDb250YWluZXI9YS50ZW1wQ29udGFpbmVyLmhhc0NsYXNzKCJhIik\/YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmIiKTphLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYSIpO2EuY3VycmVudENvbnRhaW5lci5lbXB0eSgpLnJlbW92ZUNsYXNzKCJjYWwtbW9udGggY2FsLXllYXItZGVjYWRlICIrCihhLm9wdGlvbnMucG9ydHJhaXQ\/ImNhbC1wb3J0cmFpdCI6ImNhbC1sYW5kc2NhcGUiKSkuY3NzKHtvcGFjaXR5OjEsZGlzcGxheToiYmxvY2siLCJ6LWluZGV4Ijo5OTl9KTthLnRlbXBDb250YWluZXIuY3NzKCJ6LWluZGV4Iiw5OTgpO2EubGFiZWwuYWRkQ2xhc3MoImNhbC1jbGlja2FibGUiKTthLmFycm93TGVmdC5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIik7YS5hcnJvd1JpZ2h0LmNzcygidmlzaWJpbGl0eSIsInZpc2libGUiKX07YS5wb3NpdGlvbj1mdW5jdGlvbigpe3ZhciBiPWEudGFyZ2V0LmdldENvb3JkaW5hdGVzKCk7c3dpdGNoKGEub3B0aW9ucy5hbGlnblgpe2Nhc2UgImxlZnQiOnZhciBjPWIubGVmdDticmVhaztjYXNlICJtaWRkbGUiOmM9Yi5sZWZ0K2Iud2lkdGgvMi1hLmVsZW1lbnQud2lkdGgoKS8yO2JyZWFrO2RlZmF1bHQ6Y2FzZSAicmlnaHQiOmM9Yi5sZWZ0K2Iud2lkdGh9c3dpdGNoKGEub3B0aW9ucy5hbGlnblkpe2Nhc2UgImJvdHRvbSI6Yj1iLnRvcCsKYi5oZWlnaHQ7YnJlYWs7Y2FzZSAidG9wIjpiPWIudG9wLWEuZWxlbWVudC5nZXRIZWlnaHQoKTticmVhaztkZWZhdWx0OmNhc2UgImNlaWxpbmciOmI9Yi50b3B9Yys9cGFyc2VJbnQoYS5vcHRpb25zLm9mZnNldFgpO2IrPXBhcnNlSW50KGEub3B0aW9ucy5vZmZzZXRZKTthLmVsZW1lbnQuY3NzKHt0b3A6YixsZWZ0OmN9KX07YS5zaG93PWZ1bmN0aW9uKCl7YS52aXNpYmxlfHxhLm9wdGlvbnMuYWx3YXlzU2hvd3x8KGEudmlzaWJsZT0hMCxhLmVsZW1lbnQuZmFkZUluKGEub3B0aW9ucy50b2dnbGVEdXJhdGlvbiksYS5wb3NpdGlvbigpKX07YS5oaWRlPWZ1bmN0aW9uKCl7YS52aXNpYmxlJiYhYS5vcHRpb25zLmFsd2F5c1Nob3cmJihhLnZpc2libGU9ITEsYS5lbGVtZW50LmZhZGVPdXQoYS5vcHRpb25zLnRvZ2dsZUR1cmF0aW9uKSl9O2EudG9nZ2xlPWZ1bmN0aW9uKCl7YS52aXNpYmxlP2EuaGlkZSgpOmEuc2hvdygpfTthLm91dHNpZGVDbGljaz1mdW5jdGlvbihiKXtpZihhLnZpc2libGUpe3ZhciBjPQphLmVsZW1lbnQuZ2V0Q29vcmRpbmF0ZXMoKSxkPWEudGFyZ2V0LmdldENvb3JkaW5hdGVzKCk7KGIucGFnZVg8Yy5sZWZ0fHxiLnBhZ2VYPmMubGVmdCtjLndpZHRofHxiLnBhZ2VZPGMudG9wfHxiLnBhZ2VZPmMudG9wK2MuaGVpZ2h0KSYmKGIucGFnZVg8ZC5sZWZ0fHxiLnBhZ2VYPmQubGVmdCtkLndpZHRofHxiLnBhZ2VZPGQudG9wfHxiLnBhZ2VZPmQudG9wK2QuaGVpZ2h0KSYmYS5oaWRlKCl9fTthLnBpY2s9ZnVuY3Rpb24oYil7dm9pZCAwIT09YiYmKGEuc2VsZWN0ZWREYXRlPWUoYi50YXJnZXQpLmRhdGEoImRhdGUiKSxhLmVsZW1lbnQuZmluZCgiLmNhbC1zZWxlY3RlZCIpLnJlbW92ZUNsYXNzKCJjYWwtc2VsZWN0ZWQiKSxlKGIudGFyZ2V0KS5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIiksZShiLnRhcmdldCkuaGFzQ2xhc3MoImNhbC1vdXRzaWRlIik\/YS5vcHRpb25zLmFsd2F5c1Nob3c\/MDxhLnNlbGVjdGVkRGF0ZS5kaWZmKGEudmlld0RhdGUpP2Euc2xpZGVMZWZ0KCk6CmEuc2xpZGVSaWdodCgpOihhLnZpZXdEYXRlPWEuc2VsZWN0ZWREYXRlLmNsb25lKCkuc2V0RGF5KDEpLHNldFRpbWVvdXQoYS5yZW5kZXIsMzAwKSk6c2V0VGltZW91dChhLmhpZGUsMTUwKSk7Yj1hLmZvcm1hdChhLnNlbGVjdGVkRGF0ZSk7Yj1lKCI8dGV4dGFyZWEgLz4iKS5odG1sKGIpLnRleHQoKTtpZighYS5vcHRpb25zLmluamVjdEluc2lkZVRhcmdldClzd2l0Y2goYS50YXJnZXQucHJvcCgidGFnTmFtZSIpLnRvTG93ZXJDYXNlKCkpe2Nhc2UgImlucHV0IjphLnRhcmdldC52YWwoYik7YnJlYWs7ZGVmYXVsdDphLnRhcmdldC5odG1sKGIpfXZvaWQgMCE9PWEuaGlkZGVuSW5wdXQmJmEuaGlkZGVuSW5wdXQuc2V0KCJ2YWx1ZSIsYS5mb3JtYXQoYS5zZWxlY3RlZERhdGUsYS5vcHRpb25zLmhpZGRlbklucHV0Rm9ybWF0KSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEub3B0aW9ucy5vblNlbGVjdClhLm9wdGlvbnMub25TZWxlY3QoYS5zZWxlY3RlZERhdGUpO3JldHVybiBhfTsKYS5mb3JtYXQ9ZnVuY3Rpb24oYixjKXt2b2lkIDA9PT1jJiYoYz10aGlzLm9wdGlvbnMuZm9ybWF0KTtpZih2b2lkIDAhPT1iKXJldHVybiBjPWMucmVwbGFjZSgvJShbYS16JV0pL2dpLGZ1bmN0aW9uKGQsZil7c3dpdGNoKGYpe2Nhc2UgIkQiOnJldHVybiBiLmdldCgiZGF0ZSIpO2Nhc2UgIm4iOnJldHVybiBiLmdldCgibW8iKSsxO2Nhc2UgInQiOnJldHVybiBwYXJzZUludChiLmdldFRpbWUoKS8xRTMpfXJldHVybiIlIitmfSksYi5mb3JtYXQoYyl9O2Eub25LZXlEb3duPWZ1bmN0aW9uKGIpe2lmKGEub3B0aW9ucy5rZXlOYXZpZ2F0aW9uKXt2YXIgYz1hLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLGQ9ITAsZj0hMTtzd2l0Y2goYi53aGljaCl7Y2FzZSAzNzpjLmFkZCgiZCIsLTEpO2Y9ITA7ZD0hMTticmVhaztjYXNlIDM5OmMuYWRkKCJkIiwxKTtmPSEwO2JyZWFrO2Nhc2UgMzg6Yy5hZGQoIk0iLC0xKTtmPSEwO2Q9ITE7YnJlYWs7Y2FzZSA0MDpjLmFkZCgiTSIsMSk7Zj0hMDticmVhazsKY2FzZSA5OnNldFRpbWVvdXQoYS5oaWRlLDE1MCl9ZiYmKGM9YS5jb3JyZWN0RGF0ZShjLGQpLDAhPT1hLnNlbGVjdGVkRGF0ZS5kaWZmKGMpJiZhLnNldERhdGUoYykpfWlmKGEub3B0aW9ucy5kaXNhbGxvd1VzZXJJbnB1dClyZXR1cm4hMX07YS5vbktleVVwPWZ1bmN0aW9uKCl7L15cZHs0fS1cZHsyfS1cZHsyfSQvLnRlc3QoYS50YXJnZXQudmFsKCkpJiYoYS5zZXREYXRlKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLnRhcmdldC52YWwoKSkpLGEudGFyZ2V0LnJlbW92ZUNsYXNzKCJpbnZhbGlkSW5wdXQgdG9vbHRpcCIpLnJlbW92ZUF0dHIoInRpdGxlIikpOy9eXGR7Mn0tLy50ZXN0KGEudGFyZ2V0LnZhbCgpKXx8L15cZHs0fS0oMVszLTldfChbMi05XVswLTldKSkvLnRlc3QoYS50YXJnZXQudmFsKCkpP2EudGFyZ2V0LmFkZENsYXNzKCJpbnZhbGlkSW5wdXQiKS5hdHRyKCJ0aXRsZSIsZS5uZWJMYW5nLmludmFsaWREYXRlRm9ybWF0KS50b29sdGlwKHt0b29sdGlwQ2xhc3M6ImFsYnVtX3Rvb2x0aXAiLApwb3NpdGlvbjp7bXk6ImNlbnRlciB0b3ArMzAiLGF0OiIifSxzaG93OntlZmZlY3Q6ImZhZGVJbiIsZHVyYXRpb246NTAwfSxjbG9zZTpmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlKCl9fSk6YS50YXJnZXQucmVtb3ZlQ2xhc3MoImludmFsaWRJbnB1dCB0b29sdGlwIikucmVtb3ZlQXR0cigidGl0bGUiKX07YS5jb3JyZWN0RGF0ZT1mdW5jdGlvbihiLGMpe3ZvaWQgMD09PWMmJihjPSEwKTt2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmMDxiLmRpZmYoYS5vcHRpb25zLm1pbkRhdGUpP2I9YS5vcHRpb25zLm1pbkRhdGUuY2xvbmUoKTp2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmMD5iLmRpZmYoYS5vcHRpb25zLm1heERhdGUpJiYoYj1hLm9wdGlvbnMubWF4RGF0ZS5jbG9uZSgpKTtmb3IodmFyIGQ9MDt2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWRXZWVrZGF5cyYmYS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMuY29udGFpbnMoYi5mb3JtYXQoIkUiKS50b0ludCgpKXx8CnZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiYwPGIuZGlmZihhLm9wdGlvbnMubWluRGF0ZSl8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiYwPmIuZGlmZihhLm9wdGlvbnMubWF4RGF0ZSl8fHZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZERhdGVzJiZhLm9wdGlvbnMuZXhjbHVkZWREYXRlcy5jb250YWlucyhhLmZvcm1hdChiLCIldCIpKTspe2lmKDMxPT1kKWM9IWM7ZWxzZSBpZig2Mj09ZCl7Yj1hLm9wdGlvbnMubWluRGF0ZS5jbG9uZSgpO2JyZWFrfWM\/Yi5hZGQoImQiLDEpOmIuYWRkKCJkIiwtMSk7ZCsrfXJldHVybiBifTthLnNldERhdGU9ZnVuY3Rpb24oYixjKXt2b2lkIDA9PT1jJiYoYz0hMCk7Yj1uZWJEYXRlRm4uY2xlYXJUaW1lKCJkYXRlIj09dHlwZW9mIGI\/YjpuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYikpO251bGwhPT1iJiYoYS5zZWxlY3RlZERhdGU9YS5jb3JyZWN0RGF0ZShiKSxhLnZpZXdEYXRlPWEuc2VsZWN0ZWREYXRlLmNsb25lKCkuc2V0RGF5KDEpLAphLnJlbmRlcigpLGMmJmEucGljaygpKTtyZXR1cm4gYX07YS5nZXREYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIGEuc2VsZWN0ZWREYXRlfTthLmluaXQoKX07ZS5mbi5uZWJDYWw9ZnVuY3Rpb24oaCxnKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYodm9pZCAwPT09ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBofHwib2JqZWN0Ij09dHlwZW9mIGgpe3ZhciBsPW5ldyBlLm5lYkNhbCh0aGlzLGgpO2UodGhpcykuZGF0YSgibmViQ2FsIixsKX19ZWxzZSBzd2l0Y2goaCl7Y2FzZSAiY2hhbmdlVmlldyI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikuY2hhbmdlVmlldyhnKTticmVhaztjYXNlICJtaW5EYXRlIjppZigidW5kZWZpbmVkIj09dHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS51cGRhdGVNaW5EYXRlKGcpO2JyZWFrO2Nhc2UgIm1heERhdGUiOmlmKCJ1bmRlZmluZWQiPT0KdHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS51cGRhdGVNYXhEYXRlKGcpO2JyZWFrO2Nhc2UgInNldERhdGUiOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLnNldERhdGUoZyk7YnJlYWs7Y2FzZSAicmVwb3NpdGlvbiI6ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS5wb3NpdGlvbigpfX0pfTtlLmZuLmdldENvb3JkaW5hdGVzPWZ1bmN0aW9uKGgpe2g9ZSh0aGlzKS5vZmZzZXQoKTt2YXIgZz1lKHRoaXMpLndpZHRoKCksbD1lKHRoaXMpLmhlaWdodCgpLGE9ZSh3aW5kb3cpLndpZHRoKCktaC5sZWZ0LWcsYj1lKHdpbmRvdykuaGVpZ2h0KCktaC50b3AtbDtyZXR1cm57dG9wOmgudG9wLGxlZnQ6aC5sZWZ0LHdpZHRoOmcsaGVpZ2h0OmwscmlnaHQ6YSxib3R0b206Yn19fSkoalF1ZXJ5KTsKLyoqIC9tL2pzL3Z1ZS92dWUubWluLmpzICoqLwovKiENCiAqIFZ1ZS5qcyB2Mi42LjExDQogKiAoYykgMjAxNC0yMDE5IEV2YW4gWW91DQogKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIExpY2Vuc2UuDQogKi8NCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKHQpOihlPWV8fHNlbGYpLlZ1ZT10KCl9KHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGU9T2JqZWN0LmZyZWV6ZSh7fSk7ZnVuY3Rpb24gdChlKXtyZXR1cm4gbnVsbD09ZX1mdW5jdGlvbiBuKGUpe3JldHVybiBudWxsIT1lfWZ1bmN0aW9uIHIoZSl7cmV0dXJuITA9PT1lfWZ1bmN0aW9uIGkoZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwibnVtYmVyIj09dHlwZW9mIGV8fCJzeW1ib2wiPT10eXBlb2YgZXx8ImJvb2xlYW4iPT10eXBlb2YgZX1mdW5jdGlvbiBvKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfXZhciBhPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7ZnVuY3Rpb24gcyhlKXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PWEuY2FsbChlKX1mdW5jdGlvbiBjKGUpe3ZhciB0PXBhcnNlRmxvYXQoU3RyaW5nKGUpKTtyZXR1cm4gdD49MCYmTWF0aC5mbG9vcih0KT09PXQmJmlzRmluaXRlKGUpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIG4oZSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBlLnRoZW4mJiJmdW5jdGlvbiI9PXR5cGVvZiBlLmNhdGNofWZ1bmN0aW9uIGwoZSl7cmV0dXJuIG51bGw9PWU\/IiI6QXJyYXkuaXNBcnJheShlKXx8cyhlKSYmZS50b1N0cmluZz09PWE\/SlNPTi5zdHJpbmdpZnkoZSxudWxsLDIpOlN0cmluZyhlKX1mdW5jdGlvbiBmKGUpe3ZhciB0PXBhcnNlRmxvYXQoZSk7cmV0dXJuIGlzTmFOKHQpP2U6dH1mdW5jdGlvbiBwKGUsdCl7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUobnVsbCkscj1lLnNwbGl0KCIsIiksaT0wO2k8ci5sZW5ndGg7aSsrKW5bcltpXV09ITA7cmV0dXJuIHQ\/ZnVuY3Rpb24oZSl7cmV0dXJuIG5bZS50b0xvd2VyQ2FzZSgpXX06ZnVuY3Rpb24oZSl7cmV0dXJuIG5bZV19fXZhciBkPXAoInNsb3QsY29tcG9uZW50IiwhMCksdj1wKCJrZXkscmVmLHNsb3Qsc2xvdC1zY29wZSxpcyIpO2Z1bmN0aW9uIGgoZSx0KXtpZihlLmxlbmd0aCl7dmFyIG49ZS5pbmRleE9mKHQpO2lmKG4+LTEpcmV0dXJuIGUuc3BsaWNlKG4sMSl9fXZhciBtPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7ZnVuY3Rpb24geShlLHQpe3JldHVybiBtLmNhbGwoZSx0KX1mdW5jdGlvbiBnKGUpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKG4pe3JldHVybiB0W25dfHwodFtuXT1lKG4pKX19dmFyIF89Ly0oXHcpL2csYj1nKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UoXyxmdW5jdGlvbihlLHQpe3JldHVybiB0P3QudG9VcHBlckNhc2UoKToiIn0pfSksJD1nKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSl9KSx3PS9cQihbQS1aXSkvZyxDPWcoZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSh3LCItJDEiKS50b0xvd2VyQ2FzZSgpfSk7dmFyIHg9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQ\/ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5iaW5kKHQpfTpmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4obil7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gcj9yPjE\/ZS5hcHBseSh0LGFyZ3VtZW50cyk6ZS5jYWxsKHQsbik6ZS5jYWxsKHQpfXJldHVybiBuLl9sZW5ndGg9ZS5sZW5ndGgsbn07ZnVuY3Rpb24gayhlLHQpe3Q9dHx8MDtmb3IodmFyIG49ZS5sZW5ndGgtdCxyPW5ldyBBcnJheShuKTtuLS07KXJbbl09ZVtuK3RdO3JldHVybiByfWZ1bmN0aW9uIEEoZSx0KXtmb3IodmFyIG4gaW4gdCllW25dPXRbbl07cmV0dXJuIGV9ZnVuY3Rpb24gTyhlKXtmb3IodmFyIHQ9e30sbj0wO248ZS5sZW5ndGg7bisrKWVbbl0mJkEodCxlW25dKTtyZXR1cm4gdH1mdW5jdGlvbiBTKGUsdCxuKXt9dmFyIFQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiExfSxFPWZ1bmN0aW9uKGUpe3JldHVybiBlfTtmdW5jdGlvbiBOKGUsdCl7aWYoZT09PXQpcmV0dXJuITA7dmFyIG49byhlKSxyPW8odCk7aWYoIW58fCFyKXJldHVybiFuJiYhciYmU3RyaW5nKGUpPT09U3RyaW5nKHQpO3RyeXt2YXIgaT1BcnJheS5pc0FycmF5KGUpLGE9QXJyYXkuaXNBcnJheSh0KTtpZihpJiZhKXJldHVybiBlLmxlbmd0aD09PXQubGVuZ3RoJiZlLmV2ZXJ5KGZ1bmN0aW9uKGUsbil7cmV0dXJuIE4oZSx0W25dKX0pO2lmKGUgaW5zdGFuY2VvZiBEYXRlJiZ0IGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gZS5nZXRUaW1lKCk9PT10LmdldFRpbWUoKTtpZihpfHxhKXJldHVybiExO3ZhciBzPU9iamVjdC5rZXlzKGUpLGM9T2JqZWN0LmtleXModCk7cmV0dXJuIHMubGVuZ3RoPT09Yy5sZW5ndGgmJnMuZXZlcnkoZnVuY3Rpb24obil7cmV0dXJuIE4oZVtuXSx0W25dKX0pfWNhdGNoKGUpe3JldHVybiExfX1mdW5jdGlvbiBqKGUsdCl7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoTihlW25dLHQpKXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIEQoZSl7dmFyIHQ9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7dHx8KHQ9ITAsZS5hcHBseSh0aGlzLGFyZ3VtZW50cykpfX12YXIgTD0iZGF0YS1zZXJ2ZXItcmVuZGVyZWQiLE09WyJjb21wb25lbnQiLCJkaXJlY3RpdmUiLCJmaWx0ZXIiXSxJPVsiYmVmb3JlQ3JlYXRlIiwiY3JlYXRlZCIsImJlZm9yZU1vdW50IiwibW91bnRlZCIsImJlZm9yZVVwZGF0ZSIsInVwZGF0ZWQiLCJiZWZvcmVEZXN0cm95IiwiZGVzdHJveWVkIiwiYWN0aXZhdGVkIiwiZGVhY3RpdmF0ZWQiLCJlcnJvckNhcHR1cmVkIiwic2VydmVyUHJlZmV0Y2giXSxGPXtvcHRpb25NZXJnZVN0cmF0ZWdpZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxzaWxlbnQ6ITEscHJvZHVjdGlvblRpcDohMSxkZXZ0b29sczohMSxwZXJmb3JtYW5jZTohMSxlcnJvckhhbmRsZXI6bnVsbCx3YXJuSGFuZGxlcjpudWxsLGlnbm9yZWRFbGVtZW50czpbXSxrZXlDb2RlczpPYmplY3QuY3JlYXRlKG51bGwpLGlzUmVzZXJ2ZWRUYWc6VCxpc1Jlc2VydmVkQXR0cjpULGlzVW5rbm93bkVsZW1lbnQ6VCxnZXRUYWdOYW1lc3BhY2U6UyxwYXJzZVBsYXRmb3JtVGFnTmFtZTpFLG11c3RVc2VQcm9wOlQsYXN5bmM6ITAsX2xpZmVjeWNsZUhvb2tzOkl9LFA9L2EtekEtWlx1MDBCN1x1MDBDMC1cdTAwRDZcdTAwRDgtXHUwMEY2XHUwMEY4LVx1MDM3RFx1MDM3Ri1cdTFGRkZcdTIwMEMtXHUyMDBEXHUyMDNGLVx1MjA0MFx1MjA3MC1cdTIxOEZcdTJDMDAtXHUyRkVGXHUzMDAxLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkZELztmdW5jdGlvbiBSKGUsdCxuLHIpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse3ZhbHVlOm4sZW51bWVyYWJsZTohIXIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9dmFyIEg9bmV3IFJlZ0V4cCgiW14iK1Auc291cmNlKyIuJF9cXGRdIik7dmFyIEIsVT0iX19wcm90b19fImlue30sej0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyxWPSJ1bmRlZmluZWQiIT10eXBlb2YgV1hFbnZpcm9ubWVudCYmISFXWEVudmlyb25tZW50LnBsYXRmb3JtLEs9ViYmV1hFbnZpcm9ubWVudC5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpLEo9eiYmd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSxxPUomJi9tc2llfHRyaWRlbnQvLnRlc3QoSiksVz1KJiZKLmluZGV4T2YoIm1zaWUgOS4wIik+MCxaPUomJkouaW5kZXhPZigiZWRnZS8iKT4wLEc9KEomJkouaW5kZXhPZigiYW5kcm9pZCIpLEomJi9pcGhvbmV8aXBhZHxpcG9kfGlvcy8udGVzdChKKXx8ImlvcyI9PT1LKSxYPShKJiYvY2hyb21lXC9cZCsvLnRlc3QoSiksSiYmL3BoYW50b21qcy8udGVzdChKKSxKJiZKLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pKSxZPXt9LndhdGNoLFE9ITE7aWYoeil0cnl7dmFyIGVlPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlZSwicGFzc2l2ZSIse2dldDpmdW5jdGlvbigpe1E9ITB9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QtcGFzc2l2ZSIsbnVsbCxlZSl9Y2F0Y2goZSl7fXZhciB0ZT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT1CJiYoQj0heiYmIVYmJiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsJiYoZ2xvYmFsLnByb2Nlc3MmJiJzZXJ2ZXIiPT09Z2xvYmFsLnByb2Nlc3MuZW52LlZVRV9FTlYpKSxCfSxuZT16JiZ3aW5kb3cuX19WVUVfREVWVE9PTFNfR0xPQkFMX0hPT0tfXztmdW5jdGlvbiByZShlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmL25hdGl2ZSBjb2RlLy50ZXN0KGUudG9TdHJpbmcoKSl9dmFyIGllLG9lPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZyZShTeW1ib2wpJiYidW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJnJlKFJlZmxlY3Qub3duS2V5cyk7aWU9InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQmJnJlKFNldCk\/U2V0OmZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpe3RoaXMuc2V0PU9iamVjdC5jcmVhdGUobnVsbCl9cmV0dXJuIGUucHJvdG90eXBlLmhhcz1mdW5jdGlvbihlKXtyZXR1cm4hMD09PXRoaXMuc2V0W2VdfSxlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZSl7dGhpcy5zZXRbZV09ITB9LGUucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5zZXQ9T2JqZWN0LmNyZWF0ZShudWxsKX0sZX0oKTt2YXIgYWU9UyxzZT0wLGNlPWZ1bmN0aW9uKCl7dGhpcy5pZD1zZSsrLHRoaXMuc3Vicz1bXX07Y2UucHJvdG90eXBlLmFkZFN1Yj1mdW5jdGlvbihlKXt0aGlzLnN1YnMucHVzaChlKX0sY2UucHJvdG90eXBlLnJlbW92ZVN1Yj1mdW5jdGlvbihlKXtoKHRoaXMuc3VicyxlKX0sY2UucHJvdG90eXBlLmRlcGVuZD1mdW5jdGlvbigpe2NlLnRhcmdldCYmY2UudGFyZ2V0LmFkZERlcCh0aGlzKX0sY2UucHJvdG90eXBlLm5vdGlmeT1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLnN1YnMuc2xpY2UoKSx0PTAsbj1lLmxlbmd0aDt0PG47dCsrKWVbdF0udXBkYXRlKCl9LGNlLnRhcmdldD1udWxsO3ZhciB1ZT1bXTtmdW5jdGlvbiBsZShlKXt1ZS5wdXNoKGUpLGNlLnRhcmdldD1lfWZ1bmN0aW9uIGZlKCl7dWUucG9wKCksY2UudGFyZ2V0PXVlW3VlLmxlbmd0aC0xXX12YXIgcGU9ZnVuY3Rpb24oZSx0LG4scixpLG8sYSxzKXt0aGlzLnRhZz1lLHRoaXMuZGF0YT10LHRoaXMuY2hpbGRyZW49bix0aGlzLnRleHQ9cix0aGlzLmVsbT1pLHRoaXMubnM9dm9pZCAwLHRoaXMuY29udGV4dD1vLHRoaXMuZm5Db250ZXh0PXZvaWQgMCx0aGlzLmZuT3B0aW9ucz12b2lkIDAsdGhpcy5mblNjb3BlSWQ9dm9pZCAwLHRoaXMua2V5PXQmJnQua2V5LHRoaXMuY29tcG9uZW50T3B0aW9ucz1hLHRoaXMuY29tcG9uZW50SW5zdGFuY2U9dm9pZCAwLHRoaXMucGFyZW50PXZvaWQgMCx0aGlzLnJhdz0hMSx0aGlzLmlzU3RhdGljPSExLHRoaXMuaXNSb290SW5zZXJ0PSEwLHRoaXMuaXNDb21tZW50PSExLHRoaXMuaXNDbG9uZWQ9ITEsdGhpcy5pc09uY2U9ITEsdGhpcy5hc3luY0ZhY3Rvcnk9cyx0aGlzLmFzeW5jTWV0YT12b2lkIDAsdGhpcy5pc0FzeW5jUGxhY2Vob2xkZXI9ITF9LGRlPXtjaGlsZDp7Y29uZmlndXJhYmxlOiEwfX07ZGUuY2hpbGQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY29tcG9uZW50SW5zdGFuY2V9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHBlLnByb3RvdHlwZSxkZSk7dmFyIHZlPWZ1bmN0aW9uKGUpe3ZvaWQgMD09PWUmJihlPSIiKTt2YXIgdD1uZXcgcGU7cmV0dXJuIHQudGV4dD1lLHQuaXNDb21tZW50PSEwLHR9O2Z1bmN0aW9uIGhlKGUpe3JldHVybiBuZXcgcGUodm9pZCAwLHZvaWQgMCx2b2lkIDAsU3RyaW5nKGUpKX1mdW5jdGlvbiBtZShlKXt2YXIgdD1uZXcgcGUoZS50YWcsZS5kYXRhLGUuY2hpbGRyZW4mJmUuY2hpbGRyZW4uc2xpY2UoKSxlLnRleHQsZS5lbG0sZS5jb250ZXh0LGUuY29tcG9uZW50T3B0aW9ucyxlLmFzeW5jRmFjdG9yeSk7cmV0dXJuIHQubnM9ZS5ucyx0LmlzU3RhdGljPWUuaXNTdGF0aWMsdC5rZXk9ZS5rZXksdC5pc0NvbW1lbnQ9ZS5pc0NvbW1lbnQsdC5mbkNvbnRleHQ9ZS5mbkNvbnRleHQsdC5mbk9wdGlvbnM9ZS5mbk9wdGlvbnMsdC5mblNjb3BlSWQ9ZS5mblNjb3BlSWQsdC5hc3luY01ldGE9ZS5hc3luY01ldGEsdC5pc0Nsb25lZD0hMCx0fXZhciB5ZT1BcnJheS5wcm90b3R5cGUsZ2U9T2JqZWN0LmNyZWF0ZSh5ZSk7WyJwdXNoIiwicG9wIiwic2hpZnQiLCJ1bnNoaWZ0Iiwic3BsaWNlIiwic29ydCIsInJldmVyc2UiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXllW2VdO1IoZ2UsZSxmdW5jdGlvbigpe2Zvcih2YXIgbj1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyluW3JdPWFyZ3VtZW50c1tyXTt2YXIgaSxvPXQuYXBwbHkodGhpcyxuKSxhPXRoaXMuX19vYl9fO3N3aXRjaChlKXtjYXNlInB1c2giOmNhc2UidW5zaGlmdCI6aT1uO2JyZWFrO2Nhc2Uic3BsaWNlIjppPW4uc2xpY2UoMil9cmV0dXJuIGkmJmEub2JzZXJ2ZUFycmF5KGkpLGEuZGVwLm5vdGlmeSgpLG99KX0pO3ZhciBfZT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhnZSksYmU9ITA7ZnVuY3Rpb24gJGUoZSl7YmU9ZX12YXIgd2U9ZnVuY3Rpb24oZSl7dmFyIHQ7dGhpcy52YWx1ZT1lLHRoaXMuZGVwPW5ldyBjZSx0aGlzLnZtQ291bnQ9MCxSKGUsIl9fb2JfXyIsdGhpcyksQXJyYXkuaXNBcnJheShlKT8oVT8odD1nZSxlLl9fcHJvdG9fXz10KTpmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPTAsaT1uLmxlbmd0aDtyPGk7cisrKXt2YXIgbz1uW3JdO1IoZSxvLHRbb10pfX0oZSxnZSxfZSksdGhpcy5vYnNlcnZlQXJyYXkoZSkpOnRoaXMud2FsayhlKX07ZnVuY3Rpb24gQ2UoZSx0KXt2YXIgbjtpZihvKGUpJiYhKGUgaW5zdGFuY2VvZiBwZSkpcmV0dXJuIHkoZSwiX19vYl9fIikmJmUuX19vYl9fIGluc3RhbmNlb2Ygd2U\/bj1lLl9fb2JfXzpiZSYmIXRlKCkmJihBcnJheS5pc0FycmF5KGUpfHxzKGUpKSYmT2JqZWN0LmlzRXh0ZW5zaWJsZShlKSYmIWUuX2lzVnVlJiYobj1uZXcgd2UoZSkpLHQmJm4mJm4udm1Db3VudCsrLG59ZnVuY3Rpb24geGUoZSx0LG4scixpKXt2YXIgbz1uZXcgY2UsYT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsdCk7aWYoIWF8fCExIT09YS5jb25maWd1cmFibGUpe3ZhciBzPWEmJmEuZ2V0LGM9YSYmYS5zZXQ7cyYmIWN8fDIhPT1hcmd1bWVudHMubGVuZ3RofHwobj1lW3RdKTt2YXIgdT0haSYmQ2Uobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ9cz9zLmNhbGwoZSk6bjtyZXR1cm4gY2UudGFyZ2V0JiYoby5kZXBlbmQoKSx1JiYodS5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheSh0KSYmZnVuY3Rpb24gZSh0KXtmb3IodmFyIG49dm9pZCAwLHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspKG49dFtyXSkmJm4uX19vYl9fJiZuLl9fb2JfXy5kZXAuZGVwZW5kKCksQXJyYXkuaXNBcnJheShuKSYmZShuKX0odCkpKSx0fSxzZXQ6ZnVuY3Rpb24odCl7dmFyIHI9cz9zLmNhbGwoZSk6bjt0PT09cnx8dCE9dCYmciE9cnx8cyYmIWN8fChjP2MuY2FsbChlLHQpOm49dCx1PSFpJiZDZSh0KSxvLm5vdGlmeSgpKX19KX19ZnVuY3Rpb24ga2UoZSx0LG4pe2lmKEFycmF5LmlzQXJyYXkoZSkmJmModCkpcmV0dXJuIGUubGVuZ3RoPU1hdGgubWF4KGUubGVuZ3RoLHQpLGUuc3BsaWNlKHQsMSxuKSxuO2lmKHQgaW4gZSYmISh0IGluIE9iamVjdC5wcm90b3R5cGUpKXJldHVybiBlW3RdPW4sbjt2YXIgcj1lLl9fb2JfXztyZXR1cm4gZS5faXNWdWV8fHImJnIudm1Db3VudD9uOnI\/KHhlKHIudmFsdWUsdCxuKSxyLmRlcC5ub3RpZnkoKSxuKTooZVt0XT1uLG4pfWZ1bmN0aW9uIEFlKGUsdCl7aWYoQXJyYXkuaXNBcnJheShlKSYmYyh0KSllLnNwbGljZSh0LDEpO2Vsc2V7dmFyIG49ZS5fX29iX187ZS5faXNWdWV8fG4mJm4udm1Db3VudHx8eShlLHQpJiYoZGVsZXRlIGVbdF0sbiYmbi5kZXAubm90aWZ5KCkpfX13ZS5wcm90b3R5cGUud2Fsaz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9T2JqZWN0LmtleXMoZSksbj0wO248dC5sZW5ndGg7bisrKXhlKGUsdFtuXSl9LHdlLnByb3RvdHlwZS5vYnNlcnZlQXJyYXk9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aDt0PG47dCsrKUNlKGVbdF0pfTt2YXIgT2U9Ri5vcHRpb25NZXJnZVN0cmF0ZWdpZXM7ZnVuY3Rpb24gU2UoZSx0KXtpZighdClyZXR1cm4gZTtmb3IodmFyIG4scixpLG89b2U\/UmVmbGVjdC5vd25LZXlzKHQpOk9iamVjdC5rZXlzKHQpLGE9MDthPG8ubGVuZ3RoO2ErKykiX19vYl9fIiE9PShuPW9bYV0pJiYocj1lW25dLGk9dFtuXSx5KGUsbik\/ciE9PWkmJnMocikmJnMoaSkmJlNlKHIsaSk6a2UoZSxuLGkpKTtyZXR1cm4gZX1mdW5jdGlvbiBUZShlLHQsbil7cmV0dXJuIG4\/ZnVuY3Rpb24oKXt2YXIgcj0iZnVuY3Rpb24iPT10eXBlb2YgdD90LmNhbGwobixuKTp0LGk9ImZ1bmN0aW9uIj09dHlwZW9mIGU\/ZS5jYWxsKG4sbik6ZTtyZXR1cm4gcj9TZShyLGkpOml9OnQ\/ZT9mdW5jdGlvbigpe3JldHVybiBTZSgiZnVuY3Rpb24iPT10eXBlb2YgdD90LmNhbGwodGhpcyx0aGlzKTp0LCJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuY2FsbCh0aGlzLHRoaXMpOmUpfTp0OmV9ZnVuY3Rpb24gRWUoZSx0KXt2YXIgbj10P2U\/ZS5jb25jYXQodCk6QXJyYXkuaXNBcnJheSh0KT90Olt0XTplO3JldHVybiBuP2Z1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDtuKyspLTE9PT10LmluZGV4T2YoZVtuXSkmJnQucHVzaChlW25dKTtyZXR1cm4gdH0obik6bn1mdW5jdGlvbiBOZShlLHQsbixyKXt2YXIgaT1PYmplY3QuY3JlYXRlKGV8fG51bGwpO3JldHVybiB0P0EoaSx0KTppfU9lLmRhdGE9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBuP1RlKGUsdCxuKTp0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOlRlKGUsdCl9LEkuZm9yRWFjaChmdW5jdGlvbihlKXtPZVtlXT1FZX0pLE0uZm9yRWFjaChmdW5jdGlvbihlKXtPZVtlKyJzIl09TmV9KSxPZS53YXRjaD1mdW5jdGlvbihlLHQsbixyKXtpZihlPT09WSYmKGU9dm9pZCAwKSx0PT09WSYmKHQ9dm9pZCAwKSwhdClyZXR1cm4gT2JqZWN0LmNyZWF0ZShlfHxudWxsKTtpZighZSlyZXR1cm4gdDt2YXIgaT17fTtmb3IodmFyIG8gaW4gQShpLGUpLHQpe3ZhciBhPWlbb10scz10W29dO2EmJiFBcnJheS5pc0FycmF5KGEpJiYoYT1bYV0pLGlbb109YT9hLmNvbmNhdChzKTpBcnJheS5pc0FycmF5KHMpP3M6W3NdfXJldHVybiBpfSxPZS5wcm9wcz1PZS5tZXRob2RzPU9lLmluamVjdD1PZS5jb21wdXRlZD1mdW5jdGlvbihlLHQsbixyKXtpZighZSlyZXR1cm4gdDt2YXIgaT1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBBKGksZSksdCYmQShpLHQpLGl9LE9lLnByb3ZpZGU9VGU7dmFyIGplPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PXQ\/ZTp0fTtmdW5jdGlvbiBEZShlLHQsbil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQmJih0PXQub3B0aW9ucyksZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnByb3BzO2lmKG4pe3ZhciByLGksbz17fTtpZihBcnJheS5pc0FycmF5KG4pKWZvcihyPW4ubGVuZ3RoO3ItLTspInN0cmluZyI9PXR5cGVvZihpPW5bcl0pJiYob1tiKGkpXT17dHlwZTpudWxsfSk7ZWxzZSBpZihzKG4pKWZvcih2YXIgYSBpbiBuKWk9blthXSxvW2IoYSldPXMoaSk\/aTp7dHlwZTppfTtlLnByb3BzPW99fSh0KSxmdW5jdGlvbihlLHQpe3ZhciBuPWUuaW5qZWN0O2lmKG4pe3ZhciByPWUuaW5qZWN0PXt9O2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspcltuW2ldXT17ZnJvbTpuW2ldfTtlbHNlIGlmKHMobikpZm9yKHZhciBvIGluIG4pe3ZhciBhPW5bb107cltvXT1zKGEpP0Eoe2Zyb206b30sYSk6e2Zyb206YX19fX0odCksZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kaXJlY3RpdmVzO2lmKHQpZm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07ImZ1bmN0aW9uIj09dHlwZW9mIHImJih0W25dPXtiaW5kOnIsdXBkYXRlOnJ9KX19KHQpLCF0Ll9iYXNlJiYodC5leHRlbmRzJiYoZT1EZShlLHQuZXh0ZW5kcyxuKSksdC5taXhpbnMpKWZvcih2YXIgcj0wLGk9dC5taXhpbnMubGVuZ3RoO3I8aTtyKyspZT1EZShlLHQubWl4aW5zW3JdLG4pO3ZhciBvLGE9e307Zm9yKG8gaW4gZSljKG8pO2ZvcihvIGluIHQpeShlLG8pfHxjKG8pO2Z1bmN0aW9uIGMocil7dmFyIGk9T2Vbcl18fGplO2Fbcl09aShlW3JdLHRbcl0sbixyKX1yZXR1cm4gYX1mdW5jdGlvbiBMZShlLHQsbixyKXtpZigic3RyaW5nIj09dHlwZW9mIG4pe3ZhciBpPWVbdF07aWYoeShpLG4pKXJldHVybiBpW25dO3ZhciBvPWIobik7aWYoeShpLG8pKXJldHVybiBpW29dO3ZhciBhPSQobyk7cmV0dXJuIHkoaSxhKT9pW2FdOmlbbl18fGlbb118fGlbYV19fWZ1bmN0aW9uIE1lKGUsdCxuLHIpe3ZhciBpPXRbZV0sbz0heShuLGUpLGE9bltlXSxzPVBlKEJvb2xlYW4saS50eXBlKTtpZihzPi0xKWlmKG8mJiF5KGksImRlZmF1bHQiKSlhPSExO2Vsc2UgaWYoIiI9PT1hfHxhPT09QyhlKSl7dmFyIGM9UGUoU3RyaW5nLGkudHlwZSk7KGM8MHx8czxjKSYmKGE9ITApfWlmKHZvaWQgMD09PWEpe2E9ZnVuY3Rpb24oZSx0LG4pe2lmKCF5KHQsImRlZmF1bHQiKSlyZXR1cm47dmFyIHI9dC5kZWZhdWx0O2lmKGUmJmUuJG9wdGlvbnMucHJvcHNEYXRhJiZ2b2lkIDA9PT1lLiRvcHRpb25zLnByb3BzRGF0YVtuXSYmdm9pZCAwIT09ZS5fcHJvcHNbbl0pcmV0dXJuIGUuX3Byb3BzW25dO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByJiYiRnVuY3Rpb24iIT09SWUodC50eXBlKT9yLmNhbGwoZSk6cn0ocixpLGUpO3ZhciB1PWJlOyRlKCEwKSxDZShhKSwkZSh1KX1yZXR1cm4gYX1mdW5jdGlvbiBJZShlKXt2YXIgdD1lJiZlLnRvU3RyaW5nKCkubWF0Y2goL15ccypmdW5jdGlvbiAoXHcrKS8pO3JldHVybiB0P3RbMV06IiJ9ZnVuY3Rpb24gRmUoZSx0KXtyZXR1cm4gSWUoZSk9PT1JZSh0KX1mdW5jdGlvbiBQZShlLHQpe2lmKCFBcnJheS5pc0FycmF5KHQpKXJldHVybiBGZSh0LGUpPzA6LTE7Zm9yKHZhciBuPTAscj10Lmxlbmd0aDtuPHI7bisrKWlmKEZlKHRbbl0sZSkpcmV0dXJuIG47cmV0dXJuLTF9ZnVuY3Rpb24gUmUoZSx0LG4pe2xlKCk7dHJ5e2lmKHQpZm9yKHZhciByPXQ7cj1yLiRwYXJlbnQ7KXt2YXIgaT1yLiRvcHRpb25zLmVycm9yQ2FwdHVyZWQ7aWYoaSlmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyl0cnl7aWYoITE9PT1pW29dLmNhbGwocixlLHQsbikpcmV0dXJufWNhdGNoKGUpe0JlKGUsciwiZXJyb3JDYXB0dXJlZCBob29rIil9fUJlKGUsdCxuKX1maW5hbGx5e2ZlKCl9fWZ1bmN0aW9uIEhlKGUsdCxuLHIsaSl7dmFyIG87dHJ5eyhvPW4\/ZS5hcHBseSh0LG4pOmUuY2FsbCh0KSkmJiFvLl9pc1Z1ZSYmdShvKSYmIW8uX2hhbmRsZWQmJihvLmNhdGNoKGZ1bmN0aW9uKGUpe3JldHVybiBSZShlLHIsaSsiIChQcm9taXNlL2FzeW5jKSIpfSksby5faGFuZGxlZD0hMCl9Y2F0Y2goZSl7UmUoZSxyLGkpfXJldHVybiBvfWZ1bmN0aW9uIEJlKGUsdCxuKXtpZihGLmVycm9ySGFuZGxlcil0cnl7cmV0dXJuIEYuZXJyb3JIYW5kbGVyLmNhbGwobnVsbCxlLHQsbil9Y2F0Y2godCl7dCE9PWUmJlVlKHQsbnVsbCwiY29uZmlnLmVycm9ySGFuZGxlciIpfVVlKGUsdCxuKX1mdW5jdGlvbiBVZShlLHQsbil7aWYoIXomJiFWfHwidW5kZWZpbmVkIj09dHlwZW9mIGNvbnNvbGUpdGhyb3cgZTtjb25zb2xlLmVycm9yKGUpfXZhciB6ZSxWZT0hMSxLZT1bXSxKZT0hMTtmdW5jdGlvbiBxZSgpe0plPSExO3ZhciBlPUtlLnNsaWNlKDApO0tlLmxlbmd0aD0wO2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0oKX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UmJnJlKFByb21pc2UpKXt2YXIgV2U9UHJvbWlzZS5yZXNvbHZlKCk7emU9ZnVuY3Rpb24oKXtXZS50aGVuKHFlKSxHJiZzZXRUaW1lb3V0KFMpfSxWZT0hMH1lbHNlIGlmKHF8fCJ1bmRlZmluZWQiPT10eXBlb2YgTXV0YXRpb25PYnNlcnZlcnx8IXJlKE11dGF0aW9uT2JzZXJ2ZXIpJiYiW29iamVjdCBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3JdIiE9PU11dGF0aW9uT2JzZXJ2ZXIudG9TdHJpbmcoKSl6ZT0idW5kZWZpbmVkIiE9dHlwZW9mIHNldEltbWVkaWF0ZSYmcmUoc2V0SW1tZWRpYXRlKT9mdW5jdGlvbigpe3NldEltbWVkaWF0ZShxZSl9OmZ1bmN0aW9uKCl7c2V0VGltZW91dChxZSwwKX07ZWxzZXt2YXIgWmU9MSxHZT1uZXcgTXV0YXRpb25PYnNlcnZlcihxZSksWGU9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKFplKSk7R2Uub2JzZXJ2ZShYZSx7Y2hhcmFjdGVyRGF0YTohMH0pLHplPWZ1bmN0aW9uKCl7WmU9KFplKzEpJTIsWGUuZGF0YT1TdHJpbmcoWmUpfSxWZT0hMH1mdW5jdGlvbiBZZShlLHQpe3ZhciBuO2lmKEtlLnB1c2goZnVuY3Rpb24oKXtpZihlKXRyeXtlLmNhbGwodCl9Y2F0Y2goZSl7UmUoZSx0LCJuZXh0VGljayIpfWVsc2UgbiYmbih0KX0pLEplfHwoSmU9ITAsemUoKSksIWUmJiJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSlyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSl7bj1lfSl9dmFyIFFlPW5ldyBpZTtmdW5jdGlvbiBldChlKXshZnVuY3Rpb24gZSh0LG4pe3ZhciByLGk7dmFyIGE9QXJyYXkuaXNBcnJheSh0KTtpZighYSYmIW8odCl8fE9iamVjdC5pc0Zyb3plbih0KXx8dCBpbnN0YW5jZW9mIHBlKXJldHVybjtpZih0Ll9fb2JfXyl7dmFyIHM9dC5fX29iX18uZGVwLmlkO2lmKG4uaGFzKHMpKXJldHVybjtuLmFkZChzKX1pZihhKWZvcihyPXQubGVuZ3RoO3ItLTspZSh0W3JdLG4pO2Vsc2UgZm9yKGk9T2JqZWN0LmtleXModCkscj1pLmxlbmd0aDtyLS07KWUodFtpW3JdXSxuKX0oZSxRZSksUWUuY2xlYXIoKX12YXIgdHQ9ZyhmdW5jdGlvbihlKXt2YXIgdD0iJiI9PT1lLmNoYXJBdCgwKSxuPSJ+Ij09PShlPXQ\/ZS5zbGljZSgxKTplKS5jaGFyQXQoMCkscj0iISI9PT0oZT1uP2Uuc2xpY2UoMSk6ZSkuY2hhckF0KDApO3JldHVybntuYW1lOmU9cj9lLnNsaWNlKDEpOmUsb25jZTpuLGNhcHR1cmU6cixwYXNzaXZlOnR9fSk7ZnVuY3Rpb24gbnQoZSx0KXtmdW5jdGlvbiBuKCl7dmFyIGU9YXJndW1lbnRzLHI9bi5mbnM7aWYoIUFycmF5LmlzQXJyYXkocikpcmV0dXJuIEhlKHIsbnVsbCxhcmd1bWVudHMsdCwidi1vbiBoYW5kbGVyIik7Zm9yKHZhciBpPXIuc2xpY2UoKSxvPTA7bzxpLmxlbmd0aDtvKyspSGUoaVtvXSxudWxsLGUsdCwidi1vbiBoYW5kbGVyIil9cmV0dXJuIG4uZm5zPWUsbn1mdW5jdGlvbiBydChlLG4saSxvLGEscyl7dmFyIGMsdSxsLGY7Zm9yKGMgaW4gZSl1PWVbY10sbD1uW2NdLGY9dHQoYyksdCh1KXx8KHQobCk\/KHQodS5mbnMpJiYodT1lW2NdPW50KHUscykpLHIoZi5vbmNlKSYmKHU9ZVtjXT1hKGYubmFtZSx1LGYuY2FwdHVyZSkpLGkoZi5uYW1lLHUsZi5jYXB0dXJlLGYucGFzc2l2ZSxmLnBhcmFtcykpOnUhPT1sJiYobC5mbnM9dSxlW2NdPWwpKTtmb3IoYyBpbiBuKXQoZVtjXSkmJm8oKGY9dHQoYykpLm5hbWUsbltjXSxmLmNhcHR1cmUpfWZ1bmN0aW9uIGl0KGUsaSxvKXt2YXIgYTtlIGluc3RhbmNlb2YgcGUmJihlPWUuZGF0YS5ob29rfHwoZS5kYXRhLmhvb2s9e30pKTt2YXIgcz1lW2ldO2Z1bmN0aW9uIGMoKXtvLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxoKGEuZm5zLGMpfXQocyk\/YT1udChbY10pOm4ocy5mbnMpJiZyKHMubWVyZ2VkKT8oYT1zKS5mbnMucHVzaChjKTphPW50KFtzLGNdKSxhLm1lcmdlZD0hMCxlW2ldPWF9ZnVuY3Rpb24gb3QoZSx0LHIsaSxvKXtpZihuKHQpKXtpZih5KHQscikpcmV0dXJuIGVbcl09dFtyXSxvfHxkZWxldGUgdFtyXSwhMDtpZih5KHQsaSkpcmV0dXJuIGVbcl09dFtpXSxvfHxkZWxldGUgdFtpXSwhMH1yZXR1cm4hMX1mdW5jdGlvbiBhdChlKXtyZXR1cm4gaShlKT9baGUoZSldOkFycmF5LmlzQXJyYXkoZSk\/ZnVuY3Rpb24gZShvLGEpe3ZhciBzPVtdO3ZhciBjLHUsbCxmO2ZvcihjPTA7YzxvLmxlbmd0aDtjKyspdCh1PW9bY10pfHwiYm9vbGVhbiI9PXR5cGVvZiB1fHwobD1zLmxlbmd0aC0xLGY9c1tsXSxBcnJheS5pc0FycmF5KHUpP3UubGVuZ3RoPjAmJihzdCgodT1lKHUsKGF8fCIiKSsiXyIrYykpWzBdKSYmc3QoZikmJihzW2xdPWhlKGYudGV4dCt1WzBdLnRleHQpLHUuc2hpZnQoKSkscy5wdXNoLmFwcGx5KHMsdSkpOmkodSk\/c3QoZik\/c1tsXT1oZShmLnRleHQrdSk6IiIhPT11JiZzLnB1c2goaGUodSkpOnN0KHUpJiZzdChmKT9zW2xdPWhlKGYudGV4dCt1LnRleHQpOihyKG8uX2lzVkxpc3QpJiZuKHUudGFnKSYmdCh1LmtleSkmJm4oYSkmJih1LmtleT0iX192bGlzdCIrYSsiXyIrYysiX18iKSxzLnB1c2godSkpKTtyZXR1cm4gc30oZSk6dm9pZCAwfWZ1bmN0aW9uIHN0KGUpe3JldHVybiBuKGUpJiZuKGUudGV4dCkmJiExPT09ZS5pc0NvbW1lbnR9ZnVuY3Rpb24gY3QoZSx0KXtpZihlKXtmb3IodmFyIG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPW9lP1JlZmxlY3Qub3duS2V5cyhlKTpPYmplY3Qua2V5cyhlKSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07aWYoIl9fb2JfXyIhPT1vKXtmb3IodmFyIGE9ZVtvXS5mcm9tLHM9dDtzOyl7aWYocy5fcHJvdmlkZWQmJnkocy5fcHJvdmlkZWQsYSkpe25bb109cy5fcHJvdmlkZWRbYV07YnJlYWt9cz1zLiRwYXJlbnR9aWYoIXMmJiJkZWZhdWx0ImluIGVbb10pe3ZhciBjPWVbb10uZGVmYXVsdDtuW29dPSJmdW5jdGlvbiI9PXR5cGVvZiBjP2MuY2FsbCh0KTpjfX19cmV0dXJuIG59fWZ1bmN0aW9uIHV0KGUsdCl7aWYoIWV8fCFlLmxlbmd0aClyZXR1cm57fTtmb3IodmFyIG49e30scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyl7dmFyIG89ZVtyXSxhPW8uZGF0YTtpZihhJiZhLmF0dHJzJiZhLmF0dHJzLnNsb3QmJmRlbGV0ZSBhLmF0dHJzLnNsb3Qsby5jb250ZXh0IT09dCYmby5mbkNvbnRleHQhPT10fHwhYXx8bnVsbD09YS5zbG90KShuLmRlZmF1bHR8fChuLmRlZmF1bHQ9W10pKS5wdXNoKG8pO2Vsc2V7dmFyIHM9YS5zbG90LGM9bltzXXx8KG5bc109W10pOyJ0ZW1wbGF0ZSI9PT1vLnRhZz9jLnB1c2guYXBwbHkoYyxvLmNoaWxkcmVufHxbXSk6Yy5wdXNoKG8pfX1mb3IodmFyIHUgaW4gbiluW3VdLmV2ZXJ5KGx0KSYmZGVsZXRlIG5bdV07cmV0dXJuIG59ZnVuY3Rpb24gbHQoZSl7cmV0dXJuIGUuaXNDb21tZW50JiYhZS5hc3luY0ZhY3Rvcnl8fCIgIj09PWUudGV4dH1mdW5jdGlvbiBmdCh0LG4scil7dmFyIGksbz1PYmplY3Qua2V5cyhuKS5sZW5ndGg+MCxhPXQ\/ISF0LiRzdGFibGU6IW8scz10JiZ0LiRrZXk7aWYodCl7aWYodC5fbm9ybWFsaXplZClyZXR1cm4gdC5fbm9ybWFsaXplZDtpZihhJiZyJiZyIT09ZSYmcz09PXIuJGtleSYmIW8mJiFyLiRoYXNOb3JtYWwpcmV0dXJuIHI7Zm9yKHZhciBjIGluIGk9e30sdCl0W2NdJiYiJCIhPT1jWzBdJiYoaVtjXT1wdChuLGMsdFtjXSkpfWVsc2UgaT17fTtmb3IodmFyIHUgaW4gbil1IGluIGl8fChpW3VdPWR0KG4sdSkpO3JldHVybiB0JiZPYmplY3QuaXNFeHRlbnNpYmxlKHQpJiYodC5fbm9ybWFsaXplZD1pKSxSKGksIiRzdGFibGUiLGEpLFIoaSwiJGtleSIscyksUihpLCIkaGFzTm9ybWFsIixvKSxpfWZ1bmN0aW9uIHB0KGUsdCxuKXt2YXIgcj1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg\/bi5hcHBseShudWxsLGFyZ3VtZW50cyk6bih7fSk7cmV0dXJuKGU9ZSYmIm9iamVjdCI9PXR5cGVvZiBlJiYhQXJyYXkuaXNBcnJheShlKT9bZV06YXQoZSkpJiYoMD09PWUubGVuZ3RofHwxPT09ZS5sZW5ndGgmJmVbMF0uaXNDb21tZW50KT92b2lkIDA6ZX07cmV0dXJuIG4ucHJveHkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2dldDpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSkscn1mdW5jdGlvbiBkdChlLHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBlW3RdfX1mdW5jdGlvbiB2dChlLHQpe3ZhciByLGksYSxzLGM7aWYoQXJyYXkuaXNBcnJheShlKXx8InN0cmluZyI9PXR5cGVvZiBlKWZvcihyPW5ldyBBcnJheShlLmxlbmd0aCksaT0wLGE9ZS5sZW5ndGg7aTxhO2krKylyW2ldPXQoZVtpXSxpKTtlbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgZSlmb3Iocj1uZXcgQXJyYXkoZSksaT0wO2k8ZTtpKyspcltpXT10KGkrMSxpKTtlbHNlIGlmKG8oZSkpaWYob2UmJmVbU3ltYm9sLml0ZXJhdG9yXSl7cj1bXTtmb3IodmFyIHU9ZVtTeW1ib2wuaXRlcmF0b3JdKCksbD11Lm5leHQoKTshbC5kb25lOylyLnB1c2godChsLnZhbHVlLHIubGVuZ3RoKSksbD11Lm5leHQoKX1lbHNlIGZvcihzPU9iamVjdC5rZXlzKGUpLHI9bmV3IEFycmF5KHMubGVuZ3RoKSxpPTAsYT1zLmxlbmd0aDtpPGE7aSsrKWM9c1tpXSxyW2ldPXQoZVtjXSxjLGkpO3JldHVybiBuKHIpfHwocj1bXSksci5faXNWTGlzdD0hMCxyfWZ1bmN0aW9uIGh0KGUsdCxuLHIpe3ZhciBpLG89dGhpcy4kc2NvcGVkU2xvdHNbZV07bz8obj1ufHx7fSxyJiYobj1BKEEoe30sciksbikpLGk9byhuKXx8dCk6aT10aGlzLiRzbG90c1tlXXx8dDt2YXIgYT1uJiZuLnNsb3Q7cmV0dXJuIGE\/dGhpcy4kY3JlYXRlRWxlbWVudCgidGVtcGxhdGUiLHtzbG90OmF9LGkpOml9ZnVuY3Rpb24gbXQoZSl7cmV0dXJuIExlKHRoaXMuJG9wdGlvbnMsImZpbHRlcnMiLGUpfHxFfWZ1bmN0aW9uIHl0KGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/LTE9PT1lLmluZGV4T2YodCk6ZSE9PXR9ZnVuY3Rpb24gZ3QoZSx0LG4scixpKXt2YXIgbz1GLmtleUNvZGVzW3RdfHxuO3JldHVybiBpJiZyJiYhRi5rZXlDb2Rlc1t0XT95dChpLHIpOm8\/eXQobyxlKTpyP0MocikhPT10OnZvaWQgMH1mdW5jdGlvbiBfdChlLHQsbixyLGkpe2lmKG4paWYobyhuKSl7dmFyIGE7QXJyYXkuaXNBcnJheShuKSYmKG49TyhuKSk7dmFyIHM9ZnVuY3Rpb24obyl7aWYoImNsYXNzIj09PW98fCJzdHlsZSI9PT1vfHx2KG8pKWE9ZTtlbHNle3ZhciBzPWUuYXR0cnMmJmUuYXR0cnMudHlwZTthPXJ8fEYubXVzdFVzZVByb3AodCxzLG8pP2UuZG9tUHJvcHN8fChlLmRvbVByb3BzPXt9KTplLmF0dHJzfHwoZS5hdHRycz17fSl9dmFyIGM9YihvKSx1PUMobyk7YyBpbiBhfHx1IGluIGF8fChhW29dPW5bb10saSYmKChlLm9ufHwoZS5vbj17fSkpWyJ1cGRhdGU6IitvXT1mdW5jdGlvbihlKXtuW29dPWV9KSl9O2Zvcih2YXIgYyBpbiBuKXMoYyl9ZWxzZTtyZXR1cm4gZX1mdW5jdGlvbiBidChlLHQpe3ZhciBuPXRoaXMuX3N0YXRpY1RyZWVzfHwodGhpcy5fc3RhdGljVHJlZXM9W10pLHI9bltlXTtyZXR1cm4gciYmIXQ\/cjood3Qocj1uW2VdPXRoaXMuJG9wdGlvbnMuc3RhdGljUmVuZGVyRm5zW2VdLmNhbGwodGhpcy5fcmVuZGVyUHJveHksbnVsbCx0aGlzKSwiX19zdGF0aWNfXyIrZSwhMSkscil9ZnVuY3Rpb24gJHQoZSx0LG4pe3JldHVybiB3dChlLCJfX29uY2VfXyIrdCsobj8iXyIrbjoiIiksITApLGV9ZnVuY3Rpb24gd3QoZSx0LG4pe2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZVtyXSYmInN0cmluZyIhPXR5cGVvZiBlW3JdJiZDdChlW3JdLHQrIl8iK3Isbik7ZWxzZSBDdChlLHQsbil9ZnVuY3Rpb24gQ3QoZSx0LG4pe2UuaXNTdGF0aWM9ITAsZS5rZXk9dCxlLmlzT25jZT1ufWZ1bmN0aW9uIHh0KGUsdCl7aWYodClpZihzKHQpKXt2YXIgbj1lLm9uPWUub24\/QSh7fSxlLm9uKTp7fTtmb3IodmFyIHIgaW4gdCl7dmFyIGk9bltyXSxvPXRbcl07bltyXT1pP1tdLmNvbmNhdChpLG8pOm99fWVsc2U7cmV0dXJuIGV9ZnVuY3Rpb24ga3QoZSx0LG4scil7dD10fHx7JHN0YWJsZTohbn07Zm9yKHZhciBpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPWVbaV07QXJyYXkuaXNBcnJheShvKT9rdChvLHQsbik6byYmKG8ucHJveHkmJihvLmZuLnByb3h5PSEwKSx0W28ua2V5XT1vLmZuKX1yZXR1cm4gciYmKHQuJGtleT1yKSx0fWZ1bmN0aW9uIEF0KGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKz0yKXt2YXIgcj10W25dOyJzdHJpbmciPT10eXBlb2YgciYmciYmKGVbdFtuXV09dFtuKzFdKX1yZXR1cm4gZX1mdW5jdGlvbiBPdChlLHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZT90K2U6ZX1mdW5jdGlvbiBTdChlKXtlLl9vPSR0LGUuX249ZixlLl9zPWwsZS5fbD12dCxlLl90PWh0LGUuX3E9TixlLl9pPWosZS5fbT1idCxlLl9mPW10LGUuX2s9Z3QsZS5fYj1fdCxlLl92PWhlLGUuX2U9dmUsZS5fdT1rdCxlLl9nPXh0LGUuX2Q9QXQsZS5fcD1PdH1mdW5jdGlvbiBUdCh0LG4saSxvLGEpe3ZhciBzLGM9dGhpcyx1PWEub3B0aW9uczt5KG8sIl91aWQiKT8ocz1PYmplY3QuY3JlYXRlKG8pKS5fb3JpZ2luYWw9bzoocz1vLG89by5fb3JpZ2luYWwpO3ZhciBsPXIodS5fY29tcGlsZWQpLGY9IWw7dGhpcy5kYXRhPXQsdGhpcy5wcm9wcz1uLHRoaXMuY2hpbGRyZW49aSx0aGlzLnBhcmVudD1vLHRoaXMubGlzdGVuZXJzPXQub258fGUsdGhpcy5pbmplY3Rpb25zPWN0KHUuaW5qZWN0LG8pLHRoaXMuc2xvdHM9ZnVuY3Rpb24oKXtyZXR1cm4gYy4kc2xvdHN8fGZ0KHQuc2NvcGVkU2xvdHMsYy4kc2xvdHM9dXQoaSxvKSksYy4kc2xvdHN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzY29wZWRTbG90cyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGZ0KHQuc2NvcGVkU2xvdHMsdGhpcy5zbG90cygpKX19KSxsJiYodGhpcy4kb3B0aW9ucz11LHRoaXMuJHNsb3RzPXRoaXMuc2xvdHMoKSx0aGlzLiRzY29wZWRTbG90cz1mdCh0LnNjb3BlZFNsb3RzLHRoaXMuJHNsb3RzKSksdS5fc2NvcGVJZD90aGlzLl9jPWZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpPVB0KHMsZSx0LG4scixmKTtyZXR1cm4gaSYmIUFycmF5LmlzQXJyYXkoaSkmJihpLmZuU2NvcGVJZD11Ll9zY29wZUlkLGkuZm5Db250ZXh0PW8pLGl9OnRoaXMuX2M9ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIFB0KHMsZSx0LG4scixmKX19ZnVuY3Rpb24gRXQoZSx0LG4scixpKXt2YXIgbz1tZShlKTtyZXR1cm4gby5mbkNvbnRleHQ9bixvLmZuT3B0aW9ucz1yLHQuc2xvdCYmKChvLmRhdGF8fChvLmRhdGE9e30pKS5zbG90PXQuc2xvdCksb31mdW5jdGlvbiBOdChlLHQpe2Zvcih2YXIgbiBpbiB0KWVbYihuKV09dFtuXX1TdChUdC5wcm90b3R5cGUpO3ZhciBqdD17aW5pdDpmdW5jdGlvbihlLHQpe2lmKGUuY29tcG9uZW50SW5zdGFuY2UmJiFlLmNvbXBvbmVudEluc3RhbmNlLl9pc0Rlc3Ryb3llZCYmZS5kYXRhLmtlZXBBbGl2ZSl7dmFyIHI9ZTtqdC5wcmVwYXRjaChyLHIpfWVsc2V7KGUuY29tcG9uZW50SW5zdGFuY2U9ZnVuY3Rpb24oZSx0KXt2YXIgcj17X2lzQ29tcG9uZW50OiEwLF9wYXJlbnRWbm9kZTplLHBhcmVudDp0fSxpPWUuZGF0YS5pbmxpbmVUZW1wbGF0ZTtuKGkpJiYoci5yZW5kZXI9aS5yZW5kZXIsci5zdGF0aWNSZW5kZXJGbnM9aS5zdGF0aWNSZW5kZXJGbnMpO3JldHVybiBuZXcgZS5jb21wb25lbnRPcHRpb25zLkN0b3Iocil9KGUsV3QpKS4kbW91bnQodD9lLmVsbTp2b2lkIDAsdCl9fSxwcmVwYXRjaDpmdW5jdGlvbih0LG4pe3ZhciByPW4uY29tcG9uZW50T3B0aW9uczshZnVuY3Rpb24odCxuLHIsaSxvKXt2YXIgYT1pLmRhdGEuc2NvcGVkU2xvdHMscz10LiRzY29wZWRTbG90cyxjPSEhKGEmJiFhLiRzdGFibGV8fHMhPT1lJiYhcy4kc3RhYmxlfHxhJiZ0LiRzY29wZWRTbG90cy4ka2V5IT09YS4ka2V5KSx1PSEhKG98fHQuJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVufHxjKTt0LiRvcHRpb25zLl9wYXJlbnRWbm9kZT1pLHQuJHZub2RlPWksdC5fdm5vZGUmJih0Ll92bm9kZS5wYXJlbnQ9aSk7aWYodC4kb3B0aW9ucy5fcmVuZGVyQ2hpbGRyZW49byx0LiRhdHRycz1pLmRhdGEuYXR0cnN8fGUsdC4kbGlzdGVuZXJzPXJ8fGUsbiYmdC4kb3B0aW9ucy5wcm9wcyl7JGUoITEpO2Zvcih2YXIgbD10Ll9wcm9wcyxmPXQuJG9wdGlvbnMuX3Byb3BLZXlzfHxbXSxwPTA7cDxmLmxlbmd0aDtwKyspe3ZhciBkPWZbcF0sdj10LiRvcHRpb25zLnByb3BzO2xbZF09TWUoZCx2LG4sdCl9JGUoITApLHQuJG9wdGlvbnMucHJvcHNEYXRhPW59cj1yfHxlO3ZhciBoPXQuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVyczt0LiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM9cixxdCh0LHIsaCksdSYmKHQuJHNsb3RzPXV0KG8saS5jb250ZXh0KSx0LiRmb3JjZVVwZGF0ZSgpKX0obi5jb21wb25lbnRJbnN0YW5jZT10LmNvbXBvbmVudEluc3RhbmNlLHIucHJvcHNEYXRhLHIubGlzdGVuZXJzLG4sci5jaGlsZHJlbil9LGluc2VydDpmdW5jdGlvbihlKXt2YXIgdCxuPWUuY29udGV4dCxyPWUuY29tcG9uZW50SW5zdGFuY2U7ci5faXNNb3VudGVkfHwoci5faXNNb3VudGVkPSEwLFl0KHIsIm1vdW50ZWQiKSksZS5kYXRhLmtlZXBBbGl2ZSYmKG4uX2lzTW91bnRlZD8oKHQ9cikuX2luYWN0aXZlPSExLGVuLnB1c2godCkpOlh0KHIsITApKX0sZGVzdHJveTpmdW5jdGlvbihlKXt2YXIgdD1lLmNvbXBvbmVudEluc3RhbmNlO3QuX2lzRGVzdHJveWVkfHwoZS5kYXRhLmtlZXBBbGl2ZT9mdW5jdGlvbiBlKHQsbil7aWYobiYmKHQuX2RpcmVjdEluYWN0aXZlPSEwLEd0KHQpKSlyZXR1cm47aWYoIXQuX2luYWN0aXZlKXt0Ll9pbmFjdGl2ZT0hMDtmb3IodmFyIHI9MDtyPHQuJGNoaWxkcmVuLmxlbmd0aDtyKyspZSh0LiRjaGlsZHJlbltyXSk7WXQodCwiZGVhY3RpdmF0ZWQiKX19KHQsITApOnQuJGRlc3Ryb3koKSl9fSxEdD1PYmplY3Qua2V5cyhqdCk7ZnVuY3Rpb24gTHQoaSxhLHMsYyxsKXtpZighdChpKSl7dmFyIGY9cy4kb3B0aW9ucy5fYmFzZTtpZihvKGkpJiYoaT1mLmV4dGVuZChpKSksImZ1bmN0aW9uIj09dHlwZW9mIGkpe3ZhciBwO2lmKHQoaS5jaWQpJiZ2b2lkIDA9PT0oaT1mdW5jdGlvbihlLGkpe2lmKHIoZS5lcnJvcikmJm4oZS5lcnJvckNvbXApKXJldHVybiBlLmVycm9yQ29tcDtpZihuKGUucmVzb2x2ZWQpKXJldHVybiBlLnJlc29sdmVkO3ZhciBhPUh0O2EmJm4oZS5vd25lcnMpJiYtMT09PWUub3duZXJzLmluZGV4T2YoYSkmJmUub3duZXJzLnB1c2goYSk7aWYocihlLmxvYWRpbmcpJiZuKGUubG9hZGluZ0NvbXApKXJldHVybiBlLmxvYWRpbmdDb21wO2lmKGEmJiFuKGUub3duZXJzKSl7dmFyIHM9ZS5vd25lcnM9W2FdLGM9ITAsbD1udWxsLGY9bnVsbDthLiRvbigiaG9vazpkZXN0cm95ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIGgocyxhKX0pO3ZhciBwPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49cy5sZW5ndGg7dDxuO3QrKylzW3RdLiRmb3JjZVVwZGF0ZSgpO2UmJihzLmxlbmd0aD0wLG51bGwhPT1sJiYoY2xlYXJUaW1lb3V0KGwpLGw9bnVsbCksbnVsbCE9PWYmJihjbGVhclRpbWVvdXQoZiksZj1udWxsKSl9LGQ9RChmdW5jdGlvbih0KXtlLnJlc29sdmVkPUJ0KHQsaSksYz9zLmxlbmd0aD0wOnAoITApfSksdj1EKGZ1bmN0aW9uKHQpe24oZS5lcnJvckNvbXApJiYoZS5lcnJvcj0hMCxwKCEwKSl9KSxtPWUoZCx2KTtyZXR1cm4gbyhtKSYmKHUobSk\/dChlLnJlc29sdmVkKSYmbS50aGVuKGQsdik6dShtLmNvbXBvbmVudCkmJihtLmNvbXBvbmVudC50aGVuKGQsdiksbihtLmVycm9yKSYmKGUuZXJyb3JDb21wPUJ0KG0uZXJyb3IsaSkpLG4obS5sb2FkaW5nKSYmKGUubG9hZGluZ0NvbXA9QnQobS5sb2FkaW5nLGkpLDA9PT1tLmRlbGF5P2UubG9hZGluZz0hMDpsPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtsPW51bGwsdChlLnJlc29sdmVkKSYmdChlLmVycm9yKSYmKGUubG9hZGluZz0hMCxwKCExKSl9LG0uZGVsYXl8fDIwMCkpLG4obS50aW1lb3V0KSYmKGY9c2V0VGltZW91dChmdW5jdGlvbigpe2Y9bnVsbCx0KGUucmVzb2x2ZWQpJiZ2KG51bGwpfSxtLnRpbWVvdXQpKSkpLGM9ITEsZS5sb2FkaW5nP2UubG9hZGluZ0NvbXA6ZS5yZXNvbHZlZH19KHA9aSxmKSkpcmV0dXJuIGZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG89dmUoKTtyZXR1cm4gby5hc3luY0ZhY3Rvcnk9ZSxvLmFzeW5jTWV0YT17ZGF0YTp0LGNvbnRleHQ6bixjaGlsZHJlbjpyLHRhZzppfSxvfShwLGEscyxjLGwpO2E9YXx8e30sJG4oaSksbihhLm1vZGVsKSYmZnVuY3Rpb24oZSx0KXt2YXIgcj1lLm1vZGVsJiZlLm1vZGVsLnByb3B8fCJ2YWx1ZSIsaT1lLm1vZGVsJiZlLm1vZGVsLmV2ZW50fHwiaW5wdXQiOyh0LmF0dHJzfHwodC5hdHRycz17fSkpW3JdPXQubW9kZWwudmFsdWU7dmFyIG89dC5vbnx8KHQub249e30pLGE9b1tpXSxzPXQubW9kZWwuY2FsbGJhY2s7bihhKT8oQXJyYXkuaXNBcnJheShhKT8tMT09PWEuaW5kZXhPZihzKTphIT09cykmJihvW2ldPVtzXS5jb25jYXQoYSkpOm9baV09c30oaS5vcHRpb25zLGEpO3ZhciBkPWZ1bmN0aW9uKGUscixpKXt2YXIgbz1yLm9wdGlvbnMucHJvcHM7aWYoIXQobykpe3ZhciBhPXt9LHM9ZS5hdHRycyxjPWUucHJvcHM7aWYobihzKXx8bihjKSlmb3IodmFyIHUgaW4gbyl7dmFyIGw9Qyh1KTtvdChhLGMsdSxsLCEwKXx8b3QoYSxzLHUsbCwhMSl9cmV0dXJuIGF9fShhLGkpO2lmKHIoaS5vcHRpb25zLmZ1bmN0aW9uYWwpKXJldHVybiBmdW5jdGlvbih0LHIsaSxvLGEpe3ZhciBzPXQub3B0aW9ucyxjPXt9LHU9cy5wcm9wcztpZihuKHUpKWZvcih2YXIgbCBpbiB1KWNbbF09TWUobCx1LHJ8fGUpO2Vsc2UgbihpLmF0dHJzKSYmTnQoYyxpLmF0dHJzKSxuKGkucHJvcHMpJiZOdChjLGkucHJvcHMpO3ZhciBmPW5ldyBUdChpLGMsYSxvLHQpLHA9cy5yZW5kZXIuY2FsbChudWxsLGYuX2MsZik7aWYocCBpbnN0YW5jZW9mIHBlKXJldHVybiBFdChwLGksZi5wYXJlbnQscyk7aWYoQXJyYXkuaXNBcnJheShwKSl7Zm9yKHZhciBkPWF0KHApfHxbXSx2PW5ldyBBcnJheShkLmxlbmd0aCksaD0wO2g8ZC5sZW5ndGg7aCsrKXZbaF09RXQoZFtoXSxpLGYucGFyZW50LHMpO3JldHVybiB2fX0oaSxkLGEscyxjKTt2YXIgdj1hLm9uO2lmKGEub249YS5uYXRpdmVPbixyKGkub3B0aW9ucy5hYnN0cmFjdCkpe3ZhciBtPWEuc2xvdDthPXt9LG0mJihhLnNsb3Q9bSl9IWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmhvb2t8fChlLmhvb2s9e30pLG49MDtuPER0Lmxlbmd0aDtuKyspe3ZhciByPUR0W25dLGk9dFtyXSxvPWp0W3JdO2k9PT1vfHxpJiZpLl9tZXJnZWR8fCh0W3JdPWk\/TXQobyxpKTpvKX19KGEpO3ZhciB5PWkub3B0aW9ucy5uYW1lfHxsO3JldHVybiBuZXcgcGUoInZ1ZS1jb21wb25lbnQtIitpLmNpZCsoeT8iLSIreToiIiksYSx2b2lkIDAsdm9pZCAwLHZvaWQgMCxzLHtDdG9yOmkscHJvcHNEYXRhOmQsbGlzdGVuZXJzOnYsdGFnOmwsY2hpbGRyZW46Y30scCl9fX1mdW5jdGlvbiBNdChlLHQpe3ZhciBuPWZ1bmN0aW9uKG4scil7ZShuLHIpLHQobixyKX07cmV0dXJuIG4uX21lcmdlZD0hMCxufXZhciBJdD0xLEZ0PTI7ZnVuY3Rpb24gUHQoZSxhLHMsYyx1LGwpe3JldHVybihBcnJheS5pc0FycmF5KHMpfHxpKHMpKSYmKHU9YyxjPXMscz12b2lkIDApLHIobCkmJih1PUZ0KSxmdW5jdGlvbihlLGksYSxzLGMpe2lmKG4oYSkmJm4oYS5fX29iX18pKXJldHVybiB2ZSgpO24oYSkmJm4oYS5pcykmJihpPWEuaXMpO2lmKCFpKXJldHVybiB2ZSgpO0FycmF5LmlzQXJyYXkocykmJiJmdW5jdGlvbiI9PXR5cGVvZiBzWzBdJiYoKGE9YXx8e30pLnNjb3BlZFNsb3RzPXtkZWZhdWx0OnNbMF19LHMubGVuZ3RoPTApO2M9PT1GdD9zPWF0KHMpOmM9PT1JdCYmKHM9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspaWYoQXJyYXkuaXNBcnJheShlW3RdKSlyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxlKTtyZXR1cm4gZX0ocykpO3ZhciB1LGw7aWYoInN0cmluZyI9PXR5cGVvZiBpKXt2YXIgZjtsPWUuJHZub2RlJiZlLiR2bm9kZS5uc3x8Ri5nZXRUYWdOYW1lc3BhY2UoaSksdT1GLmlzUmVzZXJ2ZWRUYWcoaSk\/bmV3IHBlKEYucGFyc2VQbGF0Zm9ybVRhZ05hbWUoaSksYSxzLHZvaWQgMCx2b2lkIDAsZSk6YSYmYS5wcmV8fCFuKGY9TGUoZS4kb3B0aW9ucywiY29tcG9uZW50cyIsaSkpP25ldyBwZShpLGEscyx2b2lkIDAsdm9pZCAwLGUpOkx0KGYsYSxlLHMsaSl9ZWxzZSB1PUx0KGksYSxlLHMpO3JldHVybiBBcnJheS5pc0FycmF5KHUpP3U6bih1KT8obihsKSYmZnVuY3Rpb24gZShpLG8sYSl7aS5ucz1vOyJmb3JlaWduT2JqZWN0Ij09PWkudGFnJiYobz12b2lkIDAsYT0hMCk7aWYobihpLmNoaWxkcmVuKSlmb3IodmFyIHM9MCxjPWkuY2hpbGRyZW4ubGVuZ3RoO3M8YztzKyspe3ZhciB1PWkuY2hpbGRyZW5bc107bih1LnRhZykmJih0KHUubnMpfHxyKGEpJiYic3ZnIiE9PXUudGFnKSYmZSh1LG8sYSl9fSh1LGwpLG4oYSkmJmZ1bmN0aW9uKGUpe28oZS5zdHlsZSkmJmV0KGUuc3R5bGUpO28oZS5jbGFzcykmJmV0KGUuY2xhc3MpfShhKSx1KTp2ZSgpfShlLGEscyxjLHUpfXZhciBSdCxIdD1udWxsO2Z1bmN0aW9uIEJ0KGUsdCl7cmV0dXJuKGUuX19lc01vZHVsZXx8b2UmJiJNb2R1bGUiPT09ZVtTeW1ib2wudG9TdHJpbmdUYWddKSYmKGU9ZS5kZWZhdWx0KSxvKGUpP3QuZXh0ZW5kKGUpOmV9ZnVuY3Rpb24gVXQoZSl7cmV0dXJuIGUuaXNDb21tZW50JiZlLmFzeW5jRmFjdG9yeX1mdW5jdGlvbiB6dChlKXtpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKXt2YXIgcj1lW3RdO2lmKG4ocikmJihuKHIuY29tcG9uZW50T3B0aW9ucyl8fFV0KHIpKSlyZXR1cm4gcn19ZnVuY3Rpb24gVnQoZSx0KXtSdC4kb24oZSx0KX1mdW5jdGlvbiBLdChlLHQpe1J0LiRvZmYoZSx0KX1mdW5jdGlvbiBKdChlLHQpe3ZhciBuPVJ0O3JldHVybiBmdW5jdGlvbiByKCl7bnVsbCE9PXQuYXBwbHkobnVsbCxhcmd1bWVudHMpJiZuLiRvZmYoZSxyKX19ZnVuY3Rpb24gcXQoZSx0LG4pe1J0PWUscnQodCxufHx7fSxWdCxLdCxKdCxlKSxSdD12b2lkIDB9dmFyIFd0PW51bGw7ZnVuY3Rpb24gWnQoZSl7dmFyIHQ9V3Q7cmV0dXJuIFd0PWUsZnVuY3Rpb24oKXtXdD10fX1mdW5jdGlvbiBHdChlKXtmb3IoO2UmJihlPWUuJHBhcmVudCk7KWlmKGUuX2luYWN0aXZlKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFh0KGUsdCl7aWYodCl7aWYoZS5fZGlyZWN0SW5hY3RpdmU9ITEsR3QoZSkpcmV0dXJufWVsc2UgaWYoZS5fZGlyZWN0SW5hY3RpdmUpcmV0dXJuO2lmKGUuX2luYWN0aXZlfHxudWxsPT09ZS5faW5hY3RpdmUpe2UuX2luYWN0aXZlPSExO2Zvcih2YXIgbj0wO248ZS4kY2hpbGRyZW4ubGVuZ3RoO24rKylYdChlLiRjaGlsZHJlbltuXSk7WXQoZSwiYWN0aXZhdGVkIil9fWZ1bmN0aW9uIFl0KGUsdCl7bGUoKTt2YXIgbj1lLiRvcHRpb25zW3RdLHI9dCsiIGhvb2siO2lmKG4pZm9yKHZhciBpPTAsbz1uLmxlbmd0aDtpPG87aSsrKUhlKG5baV0sZSxudWxsLGUscik7ZS5faGFzSG9va0V2ZW50JiZlLiRlbWl0KCJob29rOiIrdCksZmUoKX12YXIgUXQ9W10sZW49W10sdG49e30sbm49ITEscm49ITEsb249MDt2YXIgYW49MCxzbj1EYXRlLm5vdztpZih6JiYhcSl7dmFyIGNuPXdpbmRvdy5wZXJmb3JtYW5jZTtjbiYmImZ1bmN0aW9uIj09dHlwZW9mIGNuLm5vdyYmc24oKT5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKS50aW1lU3RhbXAmJihzbj1mdW5jdGlvbigpe3JldHVybiBjbi5ub3coKX0pfWZ1bmN0aW9uIHVuKCl7dmFyIGUsdDtmb3IoYW49c24oKSxybj0hMCxRdC5zb3J0KGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUuaWQtdC5pZH0pLG9uPTA7b248UXQubGVuZ3RoO29uKyspKGU9UXRbb25dKS5iZWZvcmUmJmUuYmVmb3JlKCksdD1lLmlkLHRuW3RdPW51bGwsZS5ydW4oKTt2YXIgbj1lbi5zbGljZSgpLHI9UXQuc2xpY2UoKTtvbj1RdC5sZW5ndGg9ZW4ubGVuZ3RoPTAsdG49e30sbm49cm49ITEsZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0KyspZVt0XS5faW5hY3RpdmU9ITAsWHQoZVt0XSwhMCl9KG4pLGZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoO2Zvcig7dC0tOyl7dmFyIG49ZVt0XSxyPW4udm07ci5fd2F0Y2hlcj09PW4mJnIuX2lzTW91bnRlZCYmIXIuX2lzRGVzdHJveWVkJiZZdChyLCJ1cGRhdGVkIil9fShyKSxuZSYmRi5kZXZ0b29scyYmbmUuZW1pdCgiZmx1c2giKX12YXIgbG49MCxmbj1mdW5jdGlvbihlLHQsbixyLGkpe3RoaXMudm09ZSxpJiYoZS5fd2F0Y2hlcj10aGlzKSxlLl93YXRjaGVycy5wdXNoKHRoaXMpLHI\/KHRoaXMuZGVlcD0hIXIuZGVlcCx0aGlzLnVzZXI9ISFyLnVzZXIsdGhpcy5sYXp5PSEhci5sYXp5LHRoaXMuc3luYz0hIXIuc3luYyx0aGlzLmJlZm9yZT1yLmJlZm9yZSk6dGhpcy5kZWVwPXRoaXMudXNlcj10aGlzLmxhenk9dGhpcy5zeW5jPSExLHRoaXMuY2I9bix0aGlzLmlkPSsrbG4sdGhpcy5hY3RpdmU9ITAsdGhpcy5kaXJ0eT10aGlzLmxhenksdGhpcy5kZXBzPVtdLHRoaXMubmV3RGVwcz1bXSx0aGlzLmRlcElkcz1uZXcgaWUsdGhpcy5uZXdEZXBJZHM9bmV3IGllLHRoaXMuZXhwcmVzc2lvbj0iIiwiZnVuY3Rpb24iPT10eXBlb2YgdD90aGlzLmdldHRlcj10Oih0aGlzLmdldHRlcj1mdW5jdGlvbihlKXtpZighSC50ZXN0KGUpKXt2YXIgdD1lLnNwbGl0KCIuIik7cmV0dXJuIGZ1bmN0aW9uKGUpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXtpZighZSlyZXR1cm47ZT1lW3Rbbl1dfXJldHVybiBlfX19KHQpLHRoaXMuZ2V0dGVyfHwodGhpcy5nZXR0ZXI9UykpLHRoaXMudmFsdWU9dGhpcy5sYXp5P3ZvaWQgMDp0aGlzLmdldCgpfTtmbi5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKCl7dmFyIGU7bGUodGhpcyk7dmFyIHQ9dGhpcy52bTt0cnl7ZT10aGlzLmdldHRlci5jYWxsKHQsdCl9Y2F0Y2goZSl7aWYoIXRoaXMudXNlcil0aHJvdyBlO1JlKGUsdCwnZ2V0dGVyIGZvciB3YXRjaGVyICInK3RoaXMuZXhwcmVzc2lvbisnIicpfWZpbmFsbHl7dGhpcy5kZWVwJiZldChlKSxmZSgpLHRoaXMuY2xlYW51cERlcHMoKX1yZXR1cm4gZX0sZm4ucHJvdG90eXBlLmFkZERlcD1mdW5jdGlvbihlKXt2YXIgdD1lLmlkO3RoaXMubmV3RGVwSWRzLmhhcyh0KXx8KHRoaXMubmV3RGVwSWRzLmFkZCh0KSx0aGlzLm5ld0RlcHMucHVzaChlKSx0aGlzLmRlcElkcy5oYXModCl8fGUuYWRkU3ViKHRoaXMpKX0sZm4ucHJvdG90eXBlLmNsZWFudXBEZXBzPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl7dmFyIHQ9dGhpcy5kZXBzW2VdO3RoaXMubmV3RGVwSWRzLmhhcyh0LmlkKXx8dC5yZW1vdmVTdWIodGhpcyl9dmFyIG49dGhpcy5kZXBJZHM7dGhpcy5kZXBJZHM9dGhpcy5uZXdEZXBJZHMsdGhpcy5uZXdEZXBJZHM9bix0aGlzLm5ld0RlcElkcy5jbGVhcigpLG49dGhpcy5kZXBzLHRoaXMuZGVwcz10aGlzLm5ld0RlcHMsdGhpcy5uZXdEZXBzPW4sdGhpcy5uZXdEZXBzLmxlbmd0aD0wfSxmbi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5sYXp5P3RoaXMuZGlydHk9ITA6dGhpcy5zeW5jP3RoaXMucnVuKCk6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pZDtpZihudWxsPT10blt0XSl7aWYodG5bdF09ITAscm4pe2Zvcih2YXIgbj1RdC5sZW5ndGgtMTtuPm9uJiZRdFtuXS5pZD5lLmlkOyluLS07UXQuc3BsaWNlKG4rMSwwLGUpfWVsc2UgUXQucHVzaChlKTtubnx8KG5uPSEwLFllKHVuKSl9fSh0aGlzKX0sZm4ucHJvdG90eXBlLnJ1bj1mdW5jdGlvbigpe2lmKHRoaXMuYWN0aXZlKXt2YXIgZT10aGlzLmdldCgpO2lmKGUhPT10aGlzLnZhbHVlfHxvKGUpfHx0aGlzLmRlZXApe3ZhciB0PXRoaXMudmFsdWU7aWYodGhpcy52YWx1ZT1lLHRoaXMudXNlcil0cnl7dGhpcy5jYi5jYWxsKHRoaXMudm0sZSx0KX1jYXRjaChlKXtSZShlLHRoaXMudm0sJ2NhbGxiYWNrIGZvciB3YXRjaGVyICInK3RoaXMuZXhwcmVzc2lvbisnIicpfWVsc2UgdGhpcy5jYi5jYWxsKHRoaXMudm0sZSx0KX19fSxmbi5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oKXt0aGlzLnZhbHVlPXRoaXMuZ2V0KCksdGhpcy5kaXJ0eT0hMX0sZm4ucHJvdG90eXBlLmRlcGVuZD1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmRlcHMubGVuZ3RoO2UtLTspdGhpcy5kZXBzW2VdLmRlcGVuZCgpfSxmbi5wcm90b3R5cGUudGVhcmRvd249ZnVuY3Rpb24oKXtpZih0aGlzLmFjdGl2ZSl7dGhpcy52bS5faXNCZWluZ0Rlc3Ryb3llZHx8aCh0aGlzLnZtLl93YXRjaGVycyx0aGlzKTtmb3IodmFyIGU9dGhpcy5kZXBzLmxlbmd0aDtlLS07KXRoaXMuZGVwc1tlXS5yZW1vdmVTdWIodGhpcyk7dGhpcy5hY3RpdmU9ITF9fTt2YXIgcG49e2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpTLHNldDpTfTtmdW5jdGlvbiBkbihlLHQsbil7cG4uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbdF1bbl19LHBuLnNldD1mdW5jdGlvbihlKXt0aGlzW3RdW25dPWV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLG4scG4pfWZ1bmN0aW9uIHZuKGUpe2UuX3dhdGNoZXJzPVtdO3ZhciB0PWUuJG9wdGlvbnM7dC5wcm9wcyYmZnVuY3Rpb24oZSx0KXt2YXIgbj1lLiRvcHRpb25zLnByb3BzRGF0YXx8e30scj1lLl9wcm9wcz17fSxpPWUuJG9wdGlvbnMuX3Byb3BLZXlzPVtdO2UuJHBhcmVudCYmJGUoITEpO3ZhciBvPWZ1bmN0aW9uKG8pe2kucHVzaChvKTt2YXIgYT1NZShvLHQsbixlKTt4ZShyLG8sYSksbyBpbiBlfHxkbihlLCJfcHJvcHMiLG8pfTtmb3IodmFyIGEgaW4gdClvKGEpOyRlKCEwKX0oZSx0LnByb3BzKSx0Lm1ldGhvZHMmJmZ1bmN0aW9uKGUsdCl7ZS4kb3B0aW9ucy5wcm9wcztmb3IodmFyIG4gaW4gdCllW25dPSJmdW5jdGlvbiIhPXR5cGVvZiB0W25dP1M6eCh0W25dLGUpfShlLHQubWV0aG9kcyksdC5kYXRhP2Z1bmN0aW9uKGUpe3ZhciB0PWUuJG9wdGlvbnMuZGF0YTtzKHQ9ZS5fZGF0YT0iZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbihlLHQpe2xlKCk7dHJ5e3JldHVybiBlLmNhbGwodCx0KX1jYXRjaChlKXtyZXR1cm4gUmUoZSx0LCJkYXRhKCkiKSx7fX1maW5hbGx5e2ZlKCl9fSh0LGUpOnR8fHt9KXx8KHQ9e30pO3ZhciBuPU9iamVjdC5rZXlzKHQpLHI9ZS4kb3B0aW9ucy5wcm9wcyxpPShlLiRvcHRpb25zLm1ldGhvZHMsbi5sZW5ndGgpO2Zvcig7aS0tOyl7dmFyIG89bltpXTtyJiZ5KHIsbyl8fChhPXZvaWQgMCwzNiE9PShhPShvKyIiKS5jaGFyQ29kZUF0KDApKSYmOTUhPT1hJiZkbihlLCJfZGF0YSIsbykpfXZhciBhO0NlKHQsITApfShlKTpDZShlLl9kYXRhPXt9LCEwKSx0LmNvbXB1dGVkJiZmdW5jdGlvbihlLHQpe3ZhciBuPWUuX2NvbXB1dGVkV2F0Y2hlcnM9T2JqZWN0LmNyZWF0ZShudWxsKSxyPXRlKCk7Zm9yKHZhciBpIGluIHQpe3ZhciBvPXRbaV0sYT0iZnVuY3Rpb24iPT10eXBlb2Ygbz9vOm8uZ2V0O3J8fChuW2ldPW5ldyBmbihlLGF8fFMsUyxobikpLGkgaW4gZXx8bW4oZSxpLG8pfX0oZSx0LmNvbXB1dGVkKSx0LndhdGNoJiZ0LndhdGNoIT09WSYmZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4gaW4gdCl7dmFyIHI9dFtuXTtpZihBcnJheS5pc0FycmF5KHIpKWZvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKV9uKGUsbixyW2ldKTtlbHNlIF9uKGUsbixyKX19KGUsdC53YXRjaCl9dmFyIGhuPXtsYXp5OiEwfTtmdW5jdGlvbiBtbihlLHQsbil7dmFyIHI9IXRlKCk7ImZ1bmN0aW9uIj09dHlwZW9mIG4\/KHBuLmdldD1yP3luKHQpOmduKG4pLHBuLnNldD1TKToocG4uZ2V0PW4uZ2V0P3ImJiExIT09bi5jYWNoZT95bih0KTpnbihuLmdldCk6Uyxwbi5zZXQ9bi5zZXR8fFMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQscG4pfWZ1bmN0aW9uIHluKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbXB1dGVkV2F0Y2hlcnMmJnRoaXMuX2NvbXB1dGVkV2F0Y2hlcnNbZV07aWYodClyZXR1cm4gdC5kaXJ0eSYmdC5ldmFsdWF0ZSgpLGNlLnRhcmdldCYmdC5kZXBlbmQoKSx0LnZhbHVlfX1mdW5jdGlvbiBnbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5jYWxsKHRoaXMsdGhpcyl9fWZ1bmN0aW9uIF9uKGUsdCxuLHIpe3JldHVybiBzKG4pJiYocj1uLG49bi5oYW5kbGVyKSwic3RyaW5nIj09dHlwZW9mIG4mJihuPWVbbl0pLGUuJHdhdGNoKHQsbixyKX12YXIgYm49MDtmdW5jdGlvbiAkbihlKXt2YXIgdD1lLm9wdGlvbnM7aWYoZS5zdXBlcil7dmFyIG49JG4oZS5zdXBlcik7aWYobiE9PWUuc3VwZXJPcHRpb25zKXtlLnN1cGVyT3B0aW9ucz1uO3ZhciByPWZ1bmN0aW9uKGUpe3ZhciB0LG49ZS5vcHRpb25zLHI9ZS5zZWFsZWRPcHRpb25zO2Zvcih2YXIgaSBpbiBuKW5baV0hPT1yW2ldJiYodHx8KHQ9e30pLHRbaV09bltpXSk7cmV0dXJuIHR9KGUpO3ImJkEoZS5leHRlbmRPcHRpb25zLHIpLCh0PWUub3B0aW9ucz1EZShuLGUuZXh0ZW5kT3B0aW9ucykpLm5hbWUmJih0LmNvbXBvbmVudHNbdC5uYW1lXT1lKX19cmV0dXJuIHR9ZnVuY3Rpb24gd24oZSl7dGhpcy5faW5pdChlKX1mdW5jdGlvbiBDbihlKXtlLmNpZD0wO3ZhciB0PTE7ZS5leHRlbmQ9ZnVuY3Rpb24oZSl7ZT1lfHx7fTt2YXIgbj10aGlzLHI9bi5jaWQsaT1lLl9DdG9yfHwoZS5fQ3Rvcj17fSk7aWYoaVtyXSlyZXR1cm4gaVtyXTt2YXIgbz1lLm5hbWV8fG4ub3B0aW9ucy5uYW1lLGE9ZnVuY3Rpb24oZSl7dGhpcy5faW5pdChlKX07cmV0dXJuKGEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpKS5jb25zdHJ1Y3Rvcj1hLGEuY2lkPXQrKyxhLm9wdGlvbnM9RGUobi5vcHRpb25zLGUpLGEuc3VwZXI9bixhLm9wdGlvbnMucHJvcHMmJmZ1bmN0aW9uKGUpe3ZhciB0PWUub3B0aW9ucy5wcm9wcztmb3IodmFyIG4gaW4gdClkbihlLnByb3RvdHlwZSwiX3Byb3BzIixuKX0oYSksYS5vcHRpb25zLmNvbXB1dGVkJiZmdW5jdGlvbihlKXt2YXIgdD1lLm9wdGlvbnMuY29tcHV0ZWQ7Zm9yKHZhciBuIGluIHQpbW4oZS5wcm90b3R5cGUsbix0W25dKX0oYSksYS5leHRlbmQ9bi5leHRlbmQsYS5taXhpbj1uLm1peGluLGEudXNlPW4udXNlLE0uZm9yRWFjaChmdW5jdGlvbihlKXthW2VdPW5bZV19KSxvJiYoYS5vcHRpb25zLmNvbXBvbmVudHNbb109YSksYS5zdXBlck9wdGlvbnM9bi5vcHRpb25zLGEuZXh0ZW5kT3B0aW9ucz1lLGEuc2VhbGVkT3B0aW9ucz1BKHt9LGEub3B0aW9ucyksaVtyXT1hLGF9fWZ1bmN0aW9uIHhuKGUpe3JldHVybiBlJiYoZS5DdG9yLm9wdGlvbnMubmFtZXx8ZS50YWcpfWZ1bmN0aW9uIGtuKGUsdCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/ZS5pbmRleE9mKHQpPi0xOiJzdHJpbmciPT10eXBlb2YgZT9lLnNwbGl0KCIsIikuaW5kZXhPZih0KT4tMToobj1lLCJbb2JqZWN0IFJlZ0V4cF0iPT09YS5jYWxsKG4pJiZlLnRlc3QodCkpO3ZhciBufWZ1bmN0aW9uIEFuKGUsdCl7dmFyIG49ZS5jYWNoZSxyPWUua2V5cyxpPWUuX3Zub2RlO2Zvcih2YXIgbyBpbiBuKXt2YXIgYT1uW29dO2lmKGEpe3ZhciBzPXhuKGEuY29tcG9uZW50T3B0aW9ucyk7cyYmIXQocykmJk9uKG4sbyxyLGkpfX19ZnVuY3Rpb24gT24oZSx0LG4scil7dmFyIGk9ZVt0XTshaXx8ciYmaS50YWc9PT1yLnRhZ3x8aS5jb21wb25lbnRJbnN0YW5jZS4kZGVzdHJveSgpLGVbdF09bnVsbCxoKG4sdCl9IWZ1bmN0aW9uKHQpe3QucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHQpe3ZhciBuPXRoaXM7bi5fdWlkPWJuKyssbi5faXNWdWU9ITAsdCYmdC5faXNDb21wb25lbnQ\/ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLiRvcHRpb25zPU9iamVjdC5jcmVhdGUoZS5jb25zdHJ1Y3Rvci5vcHRpb25zKSxyPXQuX3BhcmVudFZub2RlO24ucGFyZW50PXQucGFyZW50LG4uX3BhcmVudFZub2RlPXI7dmFyIGk9ci5jb21wb25lbnRPcHRpb25zO24ucHJvcHNEYXRhPWkucHJvcHNEYXRhLG4uX3BhcmVudExpc3RlbmVycz1pLmxpc3RlbmVycyxuLl9yZW5kZXJDaGlsZHJlbj1pLmNoaWxkcmVuLG4uX2NvbXBvbmVudFRhZz1pLnRhZyx0LnJlbmRlciYmKG4ucmVuZGVyPXQucmVuZGVyLG4uc3RhdGljUmVuZGVyRm5zPXQuc3RhdGljUmVuZGVyRm5zKX0obix0KTpuLiRvcHRpb25zPURlKCRuKG4uY29uc3RydWN0b3IpLHR8fHt9LG4pLG4uX3JlbmRlclByb3h5PW4sbi5fc2VsZj1uLGZ1bmN0aW9uKGUpe3ZhciB0PWUuJG9wdGlvbnMsbj10LnBhcmVudDtpZihuJiYhdC5hYnN0cmFjdCl7Zm9yKDtuLiRvcHRpb25zLmFic3RyYWN0JiZuLiRwYXJlbnQ7KW49bi4kcGFyZW50O24uJGNoaWxkcmVuLnB1c2goZSl9ZS4kcGFyZW50PW4sZS4kcm9vdD1uP24uJHJvb3Q6ZSxlLiRjaGlsZHJlbj1bXSxlLiRyZWZzPXt9LGUuX3dhdGNoZXI9bnVsbCxlLl9pbmFjdGl2ZT1udWxsLGUuX2RpcmVjdEluYWN0aXZlPSExLGUuX2lzTW91bnRlZD0hMSxlLl9pc0Rlc3Ryb3llZD0hMSxlLl9pc0JlaW5nRGVzdHJveWVkPSExfShuKSxmdW5jdGlvbihlKXtlLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxlLl9oYXNIb29rRXZlbnQ9ITE7dmFyIHQ9ZS4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzO3QmJnF0KGUsdCl9KG4pLGZ1bmN0aW9uKHQpe3QuX3Zub2RlPW51bGwsdC5fc3RhdGljVHJlZXM9bnVsbDt2YXIgbj10LiRvcHRpb25zLHI9dC4kdm5vZGU9bi5fcGFyZW50Vm5vZGUsaT1yJiZyLmNvbnRleHQ7dC4kc2xvdHM9dXQobi5fcmVuZGVyQ2hpbGRyZW4saSksdC4kc2NvcGVkU2xvdHM9ZSx0Ll9jPWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBQdCh0LGUsbixyLGksITEpfSx0LiRjcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGUsbixyLGkpe3JldHVybiBQdCh0LGUsbixyLGksITApfTt2YXIgbz1yJiZyLmRhdGE7eGUodCwiJGF0dHJzIixvJiZvLmF0dHJzfHxlLG51bGwsITApLHhlKHQsIiRsaXN0ZW5lcnMiLG4uX3BhcmVudExpc3RlbmVyc3x8ZSxudWxsLCEwKX0obiksWXQobiwiYmVmb3JlQ3JlYXRlIiksZnVuY3Rpb24oZSl7dmFyIHQ9Y3QoZS4kb3B0aW9ucy5pbmplY3QsZSk7dCYmKCRlKCExKSxPYmplY3Qua2V5cyh0KS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3hlKGUsbix0W25dKX0pLCRlKCEwKSl9KG4pLHZuKG4pLGZ1bmN0aW9uKGUpe3ZhciB0PWUuJG9wdGlvbnMucHJvdmlkZTt0JiYoZS5fcHJvdmlkZWQ9ImZ1bmN0aW9uIj09dHlwZW9mIHQ\/dC5jYWxsKGUpOnQpfShuKSxZdChuLCJjcmVhdGVkIiksbi4kb3B0aW9ucy5lbCYmbi4kbW91bnQobi4kb3B0aW9ucy5lbCl9fSh3biksZnVuY3Rpb24oZSl7dmFyIHQ9e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kYXRhfX0sbj17Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Byb3BzfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCIkZGF0YSIsdCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUucHJvdG90eXBlLCIkcHJvcHMiLG4pLGUucHJvdG90eXBlLiRzZXQ9a2UsZS5wcm90b3R5cGUuJGRlbGV0ZT1BZSxlLnByb3RvdHlwZS4kd2F0Y2g9ZnVuY3Rpb24oZSx0LG4pe2lmKHModCkpcmV0dXJuIF9uKHRoaXMsZSx0LG4pOyhuPW58fHt9KS51c2VyPSEwO3ZhciByPW5ldyBmbih0aGlzLGUsdCxuKTtpZihuLmltbWVkaWF0ZSl0cnl7dC5jYWxsKHRoaXMsci52YWx1ZSl9Y2F0Y2goZSl7UmUoZSx0aGlzLCdjYWxsYmFjayBmb3IgaW1tZWRpYXRlIHdhdGNoZXIgIicrci5leHByZXNzaW9uKyciJyl9cmV0dXJuIGZ1bmN0aW9uKCl7ci50ZWFyZG93bigpfX19KHduKSxmdW5jdGlvbihlKXt2YXIgdD0vXmhvb2s6LztlLnByb3RvdHlwZS4kb249ZnVuY3Rpb24oZSxuKXt2YXIgcj10aGlzO2lmKEFycmF5LmlzQXJyYXkoZSkpZm9yKHZhciBpPTAsbz1lLmxlbmd0aDtpPG87aSsrKXIuJG9uKGVbaV0sbik7ZWxzZShyLl9ldmVudHNbZV18fChyLl9ldmVudHNbZV09W10pKS5wdXNoKG4pLHQudGVzdChlKSYmKHIuX2hhc0hvb2tFdmVudD0hMCk7cmV0dXJuIHJ9LGUucHJvdG90eXBlLiRvbmNlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztmdW5jdGlvbiByKCl7bi4kb2ZmKGUsciksdC5hcHBseShuLGFyZ3VtZW50cyl9cmV0dXJuIHIuZm49dCxuLiRvbihlLHIpLG59LGUucHJvdG90eXBlLiRvZmY9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzO2lmKCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiBuLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSxuO2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgcj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluLiRvZmYoZVtyXSx0KTtyZXR1cm4gbn12YXIgbyxhPW4uX2V2ZW50c1tlXTtpZighYSlyZXR1cm4gbjtpZighdClyZXR1cm4gbi5fZXZlbnRzW2VdPW51bGwsbjtmb3IodmFyIHM9YS5sZW5ndGg7cy0tOylpZigobz1hW3NdKT09PXR8fG8uZm49PT10KXthLnNwbGljZShzLDEpO2JyZWFrfXJldHVybiBufSxlLnByb3RvdHlwZS4kZW1pdD1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9ldmVudHNbZV07aWYodCl7dD10Lmxlbmd0aD4xP2sodCk6dDtmb3IodmFyIG49ayhhcmd1bWVudHMsMSkscj0nZXZlbnQgaGFuZGxlciBmb3IgIicrZSsnIicsaT0wLG89dC5sZW5ndGg7aTxvO2krKylIZSh0W2ldLHRoaXMsbix0aGlzLHIpfXJldHVybiB0aGlzfX0od24pLGZ1bmN0aW9uKGUpe2UucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLHI9bi4kZWwsaT1uLl92bm9kZSxvPVp0KG4pO24uX3Zub2RlPWUsbi4kZWw9aT9uLl9fcGF0Y2hfXyhpLGUpOm4uX19wYXRjaF9fKG4uJGVsLGUsdCwhMSksbygpLHImJihyLl9fdnVlX189bnVsbCksbi4kZWwmJihuLiRlbC5fX3Z1ZV9fPW4pLG4uJHZub2RlJiZuLiRwYXJlbnQmJm4uJHZub2RlPT09bi4kcGFyZW50Ll92bm9kZSYmKG4uJHBhcmVudC4kZWw9bi4kZWwpfSxlLnByb3RvdHlwZS4kZm9yY2VVcGRhdGU9ZnVuY3Rpb24oKXt0aGlzLl93YXRjaGVyJiZ0aGlzLl93YXRjaGVyLnVwZGF0ZSgpfSxlLnByb3RvdHlwZS4kZGVzdHJveT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYoIWUuX2lzQmVpbmdEZXN0cm95ZWQpe1l0KGUsImJlZm9yZURlc3Ryb3kiKSxlLl9pc0JlaW5nRGVzdHJveWVkPSEwO3ZhciB0PWUuJHBhcmVudDshdHx8dC5faXNCZWluZ0Rlc3Ryb3llZHx8ZS4kb3B0aW9ucy5hYnN0cmFjdHx8aCh0LiRjaGlsZHJlbixlKSxlLl93YXRjaGVyJiZlLl93YXRjaGVyLnRlYXJkb3duKCk7Zm9yKHZhciBuPWUuX3dhdGNoZXJzLmxlbmd0aDtuLS07KWUuX3dhdGNoZXJzW25dLnRlYXJkb3duKCk7ZS5fZGF0YS5fX29iX18mJmUuX2RhdGEuX19vYl9fLnZtQ291bnQtLSxlLl9pc0Rlc3Ryb3llZD0hMCxlLl9fcGF0Y2hfXyhlLl92bm9kZSxudWxsKSxZdChlLCJkZXN0cm95ZWQiKSxlLiRvZmYoKSxlLiRlbCYmKGUuJGVsLl9fdnVlX189bnVsbCksZS4kdm5vZGUmJihlLiR2bm9kZS5wYXJlbnQ9bnVsbCl9fX0od24pLGZ1bmN0aW9uKGUpe1N0KGUucHJvdG90eXBlKSxlLnByb3RvdHlwZS4kbmV4dFRpY2s9ZnVuY3Rpb24oZSl7cmV0dXJuIFllKGUsdGhpcyl9LGUucHJvdG90eXBlLl9yZW5kZXI9ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMsbj10LiRvcHRpb25zLHI9bi5yZW5kZXIsaT1uLl9wYXJlbnRWbm9kZTtpJiYodC4kc2NvcGVkU2xvdHM9ZnQoaS5kYXRhLnNjb3BlZFNsb3RzLHQuJHNsb3RzLHQuJHNjb3BlZFNsb3RzKSksdC4kdm5vZGU9aTt0cnl7SHQ9dCxlPXIuY2FsbCh0Ll9yZW5kZXJQcm94eSx0LiRjcmVhdGVFbGVtZW50KX1jYXRjaChuKXtSZShuLHQsInJlbmRlciIpLGU9dC5fdm5vZGV9ZmluYWxseXtIdD1udWxsfXJldHVybiBBcnJheS5pc0FycmF5KGUpJiYxPT09ZS5sZW5ndGgmJihlPWVbMF0pLGUgaW5zdGFuY2VvZiBwZXx8KGU9dmUoKSksZS5wYXJlbnQ9aSxlfX0od24pO3ZhciBTbj1bU3RyaW5nLFJlZ0V4cCxBcnJheV0sVG49e0tlZXBBbGl2ZTp7bmFtZToia2VlcC1hbGl2ZSIsYWJzdHJhY3Q6ITAscHJvcHM6e2luY2x1ZGU6U24sZXhjbHVkZTpTbixtYXg6W1N0cmluZyxOdW1iZXJdfSxjcmVhdGVkOmZ1bmN0aW9uKCl7dGhpcy5jYWNoZT1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMua2V5cz1bXX0sZGVzdHJveWVkOmZ1bmN0aW9uKCl7Zm9yKHZhciBlIGluIHRoaXMuY2FjaGUpT24odGhpcy5jYWNoZSxlLHRoaXMua2V5cyl9LG1vdW50ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuJHdhdGNoKCJpbmNsdWRlIixmdW5jdGlvbih0KXtBbihlLGZ1bmN0aW9uKGUpe3JldHVybiBrbih0LGUpfSl9KSx0aGlzLiR3YXRjaCgiZXhjbHVkZSIsZnVuY3Rpb24odCl7QW4oZSxmdW5jdGlvbihlKXtyZXR1cm4ha24odCxlKX0pfSl9LHJlbmRlcjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuJHNsb3RzLmRlZmF1bHQsdD16dChlKSxuPXQmJnQuY29tcG9uZW50T3B0aW9ucztpZihuKXt2YXIgcj14bihuKSxpPXRoaXMuaW5jbHVkZSxvPXRoaXMuZXhjbHVkZTtpZihpJiYoIXJ8fCFrbihpLHIpKXx8byYmciYma24obyxyKSlyZXR1cm4gdDt2YXIgYT10aGlzLmNhY2hlLHM9dGhpcy5rZXlzLGM9bnVsbD09dC5rZXk\/bi5DdG9yLmNpZCsobi50YWc\/Ijo6IituLnRhZzoiIik6dC5rZXk7YVtjXT8odC5jb21wb25lbnRJbnN0YW5jZT1hW2NdLmNvbXBvbmVudEluc3RhbmNlLGgocyxjKSxzLnB1c2goYykpOihhW2NdPXQscy5wdXNoKGMpLHRoaXMubWF4JiZzLmxlbmd0aD5wYXJzZUludCh0aGlzLm1heCkmJk9uKGEsc1swXSxzLHRoaXMuX3Zub2RlKSksdC5kYXRhLmtlZXBBbGl2ZT0hMH1yZXR1cm4gdHx8ZSYmZVswXX19fTshZnVuY3Rpb24oZSl7dmFyIHQ9e2dldDpmdW5jdGlvbigpe3JldHVybiBGfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImNvbmZpZyIsdCksZS51dGlsPXt3YXJuOmFlLGV4dGVuZDpBLG1lcmdlT3B0aW9uczpEZSxkZWZpbmVSZWFjdGl2ZTp4ZX0sZS5zZXQ9a2UsZS5kZWxldGU9QWUsZS5uZXh0VGljaz1ZZSxlLm9ic2VydmFibGU9ZnVuY3Rpb24oZSl7cmV0dXJuIENlKGUpLGV9LGUub3B0aW9ucz1PYmplY3QuY3JlYXRlKG51bGwpLE0uZm9yRWFjaChmdW5jdGlvbih0KXtlLm9wdGlvbnNbdCsicyJdPU9iamVjdC5jcmVhdGUobnVsbCl9KSxlLm9wdGlvbnMuX2Jhc2U9ZSxBKGUub3B0aW9ucy5jb21wb25lbnRzLFRuKSxmdW5jdGlvbihlKXtlLnVzZT1mdW5jdGlvbihlKXt2YXIgdD10aGlzLl9pbnN0YWxsZWRQbHVnaW5zfHwodGhpcy5faW5zdGFsbGVkUGx1Z2lucz1bXSk7aWYodC5pbmRleE9mKGUpPi0xKXJldHVybiB0aGlzO3ZhciBuPWsoYXJndW1lbnRzLDEpO3JldHVybiBuLnVuc2hpZnQodGhpcyksImZ1bmN0aW9uIj09dHlwZW9mIGUuaW5zdGFsbD9lLmluc3RhbGwuYXBwbHkoZSxuKToiZnVuY3Rpb24iPT10eXBlb2YgZSYmZS5hcHBseShudWxsLG4pLHQucHVzaChlKSx0aGlzfX0oZSksZnVuY3Rpb24oZSl7ZS5taXhpbj1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vcHRpb25zPURlKHRoaXMub3B0aW9ucyxlKSx0aGlzfX0oZSksQ24oZSksZnVuY3Rpb24oZSl7TS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2VbdF09ZnVuY3Rpb24oZSxuKXtyZXR1cm4gbj8oImNvbXBvbmVudCI9PT10JiZzKG4pJiYobi5uYW1lPW4ubmFtZXx8ZSxuPXRoaXMub3B0aW9ucy5fYmFzZS5leHRlbmQobikpLCJkaXJlY3RpdmUiPT09dCYmImZ1bmN0aW9uIj09dHlwZW9mIG4mJihuPXtiaW5kOm4sdXBkYXRlOm59KSx0aGlzLm9wdGlvbnNbdCsicyJdW2VdPW4sbik6dGhpcy5vcHRpb25zW3QrInMiXVtlXX19KX0oZSl9KHduKSxPYmplY3QuZGVmaW5lUHJvcGVydHkod24ucHJvdG90eXBlLCIkaXNTZXJ2ZXIiLHtnZXQ6dGV9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkod24ucHJvdG90eXBlLCIkc3NyQ29udGV4dCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLiR2bm9kZSYmdGhpcy4kdm5vZGUuc3NyQ29udGV4dH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkod24sIkZ1bmN0aW9uYWxSZW5kZXJDb250ZXh0Iix7dmFsdWU6VHR9KSx3bi52ZXJzaW9uPSIyLjYuMTEiO3ZhciBFbj1wKCJzdHlsZSxjbGFzcyIpLE5uPXAoImlucHV0LHRleHRhcmVhLG9wdGlvbixzZWxlY3QscHJvZ3Jlc3MiKSxqbj1mdW5jdGlvbihlLHQsbil7cmV0dXJuInZhbHVlIj09PW4mJk5uKGUpJiYiYnV0dG9uIiE9PXR8fCJzZWxlY3RlZCI9PT1uJiYib3B0aW9uIj09PWV8fCJjaGVja2VkIj09PW4mJiJpbnB1dCI9PT1lfHwibXV0ZWQiPT09biYmInZpZGVvIj09PWV9LERuPXAoImNvbnRlbnRlZGl0YWJsZSxkcmFnZ2FibGUsc3BlbGxjaGVjayIpLExuPXAoImV2ZW50cyxjYXJldCx0eXBpbmcscGxhaW50ZXh0LW9ubHkiKSxNbj1mdW5jdGlvbihlLHQpe3JldHVybiBIbih0KXx8ImZhbHNlIj09PXQ\/ImZhbHNlIjoiY29udGVudGVkaXRhYmxlIj09PWUmJkxuKHQpP3Q6InRydWUifSxJbj1wKCJhbGxvd2Z1bGxzY3JlZW4sYXN5bmMsYXV0b2ZvY3VzLGF1dG9wbGF5LGNoZWNrZWQsY29tcGFjdCxjb250cm9scyxkZWNsYXJlLGRlZmF1bHQsZGVmYXVsdGNoZWNrZWQsZGVmYXVsdG11dGVkLGRlZmF1bHRzZWxlY3RlZCxkZWZlcixkaXNhYmxlZCxlbmFibGVkLGZvcm1ub3ZhbGlkYXRlLGhpZGRlbixpbmRldGVybWluYXRlLGluZXJ0LGlzbWFwLGl0ZW1zY29wZSxsb29wLG11bHRpcGxlLG11dGVkLG5vaHJlZixub3Jlc2l6ZSxub3NoYWRlLG5vdmFsaWRhdGUsbm93cmFwLG9wZW4scGF1c2VvbmV4aXQscmVhZG9ubHkscmVxdWlyZWQscmV2ZXJzZWQsc2NvcGVkLHNlYW1sZXNzLHNlbGVjdGVkLHNvcnRhYmxlLHRyYW5zbGF0ZSx0cnVlc3BlZWQsdHlwZW11c3RtYXRjaCx2aXNpYmxlIiksRm49Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLFBuPWZ1bmN0aW9uKGUpe3JldHVybiI6Ij09PWUuY2hhckF0KDUpJiYieGxpbmsiPT09ZS5zbGljZSgwLDUpfSxSbj1mdW5jdGlvbihlKXtyZXR1cm4gUG4oZSk\/ZS5zbGljZSg2LGUubGVuZ3RoKToiIn0sSG49ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWV8fCExPT09ZX07ZnVuY3Rpb24gQm4oZSl7Zm9yKHZhciB0PWUuZGF0YSxyPWUsaT1lO24oaS5jb21wb25lbnRJbnN0YW5jZSk7KShpPWkuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlKSYmaS5kYXRhJiYodD1VbihpLmRhdGEsdCkpO2Zvcig7bihyPXIucGFyZW50KTspciYmci5kYXRhJiYodD1Vbih0LHIuZGF0YSkpO3JldHVybiBmdW5jdGlvbihlLHQpe2lmKG4oZSl8fG4odCkpcmV0dXJuIHpuKGUsVm4odCkpO3JldHVybiIifSh0LnN0YXRpY0NsYXNzLHQuY2xhc3MpfWZ1bmN0aW9uIFVuKGUsdCl7cmV0dXJue3N0YXRpY0NsYXNzOnpuKGUuc3RhdGljQ2xhc3MsdC5zdGF0aWNDbGFzcyksY2xhc3M6bihlLmNsYXNzKT9bZS5jbGFzcyx0LmNsYXNzXTp0LmNsYXNzfX1mdW5jdGlvbiB6bihlLHQpe3JldHVybiBlP3Q\/ZSsiICIrdDplOnR8fCIifWZ1bmN0aW9uIFZuKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2Z1bmN0aW9uKGUpe2Zvcih2YXIgdCxyPSIiLGk9MCxvPWUubGVuZ3RoO2k8bztpKyspbih0PVZuKGVbaV0pKSYmIiIhPT10JiYociYmKHIrPSIgIikscis9dCk7cmV0dXJuIHJ9KGUpOm8oZSk\/ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7Zm9yKHZhciBuIGluIGUpZVtuXSYmKHQmJih0Kz0iICIpLHQrPW4pO3JldHVybiB0fShlKToic3RyaW5nIj09dHlwZW9mIGU\/ZToiIn12YXIgS249e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwifSxKbj1wKCJodG1sLGJvZHksYmFzZSxoZWFkLGxpbmssbWV0YSxzdHlsZSx0aXRsZSxhZGRyZXNzLGFydGljbGUsYXNpZGUsZm9vdGVyLGhlYWRlcixoMSxoMixoMyxoNCxoNSxoNixoZ3JvdXAsbmF2LHNlY3Rpb24sZGl2LGRkLGRsLGR0LGZpZ2NhcHRpb24sZmlndXJlLHBpY3R1cmUsaHIsaW1nLGxpLG1haW4sb2wscCxwcmUsdWwsYSxiLGFiYnIsYmRpLGJkbyxicixjaXRlLGNvZGUsZGF0YSxkZm4sZW0saSxrYmQsbWFyayxxLHJwLHJ0LHJ0YyxydWJ5LHMsc2FtcCxzbWFsbCxzcGFuLHN0cm9uZyxzdWIsc3VwLHRpbWUsdSx2YXIsd2JyLGFyZWEsYXVkaW8sbWFwLHRyYWNrLHZpZGVvLGVtYmVkLG9iamVjdCxwYXJhbSxzb3VyY2UsY2FudmFzLHNjcmlwdCxub3NjcmlwdCxkZWwsaW5zLGNhcHRpb24sY29sLGNvbGdyb3VwLHRhYmxlLHRoZWFkLHRib2R5LHRkLHRoLHRyLGJ1dHRvbixkYXRhbGlzdCxmaWVsZHNldCxmb3JtLGlucHV0LGxhYmVsLGxlZ2VuZCxtZXRlcixvcHRncm91cCxvcHRpb24sb3V0cHV0LHByb2dyZXNzLHNlbGVjdCx0ZXh0YXJlYSxkZXRhaWxzLGRpYWxvZyxtZW51LG1lbnVpdGVtLHN1bW1hcnksY29udGVudCxlbGVtZW50LHNoYWRvdyx0ZW1wbGF0ZSxibG9ja3F1b3RlLGlmcmFtZSx0Zm9vdCIpLHFuPXAoInN2ZyxhbmltYXRlLGNpcmNsZSxjbGlwcGF0aCxjdXJzb3IsZGVmcyxkZXNjLGVsbGlwc2UsZmlsdGVyLGZvbnQtZmFjZSxmb3JlaWduT2JqZWN0LGcsZ2x5cGgsaW1hZ2UsbGluZSxtYXJrZXIsbWFzayxtaXNzaW5nLWdseXBoLHBhdGgscGF0dGVybixwb2x5Z29uLHBvbHlsaW5lLHJlY3Qsc3dpdGNoLHN5bWJvbCx0ZXh0LHRleHRwYXRoLHRzcGFuLHVzZSx2aWV3IiwhMCksV249ZnVuY3Rpb24oZSl7cmV0dXJuIEpuKGUpfHxxbihlKX07ZnVuY3Rpb24gWm4oZSl7cmV0dXJuIHFuKGUpPyJzdmciOiJtYXRoIj09PWU\/Im1hdGgiOnZvaWQgMH12YXIgR249T2JqZWN0LmNyZWF0ZShudWxsKTt2YXIgWG49cCgidGV4dCxudW1iZXIscGFzc3dvcmQsc2VhcmNoLGVtYWlsLHRlbCx1cmwiKTtmdW5jdGlvbiBZbihlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoZSk7cmV0dXJuIHR8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpfXJldHVybiBlfXZhciBRbj1PYmplY3QuZnJlZXplKHtjcmVhdGVFbGVtZW50OmZ1bmN0aW9uKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4ic2VsZWN0IiE9PWU\/bjoodC5kYXRhJiZ0LmRhdGEuYXR0cnMmJnZvaWQgMCE9PXQuZGF0YS5hdHRycy5tdWx0aXBsZSYmbi5zZXRBdHRyaWJ1dGUoIm11bHRpcGxlIiwibXVsdGlwbGUiKSxuKX0sY3JlYXRlRWxlbWVudE5TOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhLbltlXSx0KX0sY3JlYXRlVGV4dE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuIGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGUpfSxjcmVhdGVDb21tZW50OmZ1bmN0aW9uKGUpe3JldHVybiBkb2N1bWVudC5jcmVhdGVDb21tZW50KGUpfSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oZSx0LG4pe2UuaW5zZXJ0QmVmb3JlKHQsbil9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKGUsdCl7ZS5yZW1vdmVDaGlsZCh0KX0sYXBwZW5kQ2hpbGQ6ZnVuY3Rpb24oZSx0KXtlLmFwcGVuZENoaWxkKHQpfSxwYXJlbnROb2RlOmZ1bmN0aW9uKGUpe3JldHVybiBlLnBhcmVudE5vZGV9LG5leHRTaWJsaW5nOmZ1bmN0aW9uKGUpe3JldHVybiBlLm5leHRTaWJsaW5nfSx0YWdOYW1lOmZ1bmN0aW9uKGUpe3JldHVybiBlLnRhZ05hbWV9LHNldFRleHRDb250ZW50OmZ1bmN0aW9uKGUsdCl7ZS50ZXh0Q29udGVudD10fSxzZXRTdHlsZVNjb3BlOmZ1bmN0aW9uKGUsdCl7ZS5zZXRBdHRyaWJ1dGUodCwiIil9fSksZXI9e2NyZWF0ZTpmdW5jdGlvbihlLHQpe3RyKHQpfSx1cGRhdGU6ZnVuY3Rpb24oZSx0KXtlLmRhdGEucmVmIT09dC5kYXRhLnJlZiYmKHRyKGUsITApLHRyKHQpKX0sZGVzdHJveTpmdW5jdGlvbihlKXt0cihlLCEwKX19O2Z1bmN0aW9uIHRyKGUsdCl7dmFyIHI9ZS5kYXRhLnJlZjtpZihuKHIpKXt2YXIgaT1lLmNvbnRleHQsbz1lLmNvbXBvbmVudEluc3RhbmNlfHxlLmVsbSxhPWkuJHJlZnM7dD9BcnJheS5pc0FycmF5KGFbcl0pP2goYVtyXSxvKTphW3JdPT09byYmKGFbcl09dm9pZCAwKTplLmRhdGEucmVmSW5Gb3I\/QXJyYXkuaXNBcnJheShhW3JdKT9hW3JdLmluZGV4T2Yobyk8MCYmYVtyXS5wdXNoKG8pOmFbcl09W29dOmFbcl09b319dmFyIG5yPW5ldyBwZSgiIix7fSxbXSkscnI9WyJjcmVhdGUiLCJhY3RpdmF0ZSIsInVwZGF0ZSIsInJlbW92ZSIsImRlc3Ryb3kiXTtmdW5jdGlvbiBpcihlLGkpe3JldHVybiBlLmtleT09PWkua2V5JiYoZS50YWc9PT1pLnRhZyYmZS5pc0NvbW1lbnQ9PT1pLmlzQ29tbWVudCYmbihlLmRhdGEpPT09bihpLmRhdGEpJiZmdW5jdGlvbihlLHQpe2lmKCJpbnB1dCIhPT1lLnRhZylyZXR1cm4hMDt2YXIgcixpPW4ocj1lLmRhdGEpJiZuKHI9ci5hdHRycykmJnIudHlwZSxvPW4ocj10LmRhdGEpJiZuKHI9ci5hdHRycykmJnIudHlwZTtyZXR1cm4gaT09PW98fFhuKGkpJiZYbihvKX0oZSxpKXx8cihlLmlzQXN5bmNQbGFjZWhvbGRlcikmJmUuYXN5bmNGYWN0b3J5PT09aS5hc3luY0ZhY3RvcnkmJnQoaS5hc3luY0ZhY3RvcnkuZXJyb3IpKX1mdW5jdGlvbiBvcihlLHQscil7dmFyIGksbyxhPXt9O2ZvcihpPXQ7aTw9cjsrK2kpbihvPWVbaV0ua2V5KSYmKGFbb109aSk7cmV0dXJuIGF9dmFyIGFyPXtjcmVhdGU6c3IsdXBkYXRlOnNyLGRlc3Ryb3k6ZnVuY3Rpb24oZSl7c3IoZSxucil9fTtmdW5jdGlvbiBzcihlLHQpeyhlLmRhdGEuZGlyZWN0aXZlc3x8dC5kYXRhLmRpcmVjdGl2ZXMpJiZmdW5jdGlvbihlLHQpe3ZhciBuLHIsaSxvPWU9PT1ucixhPXQ9PT1ucixzPXVyKGUuZGF0YS5kaXJlY3RpdmVzLGUuY29udGV4dCksYz11cih0LmRhdGEuZGlyZWN0aXZlcyx0LmNvbnRleHQpLHU9W10sbD1bXTtmb3IobiBpbiBjKXI9c1tuXSxpPWNbbl0scj8oaS5vbGRWYWx1ZT1yLnZhbHVlLGkub2xkQXJnPXIuYXJnLGZyKGksInVwZGF0ZSIsdCxlKSxpLmRlZiYmaS5kZWYuY29tcG9uZW50VXBkYXRlZCYmbC5wdXNoKGkpKTooZnIoaSwiYmluZCIsdCxlKSxpLmRlZiYmaS5kZWYuaW5zZXJ0ZWQmJnUucHVzaChpKSk7aWYodS5sZW5ndGgpe3ZhciBmPWZ1bmN0aW9uKCl7Zm9yKHZhciBuPTA7bjx1Lmxlbmd0aDtuKyspZnIodVtuXSwiaW5zZXJ0ZWQiLHQsZSl9O28\/aXQodCwiaW5zZXJ0IixmKTpmKCl9bC5sZW5ndGgmJml0KHQsInBvc3RwYXRjaCIsZnVuY3Rpb24oKXtmb3IodmFyIG49MDtuPGwubGVuZ3RoO24rKylmcihsW25dLCJjb21wb25lbnRVcGRhdGVkIix0LGUpfSk7aWYoIW8pZm9yKG4gaW4gcyljW25dfHxmcihzW25dLCJ1bmJpbmQiLGUsZSxhKX0oZSx0KX12YXIgY3I9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiB1cihlLHQpe3ZhciBuLHIsaT1PYmplY3QuY3JlYXRlKG51bGwpO2lmKCFlKXJldHVybiBpO2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspKHI9ZVtuXSkubW9kaWZpZXJzfHwoci5tb2RpZmllcnM9Y3IpLGlbbHIocildPXIsci5kZWY9TGUodC4kb3B0aW9ucywiZGlyZWN0aXZlcyIsci5uYW1lKTtyZXR1cm4gaX1mdW5jdGlvbiBscihlKXtyZXR1cm4gZS5yYXdOYW1lfHxlLm5hbWUrIi4iK09iamVjdC5rZXlzKGUubW9kaWZpZXJzfHx7fSkuam9pbigiLiIpfWZ1bmN0aW9uIGZyKGUsdCxuLHIsaSl7dmFyIG89ZS5kZWYmJmUuZGVmW3RdO2lmKG8pdHJ5e28obi5lbG0sZSxuLHIsaSl9Y2F0Y2gocil7UmUocixuLmNvbnRleHQsImRpcmVjdGl2ZSAiK2UubmFtZSsiICIrdCsiIGhvb2siKX19dmFyIHByPVtlcixhcl07ZnVuY3Rpb24gZHIoZSxyKXt2YXIgaT1yLmNvbXBvbmVudE9wdGlvbnM7aWYoIShuKGkpJiYhMT09PWkuQ3Rvci5vcHRpb25zLmluaGVyaXRBdHRyc3x8dChlLmRhdGEuYXR0cnMpJiZ0KHIuZGF0YS5hdHRycykpKXt2YXIgbyxhLHM9ci5lbG0sYz1lLmRhdGEuYXR0cnN8fHt9LHU9ci5kYXRhLmF0dHJzfHx7fTtmb3IobyBpbiBuKHUuX19vYl9fKSYmKHU9ci5kYXRhLmF0dHJzPUEoe30sdSkpLHUpYT11W29dLGNbb10hPT1hJiZ2cihzLG8sYSk7Zm9yKG8gaW4ocXx8WikmJnUudmFsdWUhPT1jLnZhbHVlJiZ2cihzLCJ2YWx1ZSIsdS52YWx1ZSksYyl0KHVbb10pJiYoUG4obyk\/cy5yZW1vdmVBdHRyaWJ1dGVOUyhGbixSbihvKSk6RG4obyl8fHMucmVtb3ZlQXR0cmlidXRlKG8pKX19ZnVuY3Rpb24gdnIoZSx0LG4pe2UudGFnTmFtZS5pbmRleE9mKCItIik+LTE\/aHIoZSx0LG4pOkluKHQpP0huKG4pP2UucmVtb3ZlQXR0cmlidXRlKHQpOihuPSJhbGxvd2Z1bGxzY3JlZW4iPT09dCYmIkVNQkVEIj09PWUudGFnTmFtZT8idHJ1ZSI6dCxlLnNldEF0dHJpYnV0ZSh0LG4pKTpEbih0KT9lLnNldEF0dHJpYnV0ZSh0LE1uKHQsbikpOlBuKHQpP0huKG4pP2UucmVtb3ZlQXR0cmlidXRlTlMoRm4sUm4odCkpOmUuc2V0QXR0cmlidXRlTlMoRm4sdCxuKTpocihlLHQsbil9ZnVuY3Rpb24gaHIoZSx0LG4pe2lmKEhuKG4pKWUucmVtb3ZlQXR0cmlidXRlKHQpO2Vsc2V7aWYocSYmIVcmJiJURVhUQVJFQSI9PT1lLnRhZ05hbWUmJiJwbGFjZWhvbGRlciI9PT10JiYiIiE9PW4mJiFlLl9faWVwaCl7dmFyIHI9ZnVuY3Rpb24odCl7dC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImlucHV0IixyKX07ZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsciksZS5fX2llcGg9ITB9ZS5zZXRBdHRyaWJ1dGUodCxuKX19dmFyIG1yPXtjcmVhdGU6ZHIsdXBkYXRlOmRyfTtmdW5jdGlvbiB5cihlLHIpe3ZhciBpPXIuZWxtLG89ci5kYXRhLGE9ZS5kYXRhO2lmKCEodChvLnN0YXRpY0NsYXNzKSYmdChvLmNsYXNzKSYmKHQoYSl8fHQoYS5zdGF0aWNDbGFzcykmJnQoYS5jbGFzcykpKSl7dmFyIHM9Qm4ociksYz1pLl90cmFuc2l0aW9uQ2xhc3NlcztuKGMpJiYocz16bihzLFZuKGMpKSkscyE9PWkuX3ByZXZDbGFzcyYmKGkuc2V0QXR0cmlidXRlKCJjbGFzcyIscyksaS5fcHJldkNsYXNzPXMpfX12YXIgZ3IsX3IsYnIsJHIsd3IsQ3IseHI9e2NyZWF0ZTp5cix1cGRhdGU6eXJ9LGtyPS9bXHcpLitcLV8kXF1dLztmdW5jdGlvbiBBcihlKXt2YXIgdCxuLHIsaSxvLGE9ITEscz0hMSxjPSExLHU9ITEsbD0wLGY9MCxwPTAsZD0wO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspaWYobj10LHQ9ZS5jaGFyQ29kZUF0KHIpLGEpMzk9PT10JiY5MiE9PW4mJihhPSExKTtlbHNlIGlmKHMpMzQ9PT10JiY5MiE9PW4mJihzPSExKTtlbHNlIGlmKGMpOTY9PT10JiY5MiE9PW4mJihjPSExKTtlbHNlIGlmKHUpNDc9PT10JiY5MiE9PW4mJih1PSExKTtlbHNlIGlmKDEyNCE9PXR8fDEyND09PWUuY2hhckNvZGVBdChyKzEpfHwxMjQ9PT1lLmNoYXJDb2RlQXQoci0xKXx8bHx8Znx8cCl7c3dpdGNoKHQpe2Nhc2UgMzQ6cz0hMDticmVhaztjYXNlIDM5OmE9ITA7YnJlYWs7Y2FzZSA5NjpjPSEwO2JyZWFrO2Nhc2UgNDA6cCsrO2JyZWFrO2Nhc2UgNDE6cC0tO2JyZWFrO2Nhc2UgOTE6ZisrO2JyZWFrO2Nhc2UgOTM6Zi0tO2JyZWFrO2Nhc2UgMTIzOmwrKzticmVhaztjYXNlIDEyNTpsLS19aWYoNDc9PT10KXtmb3IodmFyIHY9ci0xLGg9dm9pZCAwO3Y+PTAmJiIgIj09PShoPWUuY2hhckF0KHYpKTt2LS0pO2gmJmtyLnRlc3QoaCl8fCh1PSEwKX19ZWxzZSB2b2lkIDA9PT1pPyhkPXIrMSxpPWUuc2xpY2UoMCxyKS50cmltKCkpOm0oKTtmdW5jdGlvbiBtKCl7KG98fChvPVtdKSkucHVzaChlLnNsaWNlKGQscikudHJpbSgpKSxkPXIrMX1pZih2b2lkIDA9PT1pP2k9ZS5zbGljZSgwLHIpLnRyaW0oKTowIT09ZCYmbSgpLG8pZm9yKHI9MDtyPG8ubGVuZ3RoO3IrKylpPU9yKGksb1tyXSk7cmV0dXJuIGl9ZnVuY3Rpb24gT3IoZSx0KXt2YXIgbj10LmluZGV4T2YoIigiKTtpZihuPDApcmV0dXJuJ19mKCInK3QrJyIpKCcrZSsiKSI7dmFyIHI9dC5zbGljZSgwLG4pLGk9dC5zbGljZShuKzEpO3JldHVybidfZigiJytyKyciKSgnK2UrKCIpIiE9PWk\/IiwiK2k6aSl9ZnVuY3Rpb24gU3IoZSx0KXtjb25zb2xlLmVycm9yKCJbVnVlIGNvbXBpbGVyXTogIitlKX1mdW5jdGlvbiBUcihlLHQpe3JldHVybiBlP2UubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBlW3RdfSkuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiBlfSk6W119ZnVuY3Rpb24gRXIoZSx0LG4scixpKXsoZS5wcm9wc3x8KGUucHJvcHM9W10pKS5wdXNoKFJyKHtuYW1lOnQsdmFsdWU6bixkeW5hbWljOml9LHIpKSxlLnBsYWluPSExfWZ1bmN0aW9uIE5yKGUsdCxuLHIsaSl7KGk\/ZS5keW5hbWljQXR0cnN8fChlLmR5bmFtaWNBdHRycz1bXSk6ZS5hdHRyc3x8KGUuYXR0cnM9W10pKS5wdXNoKFJyKHtuYW1lOnQsdmFsdWU6bixkeW5hbWljOml9LHIpKSxlLnBsYWluPSExfWZ1bmN0aW9uIGpyKGUsdCxuLHIpe2UuYXR0cnNNYXBbdF09bixlLmF0dHJzTGlzdC5wdXNoKFJyKHtuYW1lOnQsdmFsdWU6bn0scikpfWZ1bmN0aW9uIERyKGUsdCxuLHIsaSxvLGEscyl7KGUuZGlyZWN0aXZlc3x8KGUuZGlyZWN0aXZlcz1bXSkpLnB1c2goUnIoe25hbWU6dCxyYXdOYW1lOm4sdmFsdWU6cixhcmc6aSxpc0R5bmFtaWNBcmc6byxtb2RpZmllcnM6YX0scykpLGUucGxhaW49ITF9ZnVuY3Rpb24gTHIoZSx0LG4pe3JldHVybiBuPyJfcCgiK3QrJywiJytlKyciKSc6ZSt0fWZ1bmN0aW9uIE1yKHQsbixyLGksbyxhLHMsYyl7dmFyIHU7KGk9aXx8ZSkucmlnaHQ\/Yz9uPSIoIituKyIpPT09J2NsaWNrJz8nY29udGV4dG1lbnUnOigiK24rIikiOiJjbGljayI9PT1uJiYobj0iY29udGV4dG1lbnUiLGRlbGV0ZSBpLnJpZ2h0KTppLm1pZGRsZSYmKGM\/bj0iKCIrbisiKT09PSdjbGljayc\/J21vdXNldXAnOigiK24rIikiOiJjbGljayI9PT1uJiYobj0ibW91c2V1cCIpKSxpLmNhcHR1cmUmJihkZWxldGUgaS5jYXB0dXJlLG49THIoIiEiLG4sYykpLGkub25jZSYmKGRlbGV0ZSBpLm9uY2Usbj1McigifiIsbixjKSksaS5wYXNzaXZlJiYoZGVsZXRlIGkucGFzc2l2ZSxuPUxyKCImIixuLGMpKSxpLm5hdGl2ZT8oZGVsZXRlIGkubmF0aXZlLHU9dC5uYXRpdmVFdmVudHN8fCh0Lm5hdGl2ZUV2ZW50cz17fSkpOnU9dC5ldmVudHN8fCh0LmV2ZW50cz17fSk7dmFyIGw9UnIoe3ZhbHVlOnIudHJpbSgpLGR5bmFtaWM6Y30scyk7aSE9PWUmJihsLm1vZGlmaWVycz1pKTt2YXIgZj11W25dO0FycmF5LmlzQXJyYXkoZik\/bz9mLnVuc2hpZnQobCk6Zi5wdXNoKGwpOnVbbl09Zj9vP1tsLGZdOltmLGxdOmwsdC5wbGFpbj0hMX1mdW5jdGlvbiBJcihlLHQsbil7dmFyIHI9RnIoZSwiOiIrdCl8fEZyKGUsInYtYmluZDoiK3QpO2lmKG51bGwhPXIpcmV0dXJuIEFyKHIpO2lmKCExIT09bil7dmFyIGk9RnIoZSx0KTtpZihudWxsIT1pKXJldHVybiBKU09OLnN0cmluZ2lmeShpKX19ZnVuY3Rpb24gRnIoZSx0LG4pe3ZhciByO2lmKG51bGwhPShyPWUuYXR0cnNNYXBbdF0pKWZvcih2YXIgaT1lLmF0dHJzTGlzdCxvPTAsYT1pLmxlbmd0aDtvPGE7bysrKWlmKGlbb10ubmFtZT09PXQpe2kuc3BsaWNlKG8sMSk7YnJlYWt9cmV0dXJuIG4mJmRlbGV0ZSBlLmF0dHJzTWFwW3RdLHJ9ZnVuY3Rpb24gUHIoZSx0KXtmb3IodmFyIG49ZS5hdHRyc0xpc3Qscj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl7dmFyIG89bltyXTtpZih0LnRlc3Qoby5uYW1lKSlyZXR1cm4gbi5zcGxpY2UociwxKSxvfX1mdW5jdGlvbiBScihlLHQpe3JldHVybiB0JiYobnVsbCE9dC5zdGFydCYmKGUuc3RhcnQ9dC5zdGFydCksbnVsbCE9dC5lbmQmJihlLmVuZD10LmVuZCkpLGV9ZnVuY3Rpb24gSHIoZSx0LG4pe3ZhciByPW58fHt9LGk9ci5udW1iZXIsbz0iJCR2IjtyLnRyaW0mJihvPSIodHlwZW9mICQkdiA9PT0gJ3N0cmluZyc\/ICQkdi50cmltKCk6ICQkdikiKSxpJiYobz0iX24oIitvKyIpIik7dmFyIGE9QnIodCxvKTtlLm1vZGVsPXt2YWx1ZToiKCIrdCsiKSIsZXhwcmVzc2lvbjpKU09OLnN0cmluZ2lmeSh0KSxjYWxsYmFjazoiZnVuY3Rpb24gKCQkdikgeyIrYSsifSJ9fWZ1bmN0aW9uIEJyKGUsdCl7dmFyIG49ZnVuY3Rpb24oZSl7aWYoZT1lLnRyaW0oKSxncj1lLmxlbmd0aCxlLmluZGV4T2YoIlsiKTwwfHxlLmxhc3RJbmRleE9mKCJdIik8Z3ItMSlyZXR1cm4oJHI9ZS5sYXN0SW5kZXhPZigiLiIpKT4tMT97ZXhwOmUuc2xpY2UoMCwkciksa2V5OiciJytlLnNsaWNlKCRyKzEpKyciJ306e2V4cDplLGtleTpudWxsfTtfcj1lLCRyPXdyPUNyPTA7Zm9yKDshenIoKTspVnIoYnI9VXIoKSk\/SnIoYnIpOjkxPT09YnImJktyKGJyKTtyZXR1cm57ZXhwOmUuc2xpY2UoMCx3ciksa2V5OmUuc2xpY2Uod3IrMSxDcil9fShlKTtyZXR1cm4gbnVsbD09PW4ua2V5P2UrIj0iK3Q6IiRzZXQoIituLmV4cCsiLCAiK24ua2V5KyIsICIrdCsiKSJ9ZnVuY3Rpb24gVXIoKXtyZXR1cm4gX3IuY2hhckNvZGVBdCgrKyRyKX1mdW5jdGlvbiB6cigpe3JldHVybiAkcj49Z3J9ZnVuY3Rpb24gVnIoZSl7cmV0dXJuIDM0PT09ZXx8Mzk9PT1lfWZ1bmN0aW9uIEtyKGUpe3ZhciB0PTE7Zm9yKHdyPSRyOyF6cigpOylpZihWcihlPVVyKCkpKUpyKGUpO2Vsc2UgaWYoOTE9PT1lJiZ0KyssOTM9PT1lJiZ0LS0sMD09PXQpe0NyPSRyO2JyZWFrfX1mdW5jdGlvbiBKcihlKXtmb3IodmFyIHQ9ZTshenIoKSYmKGU9VXIoKSkhPT10Oyk7fXZhciBxcixXcj0iX19yIixacj0iX19jIjtmdW5jdGlvbiBHcihlLHQsbil7dmFyIHI9cXI7cmV0dXJuIGZ1bmN0aW9uIGkoKXtudWxsIT09dC5hcHBseShudWxsLGFyZ3VtZW50cykmJlFyKGUsaSxuLHIpfX12YXIgWHI9VmUmJiEoWCYmTnVtYmVyKFhbMV0pPD01Myk7ZnVuY3Rpb24gWXIoZSx0LG4scil7aWYoWHIpe3ZhciBpPWFuLG89dDt0PW8uX3dyYXBwZXI9ZnVuY3Rpb24oZSl7aWYoZS50YXJnZXQ9PT1lLmN1cnJlbnRUYXJnZXR8fGUudGltZVN0YW1wPj1pfHxlLnRpbWVTdGFtcDw9MHx8ZS50YXJnZXQub3duZXJEb2N1bWVudCE9PWRvY3VtZW50KXJldHVybiBvLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19cXIuYWRkRXZlbnRMaXN0ZW5lcihlLHQsUT97Y2FwdHVyZTpuLHBhc3NpdmU6cn06bil9ZnVuY3Rpb24gUXIoZSx0LG4scil7KHJ8fHFyKS5yZW1vdmVFdmVudExpc3RlbmVyKGUsdC5fd3JhcHBlcnx8dCxuKX1mdW5jdGlvbiBlaShlLHIpe2lmKCF0KGUuZGF0YS5vbil8fCF0KHIuZGF0YS5vbikpe3ZhciBpPXIuZGF0YS5vbnx8e30sbz1lLmRhdGEub258fHt9O3FyPXIuZWxtLGZ1bmN0aW9uKGUpe2lmKG4oZVtXcl0pKXt2YXIgdD1xPyJjaGFuZ2UiOiJpbnB1dCI7ZVt0XT1bXS5jb25jYXQoZVtXcl0sZVt0XXx8W10pLGRlbGV0ZSBlW1dyXX1uKGVbWnJdKSYmKGUuY2hhbmdlPVtdLmNvbmNhdChlW1pyXSxlLmNoYW5nZXx8W10pLGRlbGV0ZSBlW1pyXSl9KGkpLHJ0KGksbyxZcixRcixHcixyLmNvbnRleHQpLHFyPXZvaWQgMH19dmFyIHRpLG5pPXtjcmVhdGU6ZWksdXBkYXRlOmVpfTtmdW5jdGlvbiByaShlLHIpe2lmKCF0KGUuZGF0YS5kb21Qcm9wcyl8fCF0KHIuZGF0YS5kb21Qcm9wcykpe3ZhciBpLG8sYT1yLmVsbSxzPWUuZGF0YS5kb21Qcm9wc3x8e30sYz1yLmRhdGEuZG9tUHJvcHN8fHt9O2ZvcihpIGluIG4oYy5fX29iX18pJiYoYz1yLmRhdGEuZG9tUHJvcHM9QSh7fSxjKSkscylpIGluIGN8fChhW2ldPSIiKTtmb3IoaSBpbiBjKXtpZihvPWNbaV0sInRleHRDb250ZW50Ij09PWl8fCJpbm5lckhUTUwiPT09aSl7aWYoci5jaGlsZHJlbiYmKHIuY2hpbGRyZW4ubGVuZ3RoPTApLG89PT1zW2ldKWNvbnRpbnVlOzE9PT1hLmNoaWxkTm9kZXMubGVuZ3RoJiZhLnJlbW92ZUNoaWxkKGEuY2hpbGROb2Rlc1swXSl9aWYoInZhbHVlIj09PWkmJiJQUk9HUkVTUyIhPT1hLnRhZ05hbWUpe2EuX3ZhbHVlPW87dmFyIHU9dChvKT8iIjpTdHJpbmcobyk7aWkoYSx1KSYmKGEudmFsdWU9dSl9ZWxzZSBpZigiaW5uZXJIVE1MIj09PWkmJnFuKGEudGFnTmFtZSkmJnQoYS5pbm5lckhUTUwpKXsodGk9dGl8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9Ijxzdmc+IitvKyI8L3N2Zz4iO2Zvcih2YXIgbD10aS5maXJzdENoaWxkO2EuZmlyc3RDaGlsZDspYS5yZW1vdmVDaGlsZChhLmZpcnN0Q2hpbGQpO2Zvcig7bC5maXJzdENoaWxkOylhLmFwcGVuZENoaWxkKGwuZmlyc3RDaGlsZCl9ZWxzZSBpZihvIT09c1tpXSl0cnl7YVtpXT1vfWNhdGNoKGUpe319fX1mdW5jdGlvbiBpaShlLHQpe3JldHVybiFlLmNvbXBvc2luZyYmKCJPUFRJT04iPT09ZS50YWdOYW1lfHxmdW5jdGlvbihlLHQpe3ZhciBuPSEwO3RyeXtuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1lfWNhdGNoKGUpe31yZXR1cm4gbiYmZS52YWx1ZSE9PXR9KGUsdCl8fGZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS52YWx1ZSxpPWUuX3ZNb2RpZmllcnM7aWYobihpKSl7aWYoaS5udW1iZXIpcmV0dXJuIGYocikhPT1mKHQpO2lmKGkudHJpbSlyZXR1cm4gci50cmltKCkhPT10LnRyaW0oKX1yZXR1cm4gciE9PXR9KGUsdCkpfXZhciBvaT17Y3JlYXRlOnJpLHVwZGF0ZTpyaX0sYWk9ZyhmdW5jdGlvbihlKXt2YXIgdD17fSxuPS86KC4rKS87cmV0dXJuIGUuc3BsaXQoLzsoPyFbXihdKlwpKS9nKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe2lmKGUpe3ZhciByPWUuc3BsaXQobik7ci5sZW5ndGg+MSYmKHRbclswXS50cmltKCldPXJbMV0udHJpbSgpKX19KSx0fSk7ZnVuY3Rpb24gc2koZSl7dmFyIHQ9Y2koZS5zdHlsZSk7cmV0dXJuIGUuc3RhdGljU3R5bGU\/QShlLnN0YXRpY1N0eWxlLHQpOnR9ZnVuY3Rpb24gY2koZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk\/TyhlKToic3RyaW5nIj09dHlwZW9mIGU\/YWkoZSk6ZX12YXIgdWksbGk9L14tLS8sZmk9L1xzKiFpbXBvcnRhbnQkLyxwaT1mdW5jdGlvbihlLHQsbil7aWYobGkudGVzdCh0KSllLnN0eWxlLnNldFByb3BlcnR5KHQsbik7ZWxzZSBpZihmaS50ZXN0KG4pKWUuc3R5bGUuc2V0UHJvcGVydHkoQyh0KSxuLnJlcGxhY2UoZmksIiIpLCJpbXBvcnRhbnQiKTtlbHNle3ZhciByPXZpKHQpO2lmKEFycmF5LmlzQXJyYXkobikpZm9yKHZhciBpPTAsbz1uLmxlbmd0aDtpPG87aSsrKWUuc3R5bGVbcl09bltpXTtlbHNlIGUuc3R5bGVbcl09bn19LGRpPVsiV2Via2l0IiwiTW96IiwibXMiXSx2aT1nKGZ1bmN0aW9uKGUpe2lmKHVpPXVpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSwiZmlsdGVyIiE9PShlPWIoZSkpJiZlIGluIHVpKXJldHVybiBlO2Zvcih2YXIgdD1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj0wO248ZGkubGVuZ3RoO24rKyl7dmFyIHI9ZGlbbl0rdDtpZihyIGluIHVpKXJldHVybiByfX0pO2Z1bmN0aW9uIGhpKGUscil7dmFyIGk9ci5kYXRhLG89ZS5kYXRhO2lmKCEodChpLnN0YXRpY1N0eWxlKSYmdChpLnN0eWxlKSYmdChvLnN0YXRpY1N0eWxlKSYmdChvLnN0eWxlKSkpe3ZhciBhLHMsYz1yLmVsbSx1PW8uc3RhdGljU3R5bGUsbD1vLm5vcm1hbGl6ZWRTdHlsZXx8by5zdHlsZXx8e30sZj11fHxsLHA9Y2koci5kYXRhLnN0eWxlKXx8e307ci5kYXRhLm5vcm1hbGl6ZWRTdHlsZT1uKHAuX19vYl9fKT9BKHt9LHApOnA7dmFyIGQ9ZnVuY3Rpb24oZSx0KXt2YXIgbixyPXt9O2lmKHQpZm9yKHZhciBpPWU7aS5jb21wb25lbnRJbnN0YW5jZTspKGk9aS5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUpJiZpLmRhdGEmJihuPXNpKGkuZGF0YSkpJiZBKHIsbik7KG49c2koZS5kYXRhKSkmJkEocixuKTtmb3IodmFyIG89ZTtvPW8ucGFyZW50OylvLmRhdGEmJihuPXNpKG8uZGF0YSkpJiZBKHIsbik7cmV0dXJuIHJ9KHIsITApO2ZvcihzIGluIGYpdChkW3NdKSYmcGkoYyxzLCIiKTtmb3IocyBpbiBkKShhPWRbc10pIT09ZltzXSYmcGkoYyxzLG51bGw9PWE\/IiI6YSl9fXZhciBtaT17Y3JlYXRlOmhpLHVwZGF0ZTpoaX0seWk9L1xzKy87ZnVuY3Rpb24gZ2koZSx0KXtpZih0JiYodD10LnRyaW0oKSkpaWYoZS5jbGFzc0xpc3QpdC5pbmRleE9mKCIgIik+LTE\/dC5zcGxpdCh5aSkuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKHQpfSk6ZS5jbGFzc0xpc3QuYWRkKHQpO2Vsc2V7dmFyIG49IiAiKyhlLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpKyIgIjtuLmluZGV4T2YoIiAiK3QrIiAiKTwwJiZlLnNldEF0dHJpYnV0ZSgiY2xhc3MiLChuK3QpLnRyaW0oKSl9fWZ1bmN0aW9uIF9pKGUsdCl7aWYodCYmKHQ9dC50cmltKCkpKWlmKGUuY2xhc3NMaXN0KXQuaW5kZXhPZigiICIpPi0xP3Quc3BsaXQoeWkpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUuY2xhc3NMaXN0LnJlbW92ZSh0KX0pOmUuY2xhc3NMaXN0LnJlbW92ZSh0KSxlLmNsYXNzTGlzdC5sZW5ndGh8fGUucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpO2Vsc2V7Zm9yKHZhciBuPSIgIisoZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKSsiICIscj0iICIrdCsiICI7bi5pbmRleE9mKHIpPj0wOyluPW4ucmVwbGFjZShyLCIgIik7KG49bi50cmltKCkpP2Uuc2V0QXR0cmlidXRlKCJjbGFzcyIsbik6ZS5yZW1vdmVBdHRyaWJ1dGUoImNsYXNzIil9fWZ1bmN0aW9uIGJpKGUpe2lmKGUpe2lmKCJvYmplY3QiPT10eXBlb2YgZSl7dmFyIHQ9e307cmV0dXJuITEhPT1lLmNzcyYmQSh0LCRpKGUubmFtZXx8InYiKSksQSh0LGUpLHR9cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlPyRpKGUpOnZvaWQgMH19dmFyICRpPWcoZnVuY3Rpb24oZSl7cmV0dXJue2VudGVyQ2xhc3M6ZSsiLWVudGVyIixlbnRlclRvQ2xhc3M6ZSsiLWVudGVyLXRvIixlbnRlckFjdGl2ZUNsYXNzOmUrIi1lbnRlci1hY3RpdmUiLGxlYXZlQ2xhc3M6ZSsiLWxlYXZlIixsZWF2ZVRvQ2xhc3M6ZSsiLWxlYXZlLXRvIixsZWF2ZUFjdGl2ZUNsYXNzOmUrIi1sZWF2ZS1hY3RpdmUifX0pLHdpPXomJiFXLENpPSJ0cmFuc2l0aW9uIix4aT0iYW5pbWF0aW9uIixraT0idHJhbnNpdGlvbiIsQWk9InRyYW5zaXRpb25lbmQiLE9pPSJhbmltYXRpb24iLFNpPSJhbmltYXRpb25lbmQiO3dpJiYodm9pZCAwPT09d2luZG93Lm9udHJhbnNpdGlvbmVuZCYmdm9pZCAwIT09d2luZG93Lm9ud2Via2l0dHJhbnNpdGlvbmVuZCYmKGtpPSJXZWJraXRUcmFuc2l0aW9uIixBaT0id2Via2l0VHJhbnNpdGlvbkVuZCIpLHZvaWQgMD09PXdpbmRvdy5vbmFuaW1hdGlvbmVuZCYmdm9pZCAwIT09d2luZG93Lm9ud2Via2l0YW5pbWF0aW9uZW5kJiYoT2k9IldlYmtpdEFuaW1hdGlvbiIsU2k9IndlYmtpdEFuaW1hdGlvbkVuZCIpKTt2YXIgVGk9ej93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOnNldFRpbWVvdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUoKX07ZnVuY3Rpb24gRWkoZSl7VGkoZnVuY3Rpb24oKXtUaShlKX0pfWZ1bmN0aW9uIE5pKGUsdCl7dmFyIG49ZS5fdHJhbnNpdGlvbkNsYXNzZXN8fChlLl90cmFuc2l0aW9uQ2xhc3Nlcz1bXSk7bi5pbmRleE9mKHQpPDAmJihuLnB1c2godCksZ2koZSx0KSl9ZnVuY3Rpb24gamkoZSx0KXtlLl90cmFuc2l0aW9uQ2xhc3NlcyYmaChlLl90cmFuc2l0aW9uQ2xhc3Nlcyx0KSxfaShlLHQpfWZ1bmN0aW9uIERpKGUsdCxuKXt2YXIgcj1NaShlLHQpLGk9ci50eXBlLG89ci50aW1lb3V0LGE9ci5wcm9wQ291bnQ7aWYoIWkpcmV0dXJuIG4oKTt2YXIgcz1pPT09Q2k\/QWk6U2ksYz0wLHU9ZnVuY3Rpb24oKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxsKSxuKCl9LGw9ZnVuY3Rpb24odCl7dC50YXJnZXQ9PT1lJiYrK2M+PWEmJnUoKX07c2V0VGltZW91dChmdW5jdGlvbigpe2M8YSYmdSgpfSxvKzEpLGUuYWRkRXZlbnRMaXN0ZW5lcihzLGwpfXZhciBMaT0vXGIodHJhbnNmb3JtfGFsbCkoLHwkKS87ZnVuY3Rpb24gTWkoZSx0KXt2YXIgbixyPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGUpLGk9KHJba2krIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxvPShyW2tpKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksYT1JaShpLG8pLHM9KHJbT2krIkRlbGF5Il18fCIiKS5zcGxpdCgiLCAiKSxjPShyW09pKyJEdXJhdGlvbiJdfHwiIikuc3BsaXQoIiwgIiksdT1JaShzLGMpLGw9MCxmPTA7cmV0dXJuIHQ9PT1DaT9hPjAmJihuPUNpLGw9YSxmPW8ubGVuZ3RoKTp0PT09eGk\/dT4wJiYobj14aSxsPXUsZj1jLmxlbmd0aCk6Zj0obj0obD1NYXRoLm1heChhLHUpKT4wP2E+dT9DaTp4aTpudWxsKT9uPT09Q2k\/by5sZW5ndGg6Yy5sZW5ndGg6MCx7dHlwZTpuLHRpbWVvdXQ6bCxwcm9wQ291bnQ6ZixoYXNUcmFuc2Zvcm06bj09PUNpJiZMaS50ZXN0KHJba2krIlByb3BlcnR5Il0pfX1mdW5jdGlvbiBJaShlLHQpe2Zvcig7ZS5sZW5ndGg8dC5sZW5ndGg7KWU9ZS5jb25jYXQoZSk7cmV0dXJuIE1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4gRmkodCkrRmkoZVtuXSl9KSl9ZnVuY3Rpb24gRmkoZSl7cmV0dXJuIDFlMypOdW1iZXIoZS5zbGljZSgwLC0xKS5yZXBsYWNlKCIsIiwiLiIpKX1mdW5jdGlvbiBQaShlLHIpe3ZhciBpPWUuZWxtO24oaS5fbGVhdmVDYikmJihpLl9sZWF2ZUNiLmNhbmNlbGxlZD0hMCxpLl9sZWF2ZUNiKCkpO3ZhciBhPWJpKGUuZGF0YS50cmFuc2l0aW9uKTtpZighdChhKSYmIW4oaS5fZW50ZXJDYikmJjE9PT1pLm5vZGVUeXBlKXtmb3IodmFyIHM9YS5jc3MsYz1hLnR5cGUsdT1hLmVudGVyQ2xhc3MsbD1hLmVudGVyVG9DbGFzcyxwPWEuZW50ZXJBY3RpdmVDbGFzcyxkPWEuYXBwZWFyQ2xhc3Msdj1hLmFwcGVhclRvQ2xhc3MsaD1hLmFwcGVhckFjdGl2ZUNsYXNzLG09YS5iZWZvcmVFbnRlcix5PWEuZW50ZXIsZz1hLmFmdGVyRW50ZXIsXz1hLmVudGVyQ2FuY2VsbGVkLGI9YS5iZWZvcmVBcHBlYXIsJD1hLmFwcGVhcix3PWEuYWZ0ZXJBcHBlYXIsQz1hLmFwcGVhckNhbmNlbGxlZCx4PWEuZHVyYXRpb24saz1XdCxBPVd0LiR2bm9kZTtBJiZBLnBhcmVudDspaz1BLmNvbnRleHQsQT1BLnBhcmVudDt2YXIgTz0hay5faXNNb3VudGVkfHwhZS5pc1Jvb3RJbnNlcnQ7aWYoIU98fCR8fCIiPT09JCl7dmFyIFM9TyYmZD9kOnUsVD1PJiZoP2g6cCxFPU8mJnY\/djpsLE49TyYmYnx8bSxqPU8mJiJmdW5jdGlvbiI9PXR5cGVvZiAkPyQ6eSxMPU8mJnd8fGcsTT1PJiZDfHxfLEk9ZihvKHgpP3guZW50ZXI6eCksRj0hMSE9PXMmJiFXLFA9QmkoaiksUj1pLl9lbnRlckNiPUQoZnVuY3Rpb24oKXtGJiYoamkoaSxFKSxqaShpLFQpKSxSLmNhbmNlbGxlZD8oRiYmamkoaSxTKSxNJiZNKGkpKTpMJiZMKGkpLGkuX2VudGVyQ2I9bnVsbH0pO2UuZGF0YS5zaG93fHxpdChlLCJpbnNlcnQiLGZ1bmN0aW9uKCl7dmFyIHQ9aS5wYXJlbnROb2RlLG49dCYmdC5fcGVuZGluZyYmdC5fcGVuZGluZ1tlLmtleV07biYmbi50YWc9PT1lLnRhZyYmbi5lbG0uX2xlYXZlQ2ImJm4uZWxtLl9sZWF2ZUNiKCksaiYmaihpLFIpfSksTiYmTihpKSxGJiYoTmkoaSxTKSxOaShpLFQpLEVpKGZ1bmN0aW9uKCl7amkoaSxTKSxSLmNhbmNlbGxlZHx8KE5pKGksRSksUHx8KEhpKEkpP3NldFRpbWVvdXQoUixJKTpEaShpLGMsUikpKX0pKSxlLmRhdGEuc2hvdyYmKHImJnIoKSxqJiZqKGksUikpLEZ8fFB8fFIoKX19fWZ1bmN0aW9uIFJpKGUscil7dmFyIGk9ZS5lbG07bihpLl9lbnRlckNiKSYmKGkuX2VudGVyQ2IuY2FuY2VsbGVkPSEwLGkuX2VudGVyQ2IoKSk7dmFyIGE9YmkoZS5kYXRhLnRyYW5zaXRpb24pO2lmKHQoYSl8fDEhPT1pLm5vZGVUeXBlKXJldHVybiByKCk7aWYoIW4oaS5fbGVhdmVDYikpe3ZhciBzPWEuY3NzLGM9YS50eXBlLHU9YS5sZWF2ZUNsYXNzLGw9YS5sZWF2ZVRvQ2xhc3MscD1hLmxlYXZlQWN0aXZlQ2xhc3MsZD1hLmJlZm9yZUxlYXZlLHY9YS5sZWF2ZSxoPWEuYWZ0ZXJMZWF2ZSxtPWEubGVhdmVDYW5jZWxsZWQseT1hLmRlbGF5TGVhdmUsZz1hLmR1cmF0aW9uLF89ITEhPT1zJiYhVyxiPUJpKHYpLCQ9ZihvKGcpP2cubGVhdmU6Zyksdz1pLl9sZWF2ZUNiPUQoZnVuY3Rpb24oKXtpLnBhcmVudE5vZGUmJmkucGFyZW50Tm9kZS5fcGVuZGluZyYmKGkucGFyZW50Tm9kZS5fcGVuZGluZ1tlLmtleV09bnVsbCksXyYmKGppKGksbCksamkoaSxwKSksdy5jYW5jZWxsZWQ\/KF8mJmppKGksdSksbSYmbShpKSk6KHIoKSxoJiZoKGkpKSxpLl9sZWF2ZUNiPW51bGx9KTt5P3koQyk6QygpfWZ1bmN0aW9uIEMoKXt3LmNhbmNlbGxlZHx8KCFlLmRhdGEuc2hvdyYmaS5wYXJlbnROb2RlJiYoKGkucGFyZW50Tm9kZS5fcGVuZGluZ3x8KGkucGFyZW50Tm9kZS5fcGVuZGluZz17fSkpW2Uua2V5XT1lKSxkJiZkKGkpLF8mJihOaShpLHUpLE5pKGkscCksRWkoZnVuY3Rpb24oKXtqaShpLHUpLHcuY2FuY2VsbGVkfHwoTmkoaSxsKSxifHwoSGkoJCk\/c2V0VGltZW91dCh3LCQpOkRpKGksYyx3KSkpfSkpLHYmJnYoaSx3KSxffHxifHx3KCkpfX1mdW5jdGlvbiBIaShlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGUmJiFpc05hTihlKX1mdW5jdGlvbiBCaShlKXtpZih0KGUpKXJldHVybiExO3ZhciByPWUuZm5zO3JldHVybiBuKHIpP0JpKEFycmF5LmlzQXJyYXkocik\/clswXTpyKTooZS5fbGVuZ3RofHxlLmxlbmd0aCk+MX1mdW5jdGlvbiBVaShlLHQpeyEwIT09dC5kYXRhLnNob3cmJlBpKHQpfXZhciB6aT1mdW5jdGlvbihlKXt2YXIgbyxhLHM9e30sYz1lLm1vZHVsZXMsdT1lLm5vZGVPcHM7Zm9yKG89MDtvPHJyLmxlbmd0aDsrK28pZm9yKHNbcnJbb11dPVtdLGE9MDthPGMubGVuZ3RoOysrYSluKGNbYV1bcnJbb11dKSYmc1tycltvXV0ucHVzaChjW2FdW3JyW29dXSk7ZnVuY3Rpb24gbChlKXt2YXIgdD11LnBhcmVudE5vZGUoZSk7bih0KSYmdS5yZW1vdmVDaGlsZCh0LGUpfWZ1bmN0aW9uIGYoZSx0LGksbyxhLGMsbCl7aWYobihlLmVsbSkmJm4oYykmJihlPWNbbF09bWUoZSkpLGUuaXNSb290SW5zZXJ0PSFhLCFmdW5jdGlvbihlLHQsaSxvKXt2YXIgYT1lLmRhdGE7aWYobihhKSl7dmFyIGM9bihlLmNvbXBvbmVudEluc3RhbmNlKSYmYS5rZWVwQWxpdmU7aWYobihhPWEuaG9vaykmJm4oYT1hLmluaXQpJiZhKGUsITEpLG4oZS5jb21wb25lbnRJbnN0YW5jZSkpcmV0dXJuIGQoZSx0KSx2KGksZS5lbG0sbykscihjKSYmZnVuY3Rpb24oZSx0LHIsaSl7Zm9yKHZhciBvLGE9ZTthLmNvbXBvbmVudEluc3RhbmNlOylpZihhPWEuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLG4obz1hLmRhdGEpJiZuKG89by50cmFuc2l0aW9uKSl7Zm9yKG89MDtvPHMuYWN0aXZhdGUubGVuZ3RoOysrbylzLmFjdGl2YXRlW29dKG5yLGEpO3QucHVzaChhKTticmVha312KHIsZS5lbG0saSl9KGUsdCxpLG8pLCEwfX0oZSx0LGksbykpe3ZhciBmPWUuZGF0YSxwPWUuY2hpbGRyZW4sbT1lLnRhZztuKG0pPyhlLmVsbT1lLm5zP3UuY3JlYXRlRWxlbWVudE5TKGUubnMsbSk6dS5jcmVhdGVFbGVtZW50KG0sZSksZyhlKSxoKGUscCx0KSxuKGYpJiZ5KGUsdCksdihpLGUuZWxtLG8pKTpyKGUuaXNDb21tZW50KT8oZS5lbG09dS5jcmVhdGVDb21tZW50KGUudGV4dCksdihpLGUuZWxtLG8pKTooZS5lbG09dS5jcmVhdGVUZXh0Tm9kZShlLnRleHQpLHYoaSxlLmVsbSxvKSl9fWZ1bmN0aW9uIGQoZSx0KXtuKGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSYmKHQucHVzaC5hcHBseSh0LGUuZGF0YS5wZW5kaW5nSW5zZXJ0KSxlLmRhdGEucGVuZGluZ0luc2VydD1udWxsKSxlLmVsbT1lLmNvbXBvbmVudEluc3RhbmNlLiRlbCxtKGUpPyh5KGUsdCksZyhlKSk6KHRyKGUpLHQucHVzaChlKSl9ZnVuY3Rpb24gdihlLHQscil7bihlKSYmKG4ocik\/dS5wYXJlbnROb2RlKHIpPT09ZSYmdS5pbnNlcnRCZWZvcmUoZSx0LHIpOnUuYXBwZW5kQ2hpbGQoZSx0KSl9ZnVuY3Rpb24gaChlLHQsbil7aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilmKHRbcl0sbixlLmVsbSxudWxsLCEwLHQscik7ZWxzZSBpKGUudGV4dCkmJnUuYXBwZW5kQ2hpbGQoZS5lbG0sdS5jcmVhdGVUZXh0Tm9kZShTdHJpbmcoZS50ZXh0KSkpfWZ1bmN0aW9uIG0oZSl7Zm9yKDtlLmNvbXBvbmVudEluc3RhbmNlOyllPWUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlO3JldHVybiBuKGUudGFnKX1mdW5jdGlvbiB5KGUsdCl7Zm9yKHZhciByPTA7cjxzLmNyZWF0ZS5sZW5ndGg7KytyKXMuY3JlYXRlW3JdKG5yLGUpO24obz1lLmRhdGEuaG9vaykmJihuKG8uY3JlYXRlKSYmby5jcmVhdGUobnIsZSksbihvLmluc2VydCkmJnQucHVzaChlKSl9ZnVuY3Rpb24gZyhlKXt2YXIgdDtpZihuKHQ9ZS5mblNjb3BlSWQpKXUuc2V0U3R5bGVTY29wZShlLmVsbSx0KTtlbHNlIGZvcih2YXIgcj1lO3I7KW4odD1yLmNvbnRleHQpJiZuKHQ9dC4kb3B0aW9ucy5fc2NvcGVJZCkmJnUuc2V0U3R5bGVTY29wZShlLmVsbSx0KSxyPXIucGFyZW50O24odD1XdCkmJnQhPT1lLmNvbnRleHQmJnQhPT1lLmZuQ29udGV4dCYmbih0PXQuJG9wdGlvbnMuX3Njb3BlSWQpJiZ1LnNldFN0eWxlU2NvcGUoZS5lbG0sdCl9ZnVuY3Rpb24gXyhlLHQsbixyLGksbyl7Zm9yKDtyPD1pOysrcilmKG5bcl0sbyxlLHQsITEsbixyKX1mdW5jdGlvbiBiKGUpe3ZhciB0LHIsaT1lLmRhdGE7aWYobihpKSlmb3Iobih0PWkuaG9vaykmJm4odD10LmRlc3Ryb3kpJiZ0KGUpLHQ9MDt0PHMuZGVzdHJveS5sZW5ndGg7Kyt0KXMuZGVzdHJveVt0XShlKTtpZihuKHQ9ZS5jaGlsZHJlbikpZm9yKHI9MDtyPGUuY2hpbGRyZW4ubGVuZ3RoOysrciliKGUuY2hpbGRyZW5bcl0pfWZ1bmN0aW9uICQoZSx0LHIpe2Zvcig7dDw9cjsrK3Qpe3ZhciBpPWVbdF07bihpKSYmKG4oaS50YWcpPyh3KGkpLGIoaSkpOmwoaS5lbG0pKX19ZnVuY3Rpb24gdyhlLHQpe2lmKG4odCl8fG4oZS5kYXRhKSl7dmFyIHIsaT1zLnJlbW92ZS5sZW5ndGgrMTtmb3Iobih0KT90Lmxpc3RlbmVycys9aTp0PWZ1bmN0aW9uKGUsdCl7ZnVuY3Rpb24gbigpezA9PS0tbi5saXN0ZW5lcnMmJmwoZSl9cmV0dXJuIG4ubGlzdGVuZXJzPXQsbn0oZS5lbG0saSksbihyPWUuY29tcG9uZW50SW5zdGFuY2UpJiZuKHI9ci5fdm5vZGUpJiZuKHIuZGF0YSkmJncocix0KSxyPTA7cjxzLnJlbW92ZS5sZW5ndGg7KytyKXMucmVtb3ZlW3JdKGUsdCk7bihyPWUuZGF0YS5ob29rKSYmbihyPXIucmVtb3ZlKT9yKGUsdCk6dCgpfWVsc2UgbChlLmVsbSl9ZnVuY3Rpb24gQyhlLHQscixpKXtmb3IodmFyIG89cjtvPGk7bysrKXt2YXIgYT10W29dO2lmKG4oYSkmJmlyKGUsYSkpcmV0dXJuIG99fWZ1bmN0aW9uIHgoZSxpLG8sYSxjLGwpe2lmKGUhPT1pKXtuKGkuZWxtKSYmbihhKSYmKGk9YVtjXT1tZShpKSk7dmFyIHA9aS5lbG09ZS5lbG07aWYocihlLmlzQXN5bmNQbGFjZWhvbGRlcikpbihpLmFzeW5jRmFjdG9yeS5yZXNvbHZlZCk\/TyhlLmVsbSxpLG8pOmkuaXNBc3luY1BsYWNlaG9sZGVyPSEwO2Vsc2UgaWYocihpLmlzU3RhdGljKSYmcihlLmlzU3RhdGljKSYmaS5rZXk9PT1lLmtleSYmKHIoaS5pc0Nsb25lZCl8fHIoaS5pc09uY2UpKSlpLmNvbXBvbmVudEluc3RhbmNlPWUuY29tcG9uZW50SW5zdGFuY2U7ZWxzZXt2YXIgZCx2PWkuZGF0YTtuKHYpJiZuKGQ9di5ob29rKSYmbihkPWQucHJlcGF0Y2gpJiZkKGUsaSk7dmFyIGg9ZS5jaGlsZHJlbix5PWkuY2hpbGRyZW47aWYobih2KSYmbShpKSl7Zm9yKGQ9MDtkPHMudXBkYXRlLmxlbmd0aDsrK2Qpcy51cGRhdGVbZF0oZSxpKTtuKGQ9di5ob29rKSYmbihkPWQudXBkYXRlKSYmZChlLGkpfXQoaS50ZXh0KT9uKGgpJiZuKHkpP2ghPT15JiZmdW5jdGlvbihlLHIsaSxvLGEpe2Zvcih2YXIgcyxjLGwscD0wLGQ9MCx2PXIubGVuZ3RoLTEsaD1yWzBdLG09clt2XSx5PWkubGVuZ3RoLTEsZz1pWzBdLGI9aVt5XSx3PSFhO3A8PXYmJmQ8PXk7KXQoaCk\/aD1yWysrcF06dChtKT9tPXJbLS12XTppcihoLGcpPyh4KGgsZyxvLGksZCksaD1yWysrcF0sZz1pWysrZF0pOmlyKG0sYik\/KHgobSxiLG8saSx5KSxtPXJbLS12XSxiPWlbLS15XSk6aXIoaCxiKT8oeChoLGIsbyxpLHkpLHcmJnUuaW5zZXJ0QmVmb3JlKGUsaC5lbG0sdS5uZXh0U2libGluZyhtLmVsbSkpLGg9clsrK3BdLGI9aVstLXldKTppcihtLGcpPyh4KG0sZyxvLGksZCksdyYmdS5pbnNlcnRCZWZvcmUoZSxtLmVsbSxoLmVsbSksbT1yWy0tdl0sZz1pWysrZF0pOih0KHMpJiYocz1vcihyLHAsdikpLHQoYz1uKGcua2V5KT9zW2cua2V5XTpDKGcscixwLHYpKT9mKGcsbyxlLGguZWxtLCExLGksZCk6aXIobD1yW2NdLGcpPyh4KGwsZyxvLGksZCkscltjXT12b2lkIDAsdyYmdS5pbnNlcnRCZWZvcmUoZSxsLmVsbSxoLmVsbSkpOmYoZyxvLGUsaC5lbG0sITEsaSxkKSxnPWlbKytkXSk7cD52P18oZSx0KGlbeSsxXSk\/bnVsbDppW3krMV0uZWxtLGksZCx5LG8pOmQ+eSYmJChyLHAsdil9KHAsaCx5LG8sbCk6bih5KT8obihlLnRleHQpJiZ1LnNldFRleHRDb250ZW50KHAsIiIpLF8ocCxudWxsLHksMCx5Lmxlbmd0aC0xLG8pKTpuKGgpPyQoaCwwLGgubGVuZ3RoLTEpOm4oZS50ZXh0KSYmdS5zZXRUZXh0Q29udGVudChwLCIiKTplLnRleHQhPT1pLnRleHQmJnUuc2V0VGV4dENvbnRlbnQocCxpLnRleHQpLG4odikmJm4oZD12Lmhvb2spJiZuKGQ9ZC5wb3N0cGF0Y2gpJiZkKGUsaSl9fX1mdW5jdGlvbiBrKGUsdCxpKXtpZihyKGkpJiZuKGUucGFyZW50KSllLnBhcmVudC5kYXRhLnBlbmRpbmdJbnNlcnQ9dDtlbHNlIGZvcih2YXIgbz0wO288dC5sZW5ndGg7KytvKXRbb10uZGF0YS5ob29rLmluc2VydCh0W29dKX12YXIgQT1wKCJhdHRycyxjbGFzcyxzdGF0aWNDbGFzcyxzdGF0aWNTdHlsZSxrZXkiKTtmdW5jdGlvbiBPKGUsdCxpLG8pe3ZhciBhLHM9dC50YWcsYz10LmRhdGEsdT10LmNoaWxkcmVuO2lmKG89b3x8YyYmYy5wcmUsdC5lbG09ZSxyKHQuaXNDb21tZW50KSYmbih0LmFzeW5jRmFjdG9yeSkpcmV0dXJuIHQuaXNBc3luY1BsYWNlaG9sZGVyPSEwLCEwO2lmKG4oYykmJihuKGE9Yy5ob29rKSYmbihhPWEuaW5pdCkmJmEodCwhMCksbihhPXQuY29tcG9uZW50SW5zdGFuY2UpKSlyZXR1cm4gZCh0LGkpLCEwO2lmKG4ocykpe2lmKG4odSkpaWYoZS5oYXNDaGlsZE5vZGVzKCkpaWYobihhPWMpJiZuKGE9YS5kb21Qcm9wcykmJm4oYT1hLmlubmVySFRNTCkpe2lmKGEhPT1lLmlubmVySFRNTClyZXR1cm4hMX1lbHNle2Zvcih2YXIgbD0hMCxmPWUuZmlyc3RDaGlsZCxwPTA7cDx1Lmxlbmd0aDtwKyspe2lmKCFmfHwhTyhmLHVbcF0saSxvKSl7bD0hMTticmVha31mPWYubmV4dFNpYmxpbmd9aWYoIWx8fGYpcmV0dXJuITF9ZWxzZSBoKHQsdSxpKTtpZihuKGMpKXt2YXIgdj0hMTtmb3IodmFyIG0gaW4gYylpZighQShtKSl7dj0hMCx5KHQsaSk7YnJlYWt9IXYmJmMuY2xhc3MmJmV0KGMuY2xhc3MpfX1lbHNlIGUuZGF0YSE9PXQudGV4dCYmKGUuZGF0YT10LnRleHQpO3JldHVybiEwfXJldHVybiBmdW5jdGlvbihlLGksbyxhKXtpZighdChpKSl7dmFyIGMsbD0hMSxwPVtdO2lmKHQoZSkpbD0hMCxmKGkscCk7ZWxzZXt2YXIgZD1uKGUubm9kZVR5cGUpO2lmKCFkJiZpcihlLGkpKXgoZSxpLHAsbnVsbCxudWxsLGEpO2Vsc2V7aWYoZCl7aWYoMT09PWUubm9kZVR5cGUmJmUuaGFzQXR0cmlidXRlKEwpJiYoZS5yZW1vdmVBdHRyaWJ1dGUoTCksbz0hMCkscihvKSYmTyhlLGkscCkpcmV0dXJuIGsoaSxwLCEwKSxlO2M9ZSxlPW5ldyBwZSh1LnRhZ05hbWUoYykudG9Mb3dlckNhc2UoKSx7fSxbXSx2b2lkIDAsYyl9dmFyIHY9ZS5lbG0saD11LnBhcmVudE5vZGUodik7aWYoZihpLHAsdi5fbGVhdmVDYj9udWxsOmgsdS5uZXh0U2libGluZyh2KSksbihpLnBhcmVudCkpZm9yKHZhciB5PWkucGFyZW50LGc9bShpKTt5Oyl7Zm9yKHZhciBfPTA7XzxzLmRlc3Ryb3kubGVuZ3RoOysrXylzLmRlc3Ryb3lbX10oeSk7aWYoeS5lbG09aS5lbG0sZyl7Zm9yKHZhciB3PTA7dzxzLmNyZWF0ZS5sZW5ndGg7Kyt3KXMuY3JlYXRlW3ddKG5yLHkpO3ZhciBDPXkuZGF0YS5ob29rLmluc2VydDtpZihDLm1lcmdlZClmb3IodmFyIEE9MTtBPEMuZm5zLmxlbmd0aDtBKyspQy5mbnNbQV0oKX1lbHNlIHRyKHkpO3k9eS5wYXJlbnR9bihoKT8kKFtlXSwwLDApOm4oZS50YWcpJiZiKGUpfX1yZXR1cm4gayhpLHAsbCksaS5lbG19bihlKSYmYihlKX19KHtub2RlT3BzOlFuLG1vZHVsZXM6W21yLHhyLG5pLG9pLG1pLHo\/e2NyZWF0ZTpVaSxhY3RpdmF0ZTpVaSxyZW1vdmU6ZnVuY3Rpb24oZSx0KXshMCE9PWUuZGF0YS5zaG93P1JpKGUsdCk6dCgpfX06e31dLmNvbmNhdChwcil9KTtXJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzZWxlY3Rpb25jaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtlJiZlLnZtb2RlbCYmWGkoZSwiaW5wdXQiKX0pO3ZhciBWaT17aW5zZXJ0ZWQ6ZnVuY3Rpb24oZSx0LG4scil7InNlbGVjdCI9PT1uLnRhZz8oci5lbG0mJiFyLmVsbS5fdk9wdGlvbnM\/aXQobiwicG9zdHBhdGNoIixmdW5jdGlvbigpe1ZpLmNvbXBvbmVudFVwZGF0ZWQoZSx0LG4pfSk6S2koZSx0LG4uY29udGV4dCksZS5fdk9wdGlvbnM9W10ubWFwLmNhbGwoZS5vcHRpb25zLFdpKSk6KCJ0ZXh0YXJlYSI9PT1uLnRhZ3x8WG4oZS50eXBlKSkmJihlLl92TW9kaWZpZXJzPXQubW9kaWZpZXJzLHQubW9kaWZpZXJzLmxhenl8fChlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLFppKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uZW5kIixHaSksZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLEdpKSxXJiYoZS52bW9kZWw9ITApKSl9LGNvbXBvbmVudFVwZGF0ZWQ6ZnVuY3Rpb24oZSx0LG4pe2lmKCJzZWxlY3QiPT09bi50YWcpe0tpKGUsdCxuLmNvbnRleHQpO3ZhciByPWUuX3ZPcHRpb25zLGk9ZS5fdk9wdGlvbnM9W10ubWFwLmNhbGwoZS5vcHRpb25zLFdpKTtpZihpLnNvbWUoZnVuY3Rpb24oZSx0KXtyZXR1cm4hTihlLHJbdF0pfSkpKGUubXVsdGlwbGU\/dC52YWx1ZS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBxaShlLGkpfSk6dC52YWx1ZSE9PXQub2xkVmFsdWUmJnFpKHQudmFsdWUsaSkpJiZYaShlLCJjaGFuZ2UiKX19fTtmdW5jdGlvbiBLaShlLHQsbil7SmkoZSx0LG4pLChxfHxaKSYmc2V0VGltZW91dChmdW5jdGlvbigpe0ppKGUsdCxuKX0sMCl9ZnVuY3Rpb24gSmkoZSx0LG4pe3ZhciByPXQudmFsdWUsaT1lLm11bHRpcGxlO2lmKCFpfHxBcnJheS5pc0FycmF5KHIpKXtmb3IodmFyIG8sYSxzPTAsYz1lLm9wdGlvbnMubGVuZ3RoO3M8YztzKyspaWYoYT1lLm9wdGlvbnNbc10saSlvPWoocixXaShhKSk+LTEsYS5zZWxlY3RlZCE9PW8mJihhLnNlbGVjdGVkPW8pO2Vsc2UgaWYoTihXaShhKSxyKSlyZXR1cm4gdm9pZChlLnNlbGVjdGVkSW5kZXghPT1zJiYoZS5zZWxlY3RlZEluZGV4PXMpKTtpfHwoZS5zZWxlY3RlZEluZGV4PS0xKX19ZnVuY3Rpb24gcWkoZSx0KXtyZXR1cm4gdC5ldmVyeShmdW5jdGlvbih0KXtyZXR1cm4hTih0LGUpfSl9ZnVuY3Rpb24gV2koZSl7cmV0dXJuIl92YWx1ZSJpbiBlP2UuX3ZhbHVlOmUudmFsdWV9ZnVuY3Rpb24gWmkoZSl7ZS50YXJnZXQuY29tcG9zaW5nPSEwfWZ1bmN0aW9uIEdpKGUpe2UudGFyZ2V0LmNvbXBvc2luZyYmKGUudGFyZ2V0LmNvbXBvc2luZz0hMSxYaShlLnRhcmdldCwiaW5wdXQiKSl9ZnVuY3Rpb24gWGkoZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpO24uaW5pdEV2ZW50KHQsITAsITApLGUuZGlzcGF0Y2hFdmVudChuKX1mdW5jdGlvbiBZaShlKXtyZXR1cm4hZS5jb21wb25lbnRJbnN0YW5jZXx8ZS5kYXRhJiZlLmRhdGEudHJhbnNpdGlvbj9lOllpKGUuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlKX12YXIgUWk9e21vZGVsOlZpLHNob3c6e2JpbmQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQudmFsdWUsaT0obj1ZaShuKSkuZGF0YSYmbi5kYXRhLnRyYW5zaXRpb24sbz1lLl9fdk9yaWdpbmFsRGlzcGxheT0ibm9uZSI9PT1lLnN0eWxlLmRpc3BsYXk\/IiI6ZS5zdHlsZS5kaXNwbGF5O3ImJmk\/KG4uZGF0YS5zaG93PSEwLFBpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9b30pKTplLnN0eWxlLmRpc3BsYXk9cj9vOiJub25lIn0sdXBkYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LnZhbHVlOyFyIT0hdC5vbGRWYWx1ZSYmKChuPVlpKG4pKS5kYXRhJiZuLmRhdGEudHJhbnNpdGlvbj8obi5kYXRhLnNob3c9ITAscj9QaShuLGZ1bmN0aW9uKCl7ZS5zdHlsZS5kaXNwbGF5PWUuX192T3JpZ2luYWxEaXNwbGF5fSk6UmkobixmdW5jdGlvbigpe2Uuc3R5bGUuZGlzcGxheT0ibm9uZSJ9KSk6ZS5zdHlsZS5kaXNwbGF5PXI\/ZS5fX3ZPcmlnaW5hbERpc3BsYXk6Im5vbmUiKX0sdW5iaW5kOmZ1bmN0aW9uKGUsdCxuLHIsaSl7aXx8KGUuc3R5bGUuZGlzcGxheT1lLl9fdk9yaWdpbmFsRGlzcGxheSl9fX0sZW89e25hbWU6U3RyaW5nLGFwcGVhcjpCb29sZWFuLGNzczpCb29sZWFuLG1vZGU6U3RyaW5nLHR5cGU6U3RyaW5nLGVudGVyQ2xhc3M6U3RyaW5nLGxlYXZlQ2xhc3M6U3RyaW5nLGVudGVyVG9DbGFzczpTdHJpbmcsbGVhdmVUb0NsYXNzOlN0cmluZyxlbnRlckFjdGl2ZUNsYXNzOlN0cmluZyxsZWF2ZUFjdGl2ZUNsYXNzOlN0cmluZyxhcHBlYXJDbGFzczpTdHJpbmcsYXBwZWFyQWN0aXZlQ2xhc3M6U3RyaW5nLGFwcGVhclRvQ2xhc3M6U3RyaW5nLGR1cmF0aW9uOltOdW1iZXIsU3RyaW5nLE9iamVjdF19O2Z1bmN0aW9uIHRvKGUpe3ZhciB0PWUmJmUuY29tcG9uZW50T3B0aW9ucztyZXR1cm4gdCYmdC5DdG9yLm9wdGlvbnMuYWJzdHJhY3Q\/dG8oenQodC5jaGlsZHJlbikpOmV9ZnVuY3Rpb24gbm8oZSl7dmFyIHQ9e30sbj1lLiRvcHRpb25zO2Zvcih2YXIgciBpbiBuLnByb3BzRGF0YSl0W3JdPWVbcl07dmFyIGk9bi5fcGFyZW50TGlzdGVuZXJzO2Zvcih2YXIgbyBpbiBpKXRbYihvKV09aVtvXTtyZXR1cm4gdH1mdW5jdGlvbiBybyhlLHQpe2lmKC9cZC1rZWVwLWFsaXZlJC8udGVzdCh0LnRhZykpcmV0dXJuIGUoImtlZXAtYWxpdmUiLHtwcm9wczp0LmNvbXBvbmVudE9wdGlvbnMucHJvcHNEYXRhfSl9dmFyIGlvPWZ1bmN0aW9uKGUpe3JldHVybiBlLnRhZ3x8VXQoZSl9LG9vPWZ1bmN0aW9uKGUpe3JldHVybiJzaG93Ij09PWUubmFtZX0sYW89e25hbWU6InRyYW5zaXRpb24iLHByb3BzOmVvLGFic3RyYWN0OiEwLHJlbmRlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzLG49dGhpcy4kc2xvdHMuZGVmYXVsdDtpZihuJiYobj1uLmZpbHRlcihpbykpLmxlbmd0aCl7dmFyIHI9dGhpcy5tb2RlLG89blswXTtpZihmdW5jdGlvbihlKXtmb3IoO2U9ZS5wYXJlbnQ7KWlmKGUuZGF0YS50cmFuc2l0aW9uKXJldHVybiEwfSh0aGlzLiR2bm9kZSkpcmV0dXJuIG87dmFyIGE9dG8obyk7aWYoIWEpcmV0dXJuIG87aWYodGhpcy5fbGVhdmluZylyZXR1cm4gcm8oZSxvKTt2YXIgcz0iX190cmFuc2l0aW9uLSIrdGhpcy5fdWlkKyItIjthLmtleT1udWxsPT1hLmtleT9hLmlzQ29tbWVudD9zKyJjb21tZW50IjpzK2EudGFnOmkoYS5rZXkpPzA9PT1TdHJpbmcoYS5rZXkpLmluZGV4T2Yocyk\/YS5rZXk6cythLmtleTphLmtleTt2YXIgYz0oYS5kYXRhfHwoYS5kYXRhPXt9KSkudHJhbnNpdGlvbj1ubyh0aGlzKSx1PXRoaXMuX3Zub2RlLGw9dG8odSk7aWYoYS5kYXRhLmRpcmVjdGl2ZXMmJmEuZGF0YS5kaXJlY3RpdmVzLnNvbWUob28pJiYoYS5kYXRhLnNob3c9ITApLGwmJmwuZGF0YSYmIWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQua2V5PT09ZS5rZXkmJnQudGFnPT09ZS50YWd9KGEsbCkmJiFVdChsKSYmKCFsLmNvbXBvbmVudEluc3RhbmNlfHwhbC5jb21wb25lbnRJbnN0YW5jZS5fdm5vZGUuaXNDb21tZW50KSl7dmFyIGY9bC5kYXRhLnRyYW5zaXRpb249QSh7fSxjKTtpZigib3V0LWluIj09PXIpcmV0dXJuIHRoaXMuX2xlYXZpbmc9ITAsaXQoZiwiYWZ0ZXJMZWF2ZSIsZnVuY3Rpb24oKXt0Ll9sZWF2aW5nPSExLHQuJGZvcmNlVXBkYXRlKCl9KSxybyhlLG8pO2lmKCJpbi1vdXQiPT09cil7aWYoVXQoYSkpcmV0dXJuIHU7dmFyIHAsZD1mdW5jdGlvbigpe3AoKX07aXQoYywiYWZ0ZXJFbnRlciIsZCksaXQoYywiZW50ZXJDYW5jZWxsZWQiLGQpLGl0KGYsImRlbGF5TGVhdmUiLGZ1bmN0aW9uKGUpe3A9ZX0pfX1yZXR1cm4gb319fSxzbz1BKHt0YWc6U3RyaW5nLG1vdmVDbGFzczpTdHJpbmd9LGVvKTtmdW5jdGlvbiBjbyhlKXtlLmVsbS5fbW92ZUNiJiZlLmVsbS5fbW92ZUNiKCksZS5lbG0uX2VudGVyQ2ImJmUuZWxtLl9lbnRlckNiKCl9ZnVuY3Rpb24gdW8oZSl7ZS5kYXRhLm5ld1Bvcz1lLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX1mdW5jdGlvbiBsbyhlKXt2YXIgdD1lLmRhdGEucG9zLG49ZS5kYXRhLm5ld1BvcyxyPXQubGVmdC1uLmxlZnQsaT10LnRvcC1uLnRvcDtpZihyfHxpKXtlLmRhdGEubW92ZWQ9ITA7dmFyIG89ZS5lbG0uc3R5bGU7by50cmFuc2Zvcm09by5XZWJraXRUcmFuc2Zvcm09InRyYW5zbGF0ZSgiK3IrInB4LCIraSsicHgpIixvLnRyYW5zaXRpb25EdXJhdGlvbj0iMHMifX1kZWxldGUgc28ubW9kZTt2YXIgZm89e1RyYW5zaXRpb246YW8sVHJhbnNpdGlvbkdyb3VwOntwcm9wczpzbyxiZWZvcmVNb3VudDpmdW5jdGlvbigpe3ZhciBlPXRoaXMsdD10aGlzLl91cGRhdGU7dGhpcy5fdXBkYXRlPWZ1bmN0aW9uKG4scil7dmFyIGk9WnQoZSk7ZS5fX3BhdGNoX18oZS5fdm5vZGUsZS5rZXB0LCExLCEwKSxlLl92bm9kZT1lLmtlcHQsaSgpLHQuY2FsbChlLG4scil9fSxyZW5kZXI6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PXRoaXMudGFnfHx0aGlzLiR2bm9kZS5kYXRhLnRhZ3x8InNwYW4iLG49T2JqZWN0LmNyZWF0ZShudWxsKSxyPXRoaXMucHJldkNoaWxkcmVuPXRoaXMuY2hpbGRyZW4saT10aGlzLiRzbG90cy5kZWZhdWx0fHxbXSxvPXRoaXMuY2hpbGRyZW49W10sYT1ubyh0aGlzKSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBjPWlbc107Yy50YWcmJm51bGwhPWMua2V5JiYwIT09U3RyaW5nKGMua2V5KS5pbmRleE9mKCJfX3ZsaXN0IikmJihvLnB1c2goYyksbltjLmtleV09YywoYy5kYXRhfHwoYy5kYXRhPXt9KSkudHJhbnNpdGlvbj1hKX1pZihyKXtmb3IodmFyIHU9W10sbD1bXSxmPTA7ZjxyLmxlbmd0aDtmKyspe3ZhciBwPXJbZl07cC5kYXRhLnRyYW5zaXRpb249YSxwLmRhdGEucG9zPXAuZWxtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG5bcC5rZXldP3UucHVzaChwKTpsLnB1c2gocCl9dGhpcy5rZXB0PWUodCxudWxsLHUpLHRoaXMucmVtb3ZlZD1sfXJldHVybiBlKHQsbnVsbCxvKX0sdXBkYXRlZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMucHJldkNoaWxkcmVuLHQ9dGhpcy5tb3ZlQ2xhc3N8fCh0aGlzLm5hbWV8fCJ2IikrIi1tb3ZlIjtlLmxlbmd0aCYmdGhpcy5oYXNNb3ZlKGVbMF0uZWxtLHQpJiYoZS5mb3JFYWNoKGNvKSxlLmZvckVhY2godW8pLGUuZm9yRWFjaChsbyksdGhpcy5fcmVmbG93PWRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LGUuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlLmRhdGEubW92ZWQpe3ZhciBuPWUuZWxtLHI9bi5zdHlsZTtOaShuLHQpLHIudHJhbnNmb3JtPXIuV2Via2l0VHJhbnNmb3JtPXIudHJhbnNpdGlvbkR1cmF0aW9uPSIiLG4uYWRkRXZlbnRMaXN0ZW5lcihBaSxuLl9tb3ZlQ2I9ZnVuY3Rpb24gZShyKXtyJiZyLnRhcmdldCE9PW58fHImJiEvdHJhbnNmb3JtJC8udGVzdChyLnByb3BlcnR5TmFtZSl8fChuLnJlbW92ZUV2ZW50TGlzdGVuZXIoQWksZSksbi5fbW92ZUNiPW51bGwsamkobix0KSl9KX19KSl9LG1ldGhvZHM6e2hhc01vdmU6ZnVuY3Rpb24oZSx0KXtpZighd2kpcmV0dXJuITE7aWYodGhpcy5faGFzTW92ZSlyZXR1cm4gdGhpcy5faGFzTW92ZTt2YXIgbj1lLmNsb25lTm9kZSgpO2UuX3RyYW5zaXRpb25DbGFzc2VzJiZlLl90cmFuc2l0aW9uQ2xhc3Nlcy5mb3JFYWNoKGZ1bmN0aW9uKGUpe19pKG4sZSl9KSxnaShuLHQpLG4uc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy4kZWwuYXBwZW5kQ2hpbGQobik7dmFyIHI9TWkobik7cmV0dXJuIHRoaXMuJGVsLnJlbW92ZUNoaWxkKG4pLHRoaXMuX2hhc01vdmU9ci5oYXNUcmFuc2Zvcm19fX19O3duLmNvbmZpZy5tdXN0VXNlUHJvcD1qbix3bi5jb25maWcuaXNSZXNlcnZlZFRhZz1Xbix3bi5jb25maWcuaXNSZXNlcnZlZEF0dHI9RW4sd24uY29uZmlnLmdldFRhZ05hbWVzcGFjZT1abix3bi5jb25maWcuaXNVbmtub3duRWxlbWVudD1mdW5jdGlvbihlKXtpZigheilyZXR1cm4hMDtpZihXbihlKSlyZXR1cm4hMTtpZihlPWUudG9Mb3dlckNhc2UoKSxudWxsIT1HbltlXSlyZXR1cm4gR25bZV07dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gZS5pbmRleE9mKCItIik+LTE\/R25bZV09dC5jb25zdHJ1Y3Rvcj09PXdpbmRvdy5IVE1MVW5rbm93bkVsZW1lbnR8fHQuY29uc3RydWN0b3I9PT13aW5kb3cuSFRNTEVsZW1lbnQ6R25bZV09L0hUTUxVbmtub3duRWxlbWVudC8udGVzdCh0LnRvU3RyaW5nKCkpfSxBKHduLm9wdGlvbnMuZGlyZWN0aXZlcyxRaSksQSh3bi5vcHRpb25zLmNvbXBvbmVudHMsZm8pLHduLnByb3RvdHlwZS5fX3BhdGNoX189ej96aTpTLHduLnByb3RvdHlwZS4kbW91bnQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3ZhciByO3JldHVybiBlLiRlbD10LGUuJG9wdGlvbnMucmVuZGVyfHwoZS4kb3B0aW9ucy5yZW5kZXI9dmUpLFl0KGUsImJlZm9yZU1vdW50Iikscj1mdW5jdGlvbigpe2UuX3VwZGF0ZShlLl9yZW5kZXIoKSxuKX0sbmV3IGZuKGUscixTLHtiZWZvcmU6ZnVuY3Rpb24oKXtlLl9pc01vdW50ZWQmJiFlLl9pc0Rlc3Ryb3llZCYmWXQoZSwiYmVmb3JlVXBkYXRlIil9fSwhMCksbj0hMSxudWxsPT1lLiR2bm9kZSYmKGUuX2lzTW91bnRlZD0hMCxZdChlLCJtb3VudGVkIikpLGV9KHRoaXMsZT1lJiZ6P1luKGUpOnZvaWQgMCx0KX0seiYmc2V0VGltZW91dChmdW5jdGlvbigpe0YuZGV2dG9vbHMmJm5lJiZuZS5lbWl0KCJpbml0Iix3bil9LDApO3ZhciBwbz0vXHtceygoPzoufFxyP1xuKSs\/KVx9XH0vZyx2bz0vWy0uKis\/XiR7fSgpfFtcXVwvXFxdL2csaG89ZyhmdW5jdGlvbihlKXt2YXIgdD1lWzBdLnJlcGxhY2Uodm8sIlxcJCYiKSxuPWVbMV0ucmVwbGFjZSh2bywiXFwkJiIpO3JldHVybiBuZXcgUmVnRXhwKHQrIigoPzoufFxcbikrPykiK24sImciKX0pO3ZhciBtbz17c3RhdGljS2V5czpbInN0YXRpY0NsYXNzIl0sdHJhbnNmb3JtTm9kZTpmdW5jdGlvbihlLHQpe3Qud2Fybjt2YXIgbj1GcihlLCJjbGFzcyIpO24mJihlLnN0YXRpY0NsYXNzPUpTT04uc3RyaW5naWZ5KG4pKTt2YXIgcj1JcihlLCJjbGFzcyIsITEpO3ImJihlLmNsYXNzQmluZGluZz1yKX0sZ2VuRGF0YTpmdW5jdGlvbihlKXt2YXIgdD0iIjtyZXR1cm4gZS5zdGF0aWNDbGFzcyYmKHQrPSJzdGF0aWNDbGFzczoiK2Uuc3RhdGljQ2xhc3MrIiwiKSxlLmNsYXNzQmluZGluZyYmKHQrPSJjbGFzczoiK2UuY2xhc3NCaW5kaW5nKyIsIiksdH19O3ZhciB5byxnbz17c3RhdGljS2V5czpbInN0YXRpY1N0eWxlIl0sdHJhbnNmb3JtTm9kZTpmdW5jdGlvbihlLHQpe3Qud2Fybjt2YXIgbj1GcihlLCJzdHlsZSIpO24mJihlLnN0YXRpY1N0eWxlPUpTT04uc3RyaW5naWZ5KGFpKG4pKSk7dmFyIHI9SXIoZSwic3R5bGUiLCExKTtyJiYoZS5zdHlsZUJpbmRpbmc9cil9LGdlbkRhdGE6ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7cmV0dXJuIGUuc3RhdGljU3R5bGUmJih0Kz0ic3RhdGljU3R5bGU6IitlLnN0YXRpY1N0eWxlKyIsIiksZS5zdHlsZUJpbmRpbmcmJih0Kz0ic3R5bGU6KCIrZS5zdHlsZUJpbmRpbmcrIiksIiksdH19LF9vPWZ1bmN0aW9uKGUpe3JldHVybih5bz15b3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD1lLHlvLnRleHRDb250ZW50fSxibz1wKCJhcmVhLGJhc2UsYnIsY29sLGVtYmVkLGZyYW1lLGhyLGltZyxpbnB1dCxpc2luZGV4LGtleWdlbixsaW5rLG1ldGEscGFyYW0sc291cmNlLHRyYWNrLHdiciIpLCRvPXAoImNvbGdyb3VwLGRkLGR0LGxpLG9wdGlvbnMscCx0ZCx0Zm9vdCx0aCx0aGVhZCx0cixzb3VyY2UiKSx3bz1wKCJhZGRyZXNzLGFydGljbGUsYXNpZGUsYmFzZSxibG9ja3F1b3RlLGJvZHksY2FwdGlvbixjb2wsY29sZ3JvdXAsZGQsZGV0YWlscyxkaWFsb2csZGl2LGRsLGR0LGZpZWxkc2V0LGZpZ2NhcHRpb24sZmlndXJlLGZvb3Rlcixmb3JtLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWQsaGVhZGVyLGhncm91cCxocixodG1sLGxlZ2VuZCxsaSxtZW51aXRlbSxtZXRhLG9wdGdyb3VwLG9wdGlvbixwYXJhbSxycCxydCxzb3VyY2Usc3R5bGUsc3VtbWFyeSx0Ym9keSx0ZCx0Zm9vdCx0aCx0aGVhZCx0aXRsZSx0cix0cmFjayIpLENvPS9eXHMqKFteXHMiJzw+XC89XSspKD86XHMqKD0pXHMqKD86IihbXiJdKikiK3wnKFteJ10qKScrfChbXlxzIic9PD5gXSspKSk\/Lyx4bz0vXlxzKigoPzp2LVtcdy1dKzp8QHw6fCMpXFtbXj1dK1xdW15ccyInPD5cLz1dKikoPzpccyooPSlccyooPzoiKFteIl0qKSIrfCcoW14nXSopJyt8KFteXHMiJz08PmBdKykpKT8vLGtvPSJbYS16QS1aX11bXFwtXFwuMC05X2EtekEtWiIrUC5zb3VyY2UrIl0qIixBbz0iKCg\/OiIra28rIlxcOik\/IitrbysiKSIsT289bmV3IFJlZ0V4cCgiXjwiK0FvKSxTbz0vXlxzKihcLz8pPi8sVG89bmV3IFJlZ0V4cCgiXjxcXC8iK0FvKyJbXj5dKj4iKSxFbz0vXjwhRE9DVFlQRSBbXj5dKz4vaSxObz0vXjwhXC0tLyxqbz0vXjwhXFsvLERvPXAoInNjcmlwdCxzdHlsZSx0ZXh0YXJlYSIsITApLExvPXt9LE1vPXsiJmx0OyI6IjwiLCImZ3Q7IjoiPiIsIiZxdW90OyI6JyInLCImYW1wOyI6IiYiLCImIzEwOyI6IlxuIiwiJiM5OyI6Ilx0IiwiJiMzOTsiOiInIn0sSW89LyYoPzpsdHxndHxxdW90fGFtcHwjMzkpOy9nLEZvPS8mKD86bHR8Z3R8cXVvdHxhbXB8IzM5fCMxMHwjOSk7L2csUG89cCgicHJlLHRleHRhcmVhIiwhMCksUm89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZSYmUG8oZSkmJiJcbiI9PT10WzBdfTtmdW5jdGlvbiBIbyhlLHQpe3ZhciBuPXQ\/Rm86SW87cmV0dXJuIGUucmVwbGFjZShuLGZ1bmN0aW9uKGUpe3JldHVybiBNb1tlXX0pfXZhciBCbyxVbyx6byxWbyxLbyxKbyxxbyxXbyxabz0vXkB8XnYtb246LyxHbz0vXnYtfF5AfF46fF4jLyxYbz0vKFtcc1xTXSo\/KVxzKyg\/OmlufG9mKVxzKyhbXHNcU10qKS8sWW89LywoW14sXH1cXV0qKSg\/OiwoW14sXH1cXV0qKSk\/JC8sUW89L15cKHxcKSQvZyxlYT0vXlxbLipcXSQvLHRhPS86KC4qKSQvLG5hPS9eOnxeXC58XnYtYmluZDovLHJhPS9cLlteLlxdXSsoPz1bXlxdXSokKS9nLGlhPS9edi1zbG90KDp8JCl8XiMvLG9hPS9bXHJcbl0vLGFhPS9ccysvZyxzYT1nKF9vKSxjYT0iX2VtcHR5XyI7ZnVuY3Rpb24gdWEoZSx0LG4pe3JldHVybnt0eXBlOjEsdGFnOmUsYXR0cnNMaXN0OnQsYXR0cnNNYXA6bWEodCkscmF3QXR0cnNNYXA6e30scGFyZW50Om4sY2hpbGRyZW46W119fWZ1bmN0aW9uIGxhKGUsdCl7Qm89dC53YXJufHxTcixKbz10LmlzUHJlVGFnfHxULHFvPXQubXVzdFVzZVByb3B8fFQsV289dC5nZXRUYWdOYW1lc3BhY2V8fFQ7dC5pc1Jlc2VydmVkVGFnO3pvPVRyKHQubW9kdWxlcywidHJhbnNmb3JtTm9kZSIpLFZvPVRyKHQubW9kdWxlcywicHJlVHJhbnNmb3JtTm9kZSIpLEtvPVRyKHQubW9kdWxlcywicG9zdFRyYW5zZm9ybU5vZGUiKSxVbz10LmRlbGltaXRlcnM7dmFyIG4scixpPVtdLG89ITEhPT10LnByZXNlcnZlV2hpdGVzcGFjZSxhPXQud2hpdGVzcGFjZSxzPSExLGM9ITE7ZnVuY3Rpb24gdShlKXtpZihsKGUpLHN8fGUucHJvY2Vzc2VkfHwoZT1mYShlLHQpKSxpLmxlbmd0aHx8ZT09PW58fG4uaWYmJihlLmVsc2VpZnx8ZS5lbHNlKSYmZGEobix7ZXhwOmUuZWxzZWlmLGJsb2NrOmV9KSxyJiYhZS5mb3JiaWRkZW4paWYoZS5lbHNlaWZ8fGUuZWxzZSlhPWUsKHU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5sZW5ndGg7Zm9yKDt0LS07KXtpZigxPT09ZVt0XS50eXBlKXJldHVybiBlW3RdO2UucG9wKCl9fShyLmNoaWxkcmVuKSkmJnUuaWYmJmRhKHUse2V4cDphLmVsc2VpZixibG9jazphfSk7ZWxzZXtpZihlLnNsb3RTY29wZSl7dmFyIG89ZS5zbG90VGFyZ2V0fHwnImRlZmF1bHQiJzsoci5zY29wZWRTbG90c3x8KHIuc2NvcGVkU2xvdHM9e30pKVtvXT1lfXIuY2hpbGRyZW4ucHVzaChlKSxlLnBhcmVudD1yfXZhciBhLHU7ZS5jaGlsZHJlbj1lLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hZS5zbG90U2NvcGV9KSxsKGUpLGUucHJlJiYocz0hMSksSm8oZS50YWcpJiYoYz0hMSk7Zm9yKHZhciBmPTA7ZjxLby5sZW5ndGg7ZisrKUtvW2ZdKGUsdCl9ZnVuY3Rpb24gbChlKXtpZighYylmb3IodmFyIHQ7KHQ9ZS5jaGlsZHJlbltlLmNoaWxkcmVuLmxlbmd0aC0xXSkmJjM9PT10LnR5cGUmJiIgIj09PXQudGV4dDspZS5jaGlsZHJlbi5wb3AoKX1yZXR1cm4gZnVuY3Rpb24oZSx0KXtmb3IodmFyIG4scixpPVtdLG89dC5leHBlY3RIVE1MLGE9dC5pc1VuYXJ5VGFnfHxULHM9dC5jYW5CZUxlZnRPcGVuVGFnfHxULGM9MDtlOyl7aWYobj1lLHImJkRvKHIpKXt2YXIgdT0wLGw9ci50b0xvd2VyQ2FzZSgpLGY9TG9bbF18fChMb1tsXT1uZXcgUmVnRXhwKCIoW1xcc1xcU10qPykoPC8iK2wrIltePl0qPikiLCJpIikpLHA9ZS5yZXBsYWNlKGYsZnVuY3Rpb24oZSxuLHIpe3JldHVybiB1PXIubGVuZ3RoLERvKGwpfHwibm9zY3JpcHQiPT09bHx8KG49bi5yZXBsYWNlKC88IVwtLShbXHNcU10qPyktLT4vZywiJDEiKS5yZXBsYWNlKC88IVxbQ0RBVEFcWyhbXHNcU10qPyldXT4vZywiJDEiKSksUm8obCxuKSYmKG49bi5zbGljZSgxKSksdC5jaGFycyYmdC5jaGFycyhuKSwiIn0pO2MrPWUubGVuZ3RoLXAubGVuZ3RoLGU9cCxBKGwsYy11LGMpfWVsc2V7dmFyIGQ9ZS5pbmRleE9mKCI8Iik7aWYoMD09PWQpe2lmKE5vLnRlc3QoZSkpe3ZhciB2PWUuaW5kZXhPZigiLS1ceDNlIik7aWYodj49MCl7dC5zaG91bGRLZWVwQ29tbWVudCYmdC5jb21tZW50KGUuc3Vic3RyaW5nKDQsdiksYyxjK3YrMyksQyh2KzMpO2NvbnRpbnVlfX1pZihqby50ZXN0KGUpKXt2YXIgaD1lLmluZGV4T2YoIl0+Iik7aWYoaD49MCl7QyhoKzIpO2NvbnRpbnVlfX12YXIgbT1lLm1hdGNoKEVvKTtpZihtKXtDKG1bMF0ubGVuZ3RoKTtjb250aW51ZX12YXIgeT1lLm1hdGNoKFRvKTtpZih5KXt2YXIgZz1jO0MoeVswXS5sZW5ndGgpLEEoeVsxXSxnLGMpO2NvbnRpbnVlfXZhciBfPXgoKTtpZihfKXtrKF8pLFJvKF8udGFnTmFtZSxlKSYmQygxKTtjb250aW51ZX19dmFyIGI9dm9pZCAwLCQ9dm9pZCAwLHc9dm9pZCAwO2lmKGQ+PTApe2ZvcigkPWUuc2xpY2UoZCk7IShUby50ZXN0KCQpfHxPby50ZXN0KCQpfHxOby50ZXN0KCQpfHxqby50ZXN0KCQpfHwodz0kLmluZGV4T2YoIjwiLDEpKTwwKTspZCs9dywkPWUuc2xpY2UoZCk7Yj1lLnN1YnN0cmluZygwLGQpfWQ8MCYmKGI9ZSksYiYmQyhiLmxlbmd0aCksdC5jaGFycyYmYiYmdC5jaGFycyhiLGMtYi5sZW5ndGgsYyl9aWYoZT09PW4pe3QuY2hhcnMmJnQuY2hhcnMoZSk7YnJlYWt9fWZ1bmN0aW9uIEModCl7Yys9dCxlPWUuc3Vic3RyaW5nKHQpfWZ1bmN0aW9uIHgoKXt2YXIgdD1lLm1hdGNoKE9vKTtpZih0KXt2YXIgbixyLGk9e3RhZ05hbWU6dFsxXSxhdHRyczpbXSxzdGFydDpjfTtmb3IoQyh0WzBdLmxlbmd0aCk7IShuPWUubWF0Y2goU28pKSYmKHI9ZS5tYXRjaCh4byl8fGUubWF0Y2goQ28pKTspci5zdGFydD1jLEMoclswXS5sZW5ndGgpLHIuZW5kPWMsaS5hdHRycy5wdXNoKHIpO2lmKG4pcmV0dXJuIGkudW5hcnlTbGFzaD1uWzFdLEMoblswXS5sZW5ndGgpLGkuZW5kPWMsaX19ZnVuY3Rpb24gayhlKXt2YXIgbj1lLnRhZ05hbWUsYz1lLnVuYXJ5U2xhc2g7byYmKCJwIj09PXImJndvKG4pJiZBKHIpLHMobikmJnI9PT1uJiZBKG4pKTtmb3IodmFyIHU9YShuKXx8ISFjLGw9ZS5hdHRycy5sZW5ndGgsZj1uZXcgQXJyYXkobCkscD0wO3A8bDtwKyspe3ZhciBkPWUuYXR0cnNbcF0sdj1kWzNdfHxkWzRdfHxkWzVdfHwiIixoPSJhIj09PW4mJiJocmVmIj09PWRbMV0\/dC5zaG91bGREZWNvZGVOZXdsaW5lc0ZvckhyZWY6dC5zaG91bGREZWNvZGVOZXdsaW5lcztmW3BdPXtuYW1lOmRbMV0sdmFsdWU6SG8odixoKX19dXx8KGkucHVzaCh7dGFnOm4sbG93ZXJDYXNlZFRhZzpuLnRvTG93ZXJDYXNlKCksYXR0cnM6ZixzdGFydDplLnN0YXJ0LGVuZDplLmVuZH0pLHI9biksdC5zdGFydCYmdC5zdGFydChuLGYsdSxlLnN0YXJ0LGUuZW5kKX1mdW5jdGlvbiBBKGUsbixvKXt2YXIgYSxzO2lmKG51bGw9PW4mJihuPWMpLG51bGw9PW8mJihvPWMpLGUpZm9yKHM9ZS50b0xvd2VyQ2FzZSgpLGE9aS5sZW5ndGgtMTthPj0wJiZpW2FdLmxvd2VyQ2FzZWRUYWchPT1zO2EtLSk7ZWxzZSBhPTA7aWYoYT49MCl7Zm9yKHZhciB1PWkubGVuZ3RoLTE7dT49YTt1LS0pdC5lbmQmJnQuZW5kKGlbdV0udGFnLG4sbyk7aS5sZW5ndGg9YSxyPWEmJmlbYS0xXS50YWd9ZWxzZSJiciI9PT1zP3Quc3RhcnQmJnQuc3RhcnQoZSxbXSwhMCxuLG8pOiJwIj09PXMmJih0LnN0YXJ0JiZ0LnN0YXJ0KGUsW10sITEsbixvKSx0LmVuZCYmdC5lbmQoZSxuLG8pKX1BKCl9KGUse3dhcm46Qm8sZXhwZWN0SFRNTDp0LmV4cGVjdEhUTUwsaXNVbmFyeVRhZzp0LmlzVW5hcnlUYWcsY2FuQmVMZWZ0T3BlblRhZzp0LmNhbkJlTGVmdE9wZW5UYWcsc2hvdWxkRGVjb2RlTmV3bGluZXM6dC5zaG91bGREZWNvZGVOZXdsaW5lcyxzaG91bGREZWNvZGVOZXdsaW5lc0ZvckhyZWY6dC5zaG91bGREZWNvZGVOZXdsaW5lc0ZvckhyZWYsc2hvdWxkS2VlcENvbW1lbnQ6dC5jb21tZW50cyxvdXRwdXRTb3VyY2VSYW5nZTp0Lm91dHB1dFNvdXJjZVJhbmdlLHN0YXJ0OmZ1bmN0aW9uKGUsbyxhLGwsZil7dmFyIHA9ciYmci5uc3x8V28oZSk7cSYmInN2ZyI9PT1wJiYobz1mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgcj1lW25dO3lhLnRlc3Qoci5uYW1lKXx8KHIubmFtZT1yLm5hbWUucmVwbGFjZShnYSwiIiksdC5wdXNoKHIpKX1yZXR1cm4gdH0obykpO3ZhciBkLHY9dWEoZSxvLHIpO3AmJih2Lm5zPXApLCJzdHlsZSIhPT0oZD12KS50YWcmJigic2NyaXB0IiE9PWQudGFnfHxkLmF0dHJzTWFwLnR5cGUmJiJ0ZXh0L2phdmFzY3JpcHQiIT09ZC5hdHRyc01hcC50eXBlKXx8dGUoKXx8KHYuZm9yYmlkZGVuPSEwKTtmb3IodmFyIGg9MDtoPFZvLmxlbmd0aDtoKyspdj1Wb1toXSh2LHQpfHx2O3N8fCghZnVuY3Rpb24oZSl7bnVsbCE9RnIoZSwidi1wcmUiKSYmKGUucHJlPSEwKX0odiksdi5wcmUmJihzPSEwKSksSm8odi50YWcpJiYoYz0hMCkscz9mdW5jdGlvbihlKXt2YXIgdD1lLmF0dHJzTGlzdCxuPXQubGVuZ3RoO2lmKG4pZm9yKHZhciByPWUuYXR0cnM9bmV3IEFycmF5KG4pLGk9MDtpPG47aSsrKXJbaV09e25hbWU6dFtpXS5uYW1lLHZhbHVlOkpTT04uc3RyaW5naWZ5KHRbaV0udmFsdWUpfSxudWxsIT10W2ldLnN0YXJ0JiYocltpXS5zdGFydD10W2ldLnN0YXJ0LHJbaV0uZW5kPXRbaV0uZW5kKTtlbHNlIGUucHJlfHwoZS5wbGFpbj0hMCl9KHYpOnYucHJvY2Vzc2VkfHwocGEodiksZnVuY3Rpb24oZSl7dmFyIHQ9RnIoZSwidi1pZiIpO2lmKHQpZS5pZj10LGRhKGUse2V4cDp0LGJsb2NrOmV9KTtlbHNle251bGwhPUZyKGUsInYtZWxzZSIpJiYoZS5lbHNlPSEwKTt2YXIgbj1GcihlLCJ2LWVsc2UtaWYiKTtuJiYoZS5lbHNlaWY9bil9fSh2KSxmdW5jdGlvbihlKXtudWxsIT1GcihlLCJ2LW9uY2UiKSYmKGUub25jZT0hMCl9KHYpKSxufHwobj12KSxhP3Uodik6KHI9dixpLnB1c2godikpfSxlbmQ6ZnVuY3Rpb24oZSx0LG4pe3ZhciBvPWlbaS5sZW5ndGgtMV07aS5sZW5ndGgtPTEscj1pW2kubGVuZ3RoLTFdLHUobyl9LGNoYXJzOmZ1bmN0aW9uKGUsdCxuKXtpZihyJiYoIXF8fCJ0ZXh0YXJlYSIhPT1yLnRhZ3x8ci5hdHRyc01hcC5wbGFjZWhvbGRlciE9PWUpKXt2YXIgaSx1LGwsZj1yLmNoaWxkcmVuO2lmKGU9Y3x8ZS50cmltKCk\/InNjcmlwdCI9PT0oaT1yKS50YWd8fCJzdHlsZSI9PT1pLnRhZz9lOnNhKGUpOmYubGVuZ3RoP2E\/ImNvbmRlbnNlIj09PWEmJm9hLnRlc3QoZSk\/IiI6IiAiOm8\/IiAiOiIiOiIiKWN8fCJjb25kZW5zZSIhPT1hfHwoZT1lLnJlcGxhY2UoYWEsIiAiKSksIXMmJiIgIiE9PWUmJih1PWZ1bmN0aW9uKGUsdCl7dmFyIG49dD9obyh0KTpwbztpZihuLnRlc3QoZSkpe2Zvcih2YXIgcixpLG8sYT1bXSxzPVtdLGM9bi5sYXN0SW5kZXg9MDtyPW4uZXhlYyhlKTspeyhpPXIuaW5kZXgpPmMmJihzLnB1c2gobz1lLnNsaWNlKGMsaSkpLGEucHVzaChKU09OLnN0cmluZ2lmeShvKSkpO3ZhciB1PUFyKHJbMV0udHJpbSgpKTthLnB1c2goIl9zKCIrdSsiKSIpLHMucHVzaCh7IkBiaW5kaW5nIjp1fSksYz1pK3JbMF0ubGVuZ3RofXJldHVybiBjPGUubGVuZ3RoJiYocy5wdXNoKG89ZS5zbGljZShjKSksYS5wdXNoKEpTT04uc3RyaW5naWZ5KG8pKSkse2V4cHJlc3Npb246YS5qb2luKCIrIiksdG9rZW5zOnN9fX0oZSxVbykpP2w9e3R5cGU6MixleHByZXNzaW9uOnUuZXhwcmVzc2lvbix0b2tlbnM6dS50b2tlbnMsdGV4dDplfToiICI9PT1lJiZmLmxlbmd0aCYmIiAiPT09ZltmLmxlbmd0aC0xXS50ZXh0fHwobD17dHlwZTozLHRleHQ6ZX0pLGwmJmYucHVzaChsKX19LGNvbW1lbnQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHIpe3ZhciBpPXt0eXBlOjMsdGV4dDplLGlzQ29tbWVudDohMH07ci5jaGlsZHJlbi5wdXNoKGkpfX19KSxufWZ1bmN0aW9uIGZhKGUsdCl7dmFyIG4scjsocj1JcihuPWUsImtleSIpKSYmKG4ua2V5PXIpLGUucGxhaW49IWUua2V5JiYhZS5zY29wZWRTbG90cyYmIWUuYXR0cnNMaXN0Lmxlbmd0aCxmdW5jdGlvbihlKXt2YXIgdD1JcihlLCJyZWYiKTt0JiYoZS5yZWY9dCxlLnJlZkluRm9yPWZ1bmN0aW9uKGUpe3ZhciB0PWU7Zm9yKDt0Oyl7aWYodm9pZCAwIT09dC5mb3IpcmV0dXJuITA7dD10LnBhcmVudH1yZXR1cm4hMX0oZSkpfShlKSxmdW5jdGlvbihlKXt2YXIgdDsidGVtcGxhdGUiPT09ZS50YWc\/KHQ9RnIoZSwic2NvcGUiKSxlLnNsb3RTY29wZT10fHxGcihlLCJzbG90LXNjb3BlIikpOih0PUZyKGUsInNsb3Qtc2NvcGUiKSkmJihlLnNsb3RTY29wZT10KTt2YXIgbj1JcihlLCJzbG90Iik7biYmKGUuc2xvdFRhcmdldD0nIiInPT09bj8nImRlZmF1bHQiJzpuLGUuc2xvdFRhcmdldER5bmFtaWM9ISghZS5hdHRyc01hcFsiOnNsb3QiXSYmIWUuYXR0cnNNYXBbInYtYmluZDpzbG90Il0pLCJ0ZW1wbGF0ZSI9PT1lLnRhZ3x8ZS5zbG90U2NvcGV8fE5yKGUsInNsb3QiLG4sZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5yYXdBdHRyc01hcFsiOiIrdF18fGUucmF3QXR0cnNNYXBbInYtYmluZDoiK3RdfHxlLnJhd0F0dHJzTWFwW3RdfShlLCJzbG90IikpKTtpZigidGVtcGxhdGUiPT09ZS50YWcpe3ZhciByPVByKGUsaWEpO2lmKHIpe3ZhciBpPXZhKHIpLG89aS5uYW1lLGE9aS5keW5hbWljO2Uuc2xvdFRhcmdldD1vLGUuc2xvdFRhcmdldER5bmFtaWM9YSxlLnNsb3RTY29wZT1yLnZhbHVlfHxjYX19ZWxzZXt2YXIgcz1QcihlLGlhKTtpZihzKXt2YXIgYz1lLnNjb3BlZFNsb3RzfHwoZS5zY29wZWRTbG90cz17fSksdT12YShzKSxsPXUubmFtZSxmPXUuZHluYW1pYyxwPWNbbF09dWEoInRlbXBsYXRlIixbXSxlKTtwLnNsb3RUYXJnZXQ9bCxwLnNsb3RUYXJnZXREeW5hbWljPWYscC5jaGlsZHJlbj1lLmNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbihlKXtpZighZS5zbG90U2NvcGUpcmV0dXJuIGUucGFyZW50PXAsITB9KSxwLnNsb3RTY29wZT1zLnZhbHVlfHxjYSxlLmNoaWxkcmVuPVtdLGUucGxhaW49ITF9fX0oZSksZnVuY3Rpb24oZSl7InNsb3QiPT09ZS50YWcmJihlLnNsb3ROYW1lPUlyKGUsIm5hbWUiKSl9KGUpLGZ1bmN0aW9uKGUpe3ZhciB0Oyh0PUlyKGUsImlzIikpJiYoZS5jb21wb25lbnQ9dCk7bnVsbCE9RnIoZSwiaW5saW5lLXRlbXBsYXRlIikmJihlLmlubGluZVRlbXBsYXRlPSEwKX0oZSk7Zm9yKHZhciBpPTA7aTx6by5sZW5ndGg7aSsrKWU9em9baV0oZSx0KXx8ZTtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHMsYyx1PWUuYXR0cnNMaXN0O2Zvcih0PTAsbj11Lmxlbmd0aDt0PG47dCsrKWlmKHI9aT11W3RdLm5hbWUsbz11W3RdLnZhbHVlLEdvLnRlc3QocikpaWYoZS5oYXNCaW5kaW5ncz0hMCwoYT1oYShyLnJlcGxhY2UoR28sIiIpKSkmJihyPXIucmVwbGFjZShyYSwiIikpLG5hLnRlc3Qocikpcj1yLnJlcGxhY2UobmEsIiIpLG89QXIobyksKGM9ZWEudGVzdChyKSkmJihyPXIuc2xpY2UoMSwtMSkpLGEmJihhLnByb3AmJiFjJiYiaW5uZXJIdG1sIj09PShyPWIocikpJiYocj0iaW5uZXJIVE1MIiksYS5jYW1lbCYmIWMmJihyPWIocikpLGEuc3luYyYmKHM9QnIobywiJGV2ZW50IiksYz9NcihlLCcidXBkYXRlOiIrKCcrcisiKSIscyxudWxsLCExLDAsdVt0XSwhMCk6KE1yKGUsInVwZGF0ZToiK2IocikscyxudWxsLCExLDAsdVt0XSksQyhyKSE9PWIocikmJk1yKGUsInVwZGF0ZToiK0MocikscyxudWxsLCExLDAsdVt0XSkpKSksYSYmYS5wcm9wfHwhZS5jb21wb25lbnQmJnFvKGUudGFnLGUuYXR0cnNNYXAudHlwZSxyKT9FcihlLHIsbyx1W3RdLGMpOk5yKGUscixvLHVbdF0sYyk7ZWxzZSBpZihaby50ZXN0KHIpKXI9ci5yZXBsYWNlKFpvLCIiKSwoYz1lYS50ZXN0KHIpKSYmKHI9ci5zbGljZSgxLC0xKSksTXIoZSxyLG8sYSwhMSwwLHVbdF0sYyk7ZWxzZXt2YXIgbD0ocj1yLnJlcGxhY2UoR28sIiIpKS5tYXRjaCh0YSksZj1sJiZsWzFdO2M9ITEsZiYmKHI9ci5zbGljZSgwLC0oZi5sZW5ndGgrMSkpLGVhLnRlc3QoZikmJihmPWYuc2xpY2UoMSwtMSksYz0hMCkpLERyKGUscixpLG8sZixjLGEsdVt0XSl9ZWxzZSBOcihlLHIsSlNPTi5zdHJpbmdpZnkobyksdVt0XSksIWUuY29tcG9uZW50JiYibXV0ZWQiPT09ciYmcW8oZS50YWcsZS5hdHRyc01hcC50eXBlLHIpJiZFcihlLHIsInRydWUiLHVbdF0pfShlKSxlfWZ1bmN0aW9uIHBhKGUpe3ZhciB0O2lmKHQ9RnIoZSwidi1mb3IiKSl7dmFyIG49ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5tYXRjaChYbyk7aWYoIXQpcmV0dXJuO3ZhciBuPXt9O24uZm9yPXRbMl0udHJpbSgpO3ZhciByPXRbMV0udHJpbSgpLnJlcGxhY2UoUW8sIiIpLGk9ci5tYXRjaChZbyk7aT8obi5hbGlhcz1yLnJlcGxhY2UoWW8sIiIpLnRyaW0oKSxuLml0ZXJhdG9yMT1pWzFdLnRyaW0oKSxpWzJdJiYobi5pdGVyYXRvcjI9aVsyXS50cmltKCkpKTpuLmFsaWFzPXI7cmV0dXJuIG59KHQpO24mJkEoZSxuKX19ZnVuY3Rpb24gZGEoZSx0KXtlLmlmQ29uZGl0aW9uc3x8KGUuaWZDb25kaXRpb25zPVtdKSxlLmlmQ29uZGl0aW9ucy5wdXNoKHQpfWZ1bmN0aW9uIHZhKGUpe3ZhciB0PWUubmFtZS5yZXBsYWNlKGlhLCIiKTtyZXR1cm4gdHx8IiMiIT09ZS5uYW1lWzBdJiYodD0iZGVmYXVsdCIpLGVhLnRlc3QodCk\/e25hbWU6dC5zbGljZSgxLC0xKSxkeW5hbWljOiEwfTp7bmFtZTonIicrdCsnIicsZHluYW1pYzohMX19ZnVuY3Rpb24gaGEoZSl7dmFyIHQ9ZS5tYXRjaChyYSk7aWYodCl7dmFyIG49e307cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihlKXtuW2Uuc2xpY2UoMSldPSEwfSksbn19ZnVuY3Rpb24gbWEoZSl7Zm9yKHZhciB0PXt9LG49MCxyPWUubGVuZ3RoO248cjtuKyspdFtlW25dLm5hbWVdPWVbbl0udmFsdWU7cmV0dXJuIHR9dmFyIHlhPS9eeG1sbnM6TlNcZCsvLGdhPS9eTlNcZCs6LztmdW5jdGlvbiBfYShlKXtyZXR1cm4gdWEoZS50YWcsZS5hdHRyc0xpc3Quc2xpY2UoKSxlLnBhcmVudCl9dmFyIGJhPVttbyxnbyx7cHJlVHJhbnNmb3JtTm9kZTpmdW5jdGlvbihlLHQpe2lmKCJpbnB1dCI9PT1lLnRhZyl7dmFyIG4scj1lLmF0dHJzTWFwO2lmKCFyWyJ2LW1vZGVsIl0pcmV0dXJuO2lmKChyWyI6dHlwZSJdfHxyWyJ2LWJpbmQ6dHlwZSJdKSYmKG49SXIoZSwidHlwZSIpKSxyLnR5cGV8fG58fCFyWyJ2LWJpbmQiXXx8KG49IigiK3JbInYtYmluZCJdKyIpLnR5cGUiKSxuKXt2YXIgaT1GcihlLCJ2LWlmIiwhMCksbz1pPyImJigiK2krIikiOiIiLGE9bnVsbCE9RnIoZSwidi1lbHNlIiwhMCkscz1GcihlLCJ2LWVsc2UtaWYiLCEwKSxjPV9hKGUpO3BhKGMpLGpyKGMsInR5cGUiLCJjaGVja2JveCIpLGZhKGMsdCksYy5wcm9jZXNzZWQ9ITAsYy5pZj0iKCIrbisiKT09PSdjaGVja2JveCciK28sZGEoYyx7ZXhwOmMuaWYsYmxvY2s6Y30pO3ZhciB1PV9hKGUpO0ZyKHUsInYtZm9yIiwhMCksanIodSwidHlwZSIsInJhZGlvIiksZmEodSx0KSxkYShjLHtleHA6IigiK24rIik9PT0ncmFkaW8nIitvLGJsb2NrOnV9KTt2YXIgbD1fYShlKTtyZXR1cm4gRnIobCwidi1mb3IiLCEwKSxqcihsLCI6dHlwZSIsbiksZmEobCx0KSxkYShjLHtleHA6aSxibG9jazpsfSksYT9jLmVsc2U9ITA6cyYmKGMuZWxzZWlmPXMpLGN9fX19XTt2YXIgJGEsd2EsQ2E9e2V4cGVjdEhUTUw6ITAsbW9kdWxlczpiYSxkaXJlY3RpdmVzOnttb2RlbDpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZSxpPXQubW9kaWZpZXJzLG89ZS50YWcsYT1lLmF0dHJzTWFwLnR5cGU7aWYoZS5jb21wb25lbnQpcmV0dXJuIEhyKGUscixpKSwhMTtpZigic2VsZWN0Ij09PW8pIWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj0ndmFyICQkc2VsZWN0ZWRWYWwgPSBBcnJheS5wcm90b3R5cGUuZmlsdGVyLmNhbGwoJGV2ZW50LnRhcmdldC5vcHRpb25zLGZ1bmN0aW9uKG8pe3JldHVybiBvLnNlbGVjdGVkfSkubWFwKGZ1bmN0aW9uKG8pe3ZhciB2YWwgPSAiX3ZhbHVlIiBpbiBvID8gby5fdmFsdWUgOiBvLnZhbHVlO3JldHVybiAnKyhuJiZuLm51bWJlcj8iX24odmFsKSI6InZhbCIpKyJ9KTsiO3I9cisiICIrQnIodCwiJGV2ZW50LnRhcmdldC5tdWx0aXBsZSA\/ICQkc2VsZWN0ZWRWYWwgOiAkJHNlbGVjdGVkVmFsWzBdIiksTXIoZSwiY2hhbmdlIixyLG51bGwsITApfShlLHIsaSk7ZWxzZSBpZigiaW5wdXQiPT09byYmImNoZWNrYm94Ij09PWEpIWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uJiZuLm51bWJlcixpPUlyKGUsInZhbHVlIil8fCJudWxsIixvPUlyKGUsInRydWUtdmFsdWUiKXx8InRydWUiLGE9SXIoZSwiZmFsc2UtdmFsdWUiKXx8ImZhbHNlIjtFcihlLCJjaGVja2VkIiwiQXJyYXkuaXNBcnJheSgiK3QrIik\/X2koIit0KyIsIitpKyIpPi0xIisoInRydWUiPT09bz8iOigiK3QrIikiOiI6X3EoIit0KyIsIitvKyIpIikpLE1yKGUsImNoYW5nZSIsInZhciAkJGE9Iit0KyIsJCRlbD0kZXZlbnQudGFyZ2V0LCQkYz0kJGVsLmNoZWNrZWQ\/KCIrbysiKTooIithKyIpO2lmKEFycmF5LmlzQXJyYXkoJCRhKSl7dmFyICQkdj0iKyhyPyJfbigiK2krIikiOmkpKyIsJCRpPV9pKCQkYSwkJHYpO2lmKCQkZWwuY2hlY2tlZCl7JCRpPDAmJigiK0JyKHQsIiQkYS5jb25jYXQoWyQkdl0pIikrIil9ZWxzZXskJGk+LTEmJigiK0JyKHQsIiQkYS5zbGljZSgwLCQkaSkuY29uY2F0KCQkYS5zbGljZSgkJGkrMSkpIikrIil9fWVsc2V7IitCcih0LCIkJGMiKSsifSIsbnVsbCwhMCl9KGUscixpKTtlbHNlIGlmKCJpbnB1dCI9PT1vJiYicmFkaW8iPT09YSkhZnVuY3Rpb24oZSx0LG4pe3ZhciByPW4mJm4ubnVtYmVyLGk9SXIoZSwidmFsdWUiKXx8Im51bGwiO0VyKGUsImNoZWNrZWQiLCJfcSgiK3QrIiwiKyhpPXI\/Il9uKCIraSsiKSI6aSkrIikiKSxNcihlLCJjaGFuZ2UiLEJyKHQsaSksbnVsbCwhMCl9KGUscixpKTtlbHNlIGlmKCJpbnB1dCI9PT1vfHwidGV4dGFyZWEiPT09bykhZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuYXR0cnNNYXAudHlwZSxpPW58fHt9LG89aS5sYXp5LGE9aS5udW1iZXIscz1pLnRyaW0sYz0hbyYmInJhbmdlIiE9PXIsdT1vPyJjaGFuZ2UiOiJyYW5nZSI9PT1yP1dyOiJpbnB1dCIsbD0iJGV2ZW50LnRhcmdldC52YWx1ZSI7cyYmKGw9IiRldmVudC50YXJnZXQudmFsdWUudHJpbSgpIiksYSYmKGw9Il9uKCIrbCsiKSIpO3ZhciBmPUJyKHQsbCk7YyYmKGY9ImlmKCRldmVudC50YXJnZXQuY29tcG9zaW5nKXJldHVybjsiK2YpLEVyKGUsInZhbHVlIiwiKCIrdCsiKSIpLE1yKGUsdSxmLG51bGwsITApLChzfHxhKSYmTXIoZSwiYmx1ciIsIiRmb3JjZVVwZGF0ZSgpIil9KGUscixpKTtlbHNlIGlmKCFGLmlzUmVzZXJ2ZWRUYWcobykpcmV0dXJuIEhyKGUscixpKSwhMTtyZXR1cm4hMH0sdGV4dDpmdW5jdGlvbihlLHQpe3QudmFsdWUmJkVyKGUsInRleHRDb250ZW50IiwiX3MoIit0LnZhbHVlKyIpIix0KX0saHRtbDpmdW5jdGlvbihlLHQpe3QudmFsdWUmJkVyKGUsImlubmVySFRNTCIsIl9zKCIrdC52YWx1ZSsiKSIsdCl9fSxpc1ByZVRhZzpmdW5jdGlvbihlKXtyZXR1cm4icHJlIj09PWV9LGlzVW5hcnlUYWc6Ym8sbXVzdFVzZVByb3A6am4sY2FuQmVMZWZ0T3BlblRhZzokbyxpc1Jlc2VydmVkVGFnOlduLGdldFRhZ05hbWVzcGFjZTpabixzdGF0aWNLZXlzOmZ1bmN0aW9uKGUpe3JldHVybiBlLnJlZHVjZShmdW5jdGlvbihlLHQpe3JldHVybiBlLmNvbmNhdCh0LnN0YXRpY0tleXN8fFtdKX0sW10pLmpvaW4oIiwiKX0oYmEpfSx4YT1nKGZ1bmN0aW9uKGUpe3JldHVybiBwKCJ0eXBlLHRhZyxhdHRyc0xpc3QsYXR0cnNNYXAscGxhaW4scGFyZW50LGNoaWxkcmVuLGF0dHJzLHN0YXJ0LGVuZCxyYXdBdHRyc01hcCIrKGU\/IiwiK2U6IiIpKX0pO2Z1bmN0aW9uIGthKGUsdCl7ZSYmKCRhPXhhKHQuc3RhdGljS2V5c3x8IiIpLHdhPXQuaXNSZXNlcnZlZFRhZ3x8VCxmdW5jdGlvbiBlKHQpe3Quc3RhdGljPWZ1bmN0aW9uKGUpe2lmKDI9PT1lLnR5cGUpcmV0dXJuITE7aWYoMz09PWUudHlwZSlyZXR1cm4hMDtyZXR1cm4hKCFlLnByZSYmKGUuaGFzQmluZGluZ3N8fGUuaWZ8fGUuZm9yfHxkKGUudGFnKXx8IXdhKGUudGFnKXx8ZnVuY3Rpb24oZSl7Zm9yKDtlLnBhcmVudDspe2lmKCJ0ZW1wbGF0ZSIhPT0oZT1lLnBhcmVudCkudGFnKXJldHVybiExO2lmKGUuZm9yKXJldHVybiEwfXJldHVybiExfShlKXx8IU9iamVjdC5rZXlzKGUpLmV2ZXJ5KCRhKSkpfSh0KTtpZigxPT09dC50eXBlKXtpZighd2EodC50YWcpJiYic2xvdCIhPT10LnRhZyYmbnVsbD09dC5hdHRyc01hcFsiaW5saW5lLXRlbXBsYXRlIl0pcmV0dXJuO2Zvcih2YXIgbj0wLHI9dC5jaGlsZHJlbi5sZW5ndGg7bjxyO24rKyl7dmFyIGk9dC5jaGlsZHJlbltuXTtlKGkpLGkuc3RhdGljfHwodC5zdGF0aWM9ITEpfWlmKHQuaWZDb25kaXRpb25zKWZvcih2YXIgbz0xLGE9dC5pZkNvbmRpdGlvbnMubGVuZ3RoO288YTtvKyspe3ZhciBzPXQuaWZDb25kaXRpb25zW29dLmJsb2NrO2Uocykscy5zdGF0aWN8fCh0LnN0YXRpYz0hMSl9fX0oZSksZnVuY3Rpb24gZSh0LG4pe2lmKDE9PT10LnR5cGUpe2lmKCh0LnN0YXRpY3x8dC5vbmNlKSYmKHQuc3RhdGljSW5Gb3I9biksdC5zdGF0aWMmJnQuY2hpbGRyZW4ubGVuZ3RoJiYoMSE9PXQuY2hpbGRyZW4ubGVuZ3RofHwzIT09dC5jaGlsZHJlblswXS50eXBlKSlyZXR1cm4gdm9pZCh0LnN0YXRpY1Jvb3Q9ITApO2lmKHQuc3RhdGljUm9vdD0hMSx0LmNoaWxkcmVuKWZvcih2YXIgcj0wLGk9dC5jaGlsZHJlbi5sZW5ndGg7cjxpO3IrKyllKHQuY2hpbGRyZW5bcl0sbnx8ISF0LmZvcik7aWYodC5pZkNvbmRpdGlvbnMpZm9yKHZhciBvPTEsYT10LmlmQ29uZGl0aW9ucy5sZW5ndGg7bzxhO28rKyllKHQuaWZDb25kaXRpb25zW29dLmJsb2NrLG4pfX0oZSwhMSkpfXZhciBBYT0vXihbXHckX10rfFwoW14pXSo\/XCkpXHMqPT58XmZ1bmN0aW9uKD86XHMrW1x3JF0rKT9ccypcKC8sT2E9L1woW14pXSo\/XCk7KiQvLFNhPS9eW0EtWmEtel8kXVtcdyRdKig\/OlwuW0EtWmEtel8kXVtcdyRdKnxcWydbXiddKj8nXXxcWyJbXiJdKj8iXXxcW1xkK118XFtbQS1aYS16XyRdW1x3JF0qXSkqJC8sVGE9e2VzYzoyNyx0YWI6OSxlbnRlcjoxMyxzcGFjZTozMix1cDozOCxsZWZ0OjM3LHJpZ2h0OjM5LGRvd246NDAsZGVsZXRlOls4LDQ2XX0sRWE9e2VzYzpbIkVzYyIsIkVzY2FwZSJdLHRhYjoiVGFiIixlbnRlcjoiRW50ZXIiLHNwYWNlOlsiICIsIlNwYWNlYmFyIl0sdXA6WyJVcCIsIkFycm93VXAiXSxsZWZ0OlsiTGVmdCIsIkFycm93TGVmdCJdLHJpZ2h0OlsiUmlnaHQiLCJBcnJvd1JpZ2h0Il0sZG93bjpbIkRvd24iLCJBcnJvd0Rvd24iXSxkZWxldGU6WyJCYWNrc3BhY2UiLCJEZWxldGUiLCJEZWwiXX0sTmE9ZnVuY3Rpb24oZSl7cmV0dXJuImlmKCIrZSsiKXJldHVybiBudWxsOyJ9LGphPXtzdG9wOiIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IixwcmV2ZW50OiIkZXZlbnQucHJldmVudERlZmF1bHQoKTsiLHNlbGY6TmEoIiRldmVudC50YXJnZXQgIT09ICRldmVudC5jdXJyZW50VGFyZ2V0IiksY3RybDpOYSgiISRldmVudC5jdHJsS2V5Iiksc2hpZnQ6TmEoIiEkZXZlbnQuc2hpZnRLZXkiKSxhbHQ6TmEoIiEkZXZlbnQuYWx0S2V5IiksbWV0YTpOYSgiISRldmVudC5tZXRhS2V5IiksbGVmdDpOYSgiJ2J1dHRvbicgaW4gJGV2ZW50ICYmICRldmVudC5idXR0b24gIT09IDAiKSxtaWRkbGU6TmEoIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAxIikscmlnaHQ6TmEoIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAyIil9O2Z1bmN0aW9uIERhKGUsdCl7dmFyIG49dD8ibmF0aXZlT246Ijoib246IixyPSIiLGk9IiI7Zm9yKHZhciBvIGluIGUpe3ZhciBhPUxhKGVbb10pO2Vbb10mJmVbb10uZHluYW1pYz9pKz1vKyIsIithKyIsIjpyKz0nIicrbysnIjonK2ErIiwifXJldHVybiByPSJ7IityLnNsaWNlKDAsLTEpKyJ9IixpP24rIl9kKCIrcisiLFsiK2kuc2xpY2UoMCwtMSkrIl0pIjpuK3J9ZnVuY3Rpb24gTGEoZSl7aWYoIWUpcmV0dXJuImZ1bmN0aW9uKCl7fSI7aWYoQXJyYXkuaXNBcnJheShlKSlyZXR1cm4iWyIrZS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIExhKGUpfSkuam9pbigiLCIpKyJdIjt2YXIgdD1TYS50ZXN0KGUudmFsdWUpLG49QWEudGVzdChlLnZhbHVlKSxyPVNhLnRlc3QoZS52YWx1ZS5yZXBsYWNlKE9hLCIiKSk7aWYoZS5tb2RpZmllcnMpe3ZhciBpPSIiLG89IiIsYT1bXTtmb3IodmFyIHMgaW4gZS5tb2RpZmllcnMpaWYoamFbc10pbys9amFbc10sVGFbc10mJmEucHVzaChzKTtlbHNlIGlmKCJleGFjdCI9PT1zKXt2YXIgYz1lLm1vZGlmaWVycztvKz1OYShbImN0cmwiLCJzaGlmdCIsImFsdCIsIm1ldGEiXS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWNbZV19KS5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIiRldmVudC4iK2UrIktleSJ9KS5qb2luKCJ8fCIpKX1lbHNlIGEucHVzaChzKTtyZXR1cm4gYS5sZW5ndGgmJihpKz1mdW5jdGlvbihlKXtyZXR1cm4iaWYoISRldmVudC50eXBlLmluZGV4T2YoJ2tleScpJiYiK2UubWFwKE1hKS5qb2luKCImJiIpKyIpcmV0dXJuIG51bGw7In0oYSkpLG8mJihpKz1vKSwiZnVuY3Rpb24oJGV2ZW50KXsiK2krKHQ\/InJldHVybiAiK2UudmFsdWUrIigkZXZlbnQpIjpuPyJyZXR1cm4gKCIrZS52YWx1ZSsiKSgkZXZlbnQpIjpyPyJyZXR1cm4gIitlLnZhbHVlOmUudmFsdWUpKyJ9In1yZXR1cm4gdHx8bj9lLnZhbHVlOiJmdW5jdGlvbigkZXZlbnQpeyIrKHI\/InJldHVybiAiK2UudmFsdWU6ZS52YWx1ZSkrIn0ifWZ1bmN0aW9uIE1hKGUpe3ZhciB0PXBhcnNlSW50KGUsMTApO2lmKHQpcmV0dXJuIiRldmVudC5rZXlDb2RlIT09Iit0O3ZhciBuPVRhW2VdLHI9RWFbZV07cmV0dXJuIl9rKCRldmVudC5rZXlDb2RlLCIrSlNPTi5zdHJpbmdpZnkoZSkrIiwiK0pTT04uc3RyaW5naWZ5KG4pKyIsJGV2ZW50LmtleSwiK0pTT04uc3RyaW5naWZ5KHIpKyIpIn12YXIgSWE9e29uOmZ1bmN0aW9uKGUsdCl7ZS53cmFwTGlzdGVuZXJzPWZ1bmN0aW9uKGUpe3JldHVybiJfZygiK2UrIiwiK3QudmFsdWUrIikifX0sYmluZDpmdW5jdGlvbihlLHQpe2Uud3JhcERhdGE9ZnVuY3Rpb24obil7cmV0dXJuIl9iKCIrbisiLCciK2UudGFnKyInLCIrdC52YWx1ZSsiLCIrKHQubW9kaWZpZXJzJiZ0Lm1vZGlmaWVycy5wcm9wPyJ0cnVlIjoiZmFsc2UiKSsodC5tb2RpZmllcnMmJnQubW9kaWZpZXJzLnN5bmM\/Iix0cnVlIjoiIikrIikifX0sY2xvYWs6U30sRmE9ZnVuY3Rpb24oZSl7dGhpcy5vcHRpb25zPWUsdGhpcy53YXJuPWUud2Fybnx8U3IsdGhpcy50cmFuc2Zvcm1zPVRyKGUubW9kdWxlcywidHJhbnNmb3JtQ29kZSIpLHRoaXMuZGF0YUdlbkZucz1UcihlLm1vZHVsZXMsImdlbkRhdGEiKSx0aGlzLmRpcmVjdGl2ZXM9QShBKHt9LElhKSxlLmRpcmVjdGl2ZXMpO3ZhciB0PWUuaXNSZXNlcnZlZFRhZ3x8VDt0aGlzLm1heWJlQ29tcG9uZW50PWZ1bmN0aW9uKGUpe3JldHVybiEhZS5jb21wb25lbnR8fCF0KGUudGFnKX0sdGhpcy5vbmNlSWQ9MCx0aGlzLnN0YXRpY1JlbmRlckZucz1bXSx0aGlzLnByZT0hMX07ZnVuY3Rpb24gUGEoZSx0KXt2YXIgbj1uZXcgRmEodCk7cmV0dXJue3JlbmRlcjoid2l0aCh0aGlzKXtyZXR1cm4gIisoZT9SYShlLG4pOidfYygiZGl2IiknKSsifSIsc3RhdGljUmVuZGVyRm5zOm4uc3RhdGljUmVuZGVyRm5zfX1mdW5jdGlvbiBSYShlLHQpe2lmKGUucGFyZW50JiYoZS5wcmU9ZS5wcmV8fGUucGFyZW50LnByZSksZS5zdGF0aWNSb290JiYhZS5zdGF0aWNQcm9jZXNzZWQpcmV0dXJuIEhhKGUsdCk7aWYoZS5vbmNlJiYhZS5vbmNlUHJvY2Vzc2VkKXJldHVybiBCYShlLHQpO2lmKGUuZm9yJiYhZS5mb3JQcm9jZXNzZWQpcmV0dXJuIHphKGUsdCk7aWYoZS5pZiYmIWUuaWZQcm9jZXNzZWQpcmV0dXJuIFVhKGUsdCk7aWYoInRlbXBsYXRlIiE9PWUudGFnfHxlLnNsb3RUYXJnZXR8fHQucHJlKXtpZigic2xvdCI9PT1lLnRhZylyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1lLnNsb3ROYW1lfHwnImRlZmF1bHQiJyxyPXFhKGUsdCksaT0iX3QoIituKyhyPyIsIityOiIiKSxvPWUuYXR0cnN8fGUuZHluYW1pY0F0dHJzP0dhKChlLmF0dHJzfHxbXSkuY29uY2F0KGUuZHluYW1pY0F0dHJzfHxbXSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybntuYW1lOmIoZS5uYW1lKSx2YWx1ZTplLnZhbHVlLGR5bmFtaWM6ZS5keW5hbWljfX0pKTpudWxsLGE9ZS5hdHRyc01hcFsidi1iaW5kIl07IW8mJiFhfHxyfHwoaSs9IixudWxsIik7byYmKGkrPSIsIitvKTthJiYoaSs9KG8\/IiI6IixudWxsIikrIiwiK2EpO3JldHVybiBpKyIpIn0oZSx0KTt2YXIgbjtpZihlLmNvbXBvbmVudCluPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LmlubGluZVRlbXBsYXRlP251bGw6cWEodCxuLCEwKTtyZXR1cm4iX2MoIitlKyIsIitWYSh0LG4pKyhyPyIsIityOiIiKSsiKSJ9KGUuY29tcG9uZW50LGUsdCk7ZWxzZXt2YXIgcjsoIWUucGxhaW58fGUucHJlJiZ0Lm1heWJlQ29tcG9uZW50KGUpKSYmKHI9VmEoZSx0KSk7dmFyIGk9ZS5pbmxpbmVUZW1wbGF0ZT9udWxsOnFhKGUsdCwhMCk7bj0iX2MoJyIrZS50YWcrIiciKyhyPyIsIityOiIiKSsoaT8iLCIraToiIikrIikifWZvcih2YXIgbz0wO288dC50cmFuc2Zvcm1zLmxlbmd0aDtvKyspbj10LnRyYW5zZm9ybXNbb10oZSxuKTtyZXR1cm4gbn1yZXR1cm4gcWEoZSx0KXx8InZvaWQgMCJ9ZnVuY3Rpb24gSGEoZSx0KXtlLnN0YXRpY1Byb2Nlc3NlZD0hMDt2YXIgbj10LnByZTtyZXR1cm4gZS5wcmUmJih0LnByZT1lLnByZSksdC5zdGF0aWNSZW5kZXJGbnMucHVzaCgid2l0aCh0aGlzKXtyZXR1cm4gIitSYShlLHQpKyJ9IiksdC5wcmU9biwiX20oIisodC5zdGF0aWNSZW5kZXJGbnMubGVuZ3RoLTEpKyhlLnN0YXRpY0luRm9yPyIsdHJ1ZSI6IiIpKyIpIn1mdW5jdGlvbiBCYShlLHQpe2lmKGUub25jZVByb2Nlc3NlZD0hMCxlLmlmJiYhZS5pZlByb2Nlc3NlZClyZXR1cm4gVWEoZSx0KTtpZihlLnN0YXRpY0luRm9yKXtmb3IodmFyIG49IiIscj1lLnBhcmVudDtyOyl7aWYoci5mb3Ipe249ci5rZXk7YnJlYWt9cj1yLnBhcmVudH1yZXR1cm4gbj8iX28oIitSYShlLHQpKyIsIit0Lm9uY2VJZCsrKyIsIituKyIpIjpSYShlLHQpfXJldHVybiBIYShlLHQpfWZ1bmN0aW9uIFVhKGUsdCxuLHIpe3JldHVybiBlLmlmUHJvY2Vzc2VkPSEwLGZ1bmN0aW9uIGUodCxuLHIsaSl7aWYoIXQubGVuZ3RoKXJldHVybiBpfHwiX2UoKSI7dmFyIG89dC5zaGlmdCgpO3JldHVybiBvLmV4cD8iKCIrby5leHArIik\/IithKG8uYmxvY2spKyI6IitlKHQsbixyLGkpOiIiK2Eoby5ibG9jayk7ZnVuY3Rpb24gYShlKXtyZXR1cm4gcj9yKGUsbik6ZS5vbmNlP0JhKGUsbik6UmEoZSxuKX19KGUuaWZDb25kaXRpb25zLnNsaWNlKCksdCxuLHIpfWZ1bmN0aW9uIHphKGUsdCxuLHIpe3ZhciBpPWUuZm9yLG89ZS5hbGlhcyxhPWUuaXRlcmF0b3IxPyIsIitlLml0ZXJhdG9yMToiIixzPWUuaXRlcmF0b3IyPyIsIitlLml0ZXJhdG9yMjoiIjtyZXR1cm4gZS5mb3JQcm9jZXNzZWQ9ITAsKHJ8fCJfbCIpKyIoKCIraSsiKSxmdW5jdGlvbigiK28rYStzKyIpe3JldHVybiAiKyhufHxSYSkoZSx0KSsifSkifWZ1bmN0aW9uIFZhKGUsdCl7dmFyIG49InsiLHI9ZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmRpcmVjdGl2ZXM7aWYoIW4pcmV0dXJuO3ZhciByLGksbyxhLHM9ImRpcmVjdGl2ZXM6WyIsYz0hMTtmb3Iocj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl7bz1uW3JdLGE9ITA7dmFyIHU9dC5kaXJlY3RpdmVzW28ubmFtZV07dSYmKGE9ISF1KGUsbyx0Lndhcm4pKSxhJiYoYz0hMCxzKz0ne25hbWU6Iicrby5uYW1lKyciLHJhd05hbWU6Iicrby5yYXdOYW1lKyciJysoby52YWx1ZT8iLHZhbHVlOigiK28udmFsdWUrIiksZXhwcmVzc2lvbjoiK0pTT04uc3RyaW5naWZ5KG8udmFsdWUpOiIiKSsoby5hcmc\/Iixhcmc6Iisoby5pc0R5bmFtaWNBcmc\/by5hcmc6JyInK28uYXJnKyciJyk6IiIpKyhvLm1vZGlmaWVycz8iLG1vZGlmaWVyczoiK0pTT04uc3RyaW5naWZ5KG8ubW9kaWZpZXJzKToiIikrIn0sIil9aWYoYylyZXR1cm4gcy5zbGljZSgwLC0xKSsiXSJ9KGUsdCk7ciYmKG4rPXIrIiwiKSxlLmtleSYmKG4rPSJrZXk6IitlLmtleSsiLCIpLGUucmVmJiYobis9InJlZjoiK2UucmVmKyIsIiksZS5yZWZJbkZvciYmKG4rPSJyZWZJbkZvcjp0cnVlLCIpLGUucHJlJiYobis9InByZTp0cnVlLCIpLGUuY29tcG9uZW50JiYobis9J3RhZzoiJytlLnRhZysnIiwnKTtmb3IodmFyIGk9MDtpPHQuZGF0YUdlbkZucy5sZW5ndGg7aSsrKW4rPXQuZGF0YUdlbkZuc1tpXShlKTtpZihlLmF0dHJzJiYobis9ImF0dHJzOiIrR2EoZS5hdHRycykrIiwiKSxlLnByb3BzJiYobis9ImRvbVByb3BzOiIrR2EoZS5wcm9wcykrIiwiKSxlLmV2ZW50cyYmKG4rPURhKGUuZXZlbnRzLCExKSsiLCIpLGUubmF0aXZlRXZlbnRzJiYobis9RGEoZS5uYXRpdmVFdmVudHMsITApKyIsIiksZS5zbG90VGFyZ2V0JiYhZS5zbG90U2NvcGUmJihuKz0ic2xvdDoiK2Uuc2xvdFRhcmdldCsiLCIpLGUuc2NvcGVkU2xvdHMmJihuKz1mdW5jdGlvbihlLHQsbil7dmFyIHI9ZS5mb3J8fE9iamVjdC5rZXlzKHQpLnNvbWUoZnVuY3Rpb24oZSl7dmFyIG49dFtlXTtyZXR1cm4gbi5zbG90VGFyZ2V0RHluYW1pY3x8bi5pZnx8bi5mb3J8fEthKG4pfSksaT0hIWUuaWY7aWYoIXIpZm9yKHZhciBvPWUucGFyZW50O287KXtpZihvLnNsb3RTY29wZSYmby5zbG90U2NvcGUhPT1jYXx8by5mb3Ipe3I9ITA7YnJlYWt9by5pZiYmKGk9ITApLG89by5wYXJlbnR9dmFyIGE9T2JqZWN0LmtleXModCkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBKYSh0W2VdLG4pfSkuam9pbigiLCIpO3JldHVybiJzY29wZWRTbG90czpfdShbIithKyJdIisocj8iLG51bGwsdHJ1ZSI6IiIpKyghciYmaT8iLG51bGwsZmFsc2UsIitmdW5jdGlvbihlKXt2YXIgdD01MzgxLG49ZS5sZW5ndGg7Zm9yKDtuOyl0PTMzKnReZS5jaGFyQ29kZUF0KC0tbik7cmV0dXJuIHQ+Pj4wfShhKToiIikrIikifShlLGUuc2NvcGVkU2xvdHMsdCkrIiwiKSxlLm1vZGVsJiYobis9Im1vZGVsOnt2YWx1ZToiK2UubW9kZWwudmFsdWUrIixjYWxsYmFjazoiK2UubW9kZWwuY2FsbGJhY2srIixleHByZXNzaW9uOiIrZS5tb2RlbC5leHByZXNzaW9uKyJ9LCIpLGUuaW5saW5lVGVtcGxhdGUpe3ZhciBvPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5jaGlsZHJlblswXTtpZihuJiYxPT09bi50eXBlKXt2YXIgcj1QYShuLHQub3B0aW9ucyk7cmV0dXJuImlubGluZVRlbXBsYXRlOntyZW5kZXI6ZnVuY3Rpb24oKXsiK3IucmVuZGVyKyJ9LHN0YXRpY1JlbmRlckZuczpbIityLnN0YXRpY1JlbmRlckZucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuImZ1bmN0aW9uKCl7IitlKyJ9In0pLmpvaW4oIiwiKSsiXX0ifX0oZSx0KTtvJiYobis9bysiLCIpfXJldHVybiBuPW4ucmVwbGFjZSgvLCQvLCIiKSsifSIsZS5keW5hbWljQXR0cnMmJihuPSJfYigiK24rJywiJytlLnRhZysnIiwnK0dhKGUuZHluYW1pY0F0dHJzKSsiKSIpLGUud3JhcERhdGEmJihuPWUud3JhcERhdGEobikpLGUud3JhcExpc3RlbmVycyYmKG49ZS53cmFwTGlzdGVuZXJzKG4pKSxufWZ1bmN0aW9uIEthKGUpe3JldHVybiAxPT09ZS50eXBlJiYoInNsb3QiPT09ZS50YWd8fGUuY2hpbGRyZW4uc29tZShLYSkpfWZ1bmN0aW9uIEphKGUsdCl7dmFyIG49ZS5hdHRyc01hcFsic2xvdC1zY29wZSJdO2lmKGUuaWYmJiFlLmlmUHJvY2Vzc2VkJiYhbilyZXR1cm4gVWEoZSx0LEphLCJudWxsIik7aWYoZS5mb3ImJiFlLmZvclByb2Nlc3NlZClyZXR1cm4gemEoZSx0LEphKTt2YXIgcj1lLnNsb3RTY29wZT09PWNhPyIiOlN0cmluZyhlLnNsb3RTY29wZSksaT0iZnVuY3Rpb24oIityKyIpe3JldHVybiAiKygidGVtcGxhdGUiPT09ZS50YWc\/ZS5pZiYmbj8iKCIrZS5pZisiKT8iKyhxYShlLHQpfHwidW5kZWZpbmVkIikrIjp1bmRlZmluZWQiOnFhKGUsdCl8fCJ1bmRlZmluZWQiOlJhKGUsdCkpKyJ9IixvPXI\/IiI6Iixwcm94eTp0cnVlIjtyZXR1cm4ie2tleToiKyhlLnNsb3RUYXJnZXR8fCciZGVmYXVsdCInKSsiLGZuOiIraStvKyJ9In1mdW5jdGlvbiBxYShlLHQsbixyLGkpe3ZhciBvPWUuY2hpbGRyZW47aWYoby5sZW5ndGgpe3ZhciBhPW9bMF07aWYoMT09PW8ubGVuZ3RoJiZhLmZvciYmInRlbXBsYXRlIiE9PWEudGFnJiYic2xvdCIhPT1hLnRhZyl7dmFyIHM9bj90Lm1heWJlQ29tcG9uZW50KGEpPyIsMSI6IiwwIjoiIjtyZXR1cm4iIisocnx8UmEpKGEsdCkrc312YXIgYz1uP2Z1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdO2lmKDE9PT1pLnR5cGUpe2lmKFdhKGkpfHxpLmlmQ29uZGl0aW9ucyYmaS5pZkNvbmRpdGlvbnMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gV2EoZS5ibG9jayl9KSl7bj0yO2JyZWFrfSh0KGkpfHxpLmlmQ29uZGl0aW9ucyYmaS5pZkNvbmRpdGlvbnMuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gdChlLmJsb2NrKX0pKSYmKG49MSl9fXJldHVybiBufShvLHQubWF5YmVDb21wb25lbnQpOjAsdT1pfHxaYTtyZXR1cm4iWyIrby5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHUoZSx0KX0pLmpvaW4oIiwiKSsiXSIrKGM\/IiwiK2M6IiIpfX1mdW5jdGlvbiBXYShlKXtyZXR1cm4gdm9pZCAwIT09ZS5mb3J8fCJ0ZW1wbGF0ZSI9PT1lLnRhZ3x8InNsb3QiPT09ZS50YWd9ZnVuY3Rpb24gWmEoZSx0KXtyZXR1cm4gMT09PWUudHlwZT9SYShlLHQpOjM9PT1lLnR5cGUmJmUuaXNDb21tZW50PyhyPWUsIl9lKCIrSlNPTi5zdHJpbmdpZnkoci50ZXh0KSsiKSIpOiJfdigiKygyPT09KG49ZSkudHlwZT9uLmV4cHJlc3Npb246WGEoSlNPTi5zdHJpbmdpZnkobi50ZXh0KSkpKyIpIjt2YXIgbixyfWZ1bmN0aW9uIEdhKGUpe2Zvcih2YXIgdD0iIixuPSIiLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXSxvPVhhKGkudmFsdWUpO2kuZHluYW1pYz9uKz1pLm5hbWUrIiwiK28rIiwiOnQrPSciJytpLm5hbWUrJyI6JytvKyIsIn1yZXR1cm4gdD0ieyIrdC5zbGljZSgwLC0xKSsifSIsbj8iX2QoIit0KyIsWyIrbi5zbGljZSgwLC0xKSsiXSkiOnR9ZnVuY3Rpb24gWGEoZSl7cmV0dXJuIGUucmVwbGFjZSgvXHUyMDI4L2csIlxcdTIwMjgiKS5yZXBsYWNlKC9cdTIwMjkvZywiXFx1MjAyOSIpfW5ldyBSZWdFeHAoIlxcYiIrImRvLGlmLGZvcixsZXQsbmV3LHRyeSx2YXIsY2FzZSxlbHNlLHdpdGgsYXdhaXQsYnJlYWssY2F0Y2gsY2xhc3MsY29uc3Qsc3VwZXIsdGhyb3csd2hpbGUseWllbGQsZGVsZXRlLGV4cG9ydCxpbXBvcnQscmV0dXJuLHN3aXRjaCxkZWZhdWx0LGV4dGVuZHMsZmluYWxseSxjb250aW51ZSxkZWJ1Z2dlcixmdW5jdGlvbixhcmd1bWVudHMiLnNwbGl0KCIsIikuam9pbigiXFxifFxcYiIpKyJcXGIiKTtmdW5jdGlvbiBZYShlLHQpe3RyeXtyZXR1cm4gbmV3IEZ1bmN0aW9uKGUpfWNhdGNoKG4pe3JldHVybiB0LnB1c2goe2VycjpuLGNvZGU6ZX0pLFN9fWZ1bmN0aW9uIFFhKGUpe3ZhciB0PU9iamVjdC5jcmVhdGUobnVsbCk7cmV0dXJuIGZ1bmN0aW9uKG4scixpKXsocj1BKHt9LHIpKS53YXJuO2RlbGV0ZSByLndhcm47dmFyIG89ci5kZWxpbWl0ZXJzP1N0cmluZyhyLmRlbGltaXRlcnMpK246bjtpZih0W29dKXJldHVybiB0W29dO3ZhciBhPWUobixyKSxzPXt9LGM9W107cmV0dXJuIHMucmVuZGVyPVlhKGEucmVuZGVyLGMpLHMuc3RhdGljUmVuZGVyRm5zPWEuc3RhdGljUmVuZGVyRm5zLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gWWEoZSxjKX0pLHRbb109c319dmFyIGVzLHRzLG5zPShlcz1mdW5jdGlvbihlLHQpe3ZhciBuPWxhKGUudHJpbSgpLHQpOyExIT09dC5vcHRpbWl6ZSYma2Eobix0KTt2YXIgcj1QYShuLHQpO3JldHVybnthc3Q6bixyZW5kZXI6ci5yZW5kZXIsc3RhdGljUmVuZGVyRm5zOnIuc3RhdGljUmVuZGVyRm5zfX0sZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LG4pe3ZhciByPU9iamVjdC5jcmVhdGUoZSksaT1bXSxvPVtdO2lmKG4pZm9yKHZhciBhIGluIG4ubW9kdWxlcyYmKHIubW9kdWxlcz0oZS5tb2R1bGVzfHxbXSkuY29uY2F0KG4ubW9kdWxlcykpLG4uZGlyZWN0aXZlcyYmKHIuZGlyZWN0aXZlcz1BKE9iamVjdC5jcmVhdGUoZS5kaXJlY3RpdmVzfHxudWxsKSxuLmRpcmVjdGl2ZXMpKSxuKSJtb2R1bGVzIiE9PWEmJiJkaXJlY3RpdmVzIiE9PWEmJihyW2FdPW5bYV0pO3Iud2Fybj1mdW5jdGlvbihlLHQsbil7KG4\/bzppKS5wdXNoKGUpfTt2YXIgcz1lcyh0LnRyaW0oKSxyKTtyZXR1cm4gcy5lcnJvcnM9aSxzLnRpcHM9byxzfXJldHVybntjb21waWxlOnQsY29tcGlsZVRvRnVuY3Rpb25zOlFhKHQpfX0pKENhKSxycz0obnMuY29tcGlsZSxucy5jb21waWxlVG9GdW5jdGlvbnMpO2Z1bmN0aW9uIGlzKGUpe3JldHVybih0cz10c3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVySFRNTD1lPyc8YSBocmVmPSJcbiIvPic6JzxkaXYgYT0iXG4iLz4nLHRzLmlubmVySFRNTC5pbmRleE9mKCImIzEwOyIpPjB9dmFyIG9zPSEheiYmaXMoITEpLGFzPSEheiYmaXMoITApLHNzPWcoZnVuY3Rpb24oZSl7dmFyIHQ9WW4oZSk7cmV0dXJuIHQmJnQuaW5uZXJIVE1MfSksY3M9d24ucHJvdG90eXBlLiRtb3VudDtyZXR1cm4gd24ucHJvdG90eXBlLiRtb3VudD1mdW5jdGlvbihlLHQpe2lmKChlPWUmJlluKGUpKT09PWRvY3VtZW50LmJvZHl8fGU9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpcmV0dXJuIHRoaXM7dmFyIG49dGhpcy4kb3B0aW9ucztpZighbi5yZW5kZXIpe3ZhciByPW4udGVtcGxhdGU7aWYocilpZigic3RyaW5nIj09dHlwZW9mIHIpIiMiPT09ci5jaGFyQXQoMCkmJihyPXNzKHIpKTtlbHNle2lmKCFyLm5vZGVUeXBlKXJldHVybiB0aGlzO3I9ci5pbm5lckhUTUx9ZWxzZSBlJiYocj1mdW5jdGlvbihlKXtpZihlLm91dGVySFRNTClyZXR1cm4gZS5vdXRlckhUTUw7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIHQuYXBwZW5kQ2hpbGQoZS5jbG9uZU5vZGUoITApKSx0LmlubmVySFRNTH0oZSkpO2lmKHIpe3ZhciBpPXJzKHIse291dHB1dFNvdXJjZVJhbmdlOiExLHNob3VsZERlY29kZU5ld2xpbmVzOm9zLHNob3VsZERlY29kZU5ld2xpbmVzRm9ySHJlZjphcyxkZWxpbWl0ZXJzOm4uZGVsaW1pdGVycyxjb21tZW50czpuLmNvbW1lbnRzfSx0aGlzKSxvPWkucmVuZGVyLGE9aS5zdGF0aWNSZW5kZXJGbnM7bi5yZW5kZXI9byxuLnN0YXRpY1JlbmRlckZucz1hfX1yZXR1cm4gY3MuY2FsbCh0aGlzLGUsdCl9LHduLmNvbXBpbGU9cnMsd259KTsKLyoqIC9tL2pzL3Z1ZS92dWUtdGhlLW1hc2suanMgKiovCnZhciBfX19kMmNfdnVldGhlbWFza2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MzgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDI0LTAxLTMxIDE0OjMzOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIzLTAxLTEyIDExOjQwOjU1IjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIzLTAxLTEyIDEwOjUwOjQxIjsidXNlIHN0cmljdCI7X19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDIxLTEyLTE1IDEyOjUxOjI0IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihoLGMpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9YygpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFtdLGMpOiJvYmplY3QiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLlZ1ZVRoZU1hc2s9YygpOmguVnVlVGhlTWFzaz1jKCl9KSh0aGlzLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKGgpe2Z1bmN0aW9uIGMoZCl7aWYoYVtkXSlyZXR1cm4gYVtkXS5leHBvcnRzO3ZhciBlPWFbZF09e2k6ZCxsOiExLGV4cG9ydHM6e319O3JldHVybiBoW2RdLmNhbGwoZS5leHBvcnRzLGUsZS5leHBvcnRzLGMpLGUubD0hMCxlLmV4cG9ydHN9dmFyIGE9e307cmV0dXJuIGMubT1oLGMuYz1hLGMuaT1mdW5jdGlvbihkKXtyZXR1cm4gZH0sYy5kPWZ1bmN0aW9uKGQsZSxsKXtjLm8oZCxlKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZSx7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsCmdldDpsfSl9LGMubj1mdW5jdGlvbihkKXt2YXIgZT1kJiZkLl9fZXNNb2R1bGU\/ZnVuY3Rpb24oKXtyZXR1cm4gZC5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBkfTtyZXR1cm4gYy5kKGUsImEiLGUpLGV9LGMubz1mdW5jdGlvbihkLGUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxlKX0sYy5wPSIuIixjKGMucz0xMCl9KFtmdW5jdGlvbihoLGMpe2guZXhwb3J0cz17IiMiOntwYXR0ZXJuOi9cZC99LFg6e3BhdHRlcm46L1swLTlhLXpBLVpdL30sUzp7cGF0dGVybjovW2EtekEtWl0vfSxBOntwYXR0ZXJuOi9bYS16QS1aXS8sdHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvTG9jYWxlVXBwZXJDYXNlKCl9fSxhOntwYXR0ZXJuOi9bYS16QS1aXS8sdHJhbnNmb3JtOmZ1bmN0aW9uKGEpe3JldHVybiBhLnRvTG9jYWxlTG93ZXJDYXNlKCl9fSwiISI6e2VzY2FwZTohMH19fSxmdW5jdGlvbihoLGMsYSl7ZnVuY3Rpb24gZChiKXt2YXIgZj0KZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIGYuaW5pdEV2ZW50KGIsITAsITApLGZ9dmFyIGU9YSgyKTtoPWEoMCk7dmFyIGw9YS5uKGgpO2MuYT1mdW5jdGlvbihiLGYpe3ZhciBnPWYudmFsdWU7aWYoKEFycmF5LmlzQXJyYXkoZyl8fCJzdHJpbmciPT10eXBlb2YgZykmJihnPXttYXNrOmcsdG9rZW5zOmwuYX0pLCJJTlBVVCIhPT1iLnRhZ05hbWUudG9Mb2NhbGVVcHBlckNhc2UoKSl7Zj1iLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpO2lmKDEhPT1mLmxlbmd0aCl0aHJvdyBFcnJvcigidi1tYXNrIGRpcmVjdGl2ZSByZXF1aXJlcyAxIGlucHV0LCBmb3VuZCAiK2YubGVuZ3RoKTtiPWZbMF19Yi5vbmlucHV0PWZ1bmN0aW9uKG0pe2lmKG0uaXNUcnVzdGVkKXt2YXIgaz1iLnNlbGVjdGlvbkVuZDttPWIudmFsdWVbay0xXTtmb3IoYi52YWx1ZT1hLmkoZS5hKShiLnZhbHVlLGcubWFzaywhMCxnLnRva2Vucyk7azxiLnZhbHVlLmxlbmd0aCYmYi52YWx1ZS5jaGFyQXQoay0KMSkhPT1tOylrKys7Yj09PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQmJihiLnNldFNlbGVjdGlvblJhbmdlKGssayksc2V0VGltZW91dChmdW5jdGlvbigpe2Iuc2V0U2VsZWN0aW9uUmFuZ2UoayxrKX0sMCkpO2IuZGlzcGF0Y2hFdmVudChkKCJpbnB1dCIpKX19O2Y9YS5pKGUuYSkoYi52YWx1ZSxnLm1hc2ssITAsZy50b2tlbnMpO2YhPT1iLnZhbHVlJiYoYi52YWx1ZT1mLGIuZGlzcGF0Y2hFdmVudChkKCJpbnB1dCIpKSl9fSxmdW5jdGlvbihoLGMsYSl7dmFyIGQ9YSg2KSxlPWEoNSk7Yy5hPWZ1bmN0aW9uKGwsYil7dmFyIGY9ISgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxnPWFyZ3VtZW50c1szXTtyZXR1cm4gQXJyYXkuaXNBcnJheShiKT9hLmkoZS5hKShkLmEsYixnKShsLGIsZixnKTphLmkoZC5hKShsLGIsZixnKX19LGZ1bmN0aW9uKGgsYyxhKXtmdW5jdGlvbiBkKGcpe2cuY29tcG9uZW50KGIuYS5uYW1lLGIuYSk7CmcuZGlyZWN0aXZlKCJtYXNrIixsLmEpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShjLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtoPWEoMCk7dmFyIGU9YS5uKGgpLGw9YSgxKTtoPWEoNyk7dmFyIGI9YS5uKGgpO2EuZChjLCJUaGVNYXNrIixmdW5jdGlvbigpe3JldHVybiBiLmF9KTthLmQoYywibWFzayIsZnVuY3Rpb24oKXtyZXR1cm4gbC5hfSk7YS5kKGMsInRva2VucyIsZnVuY3Rpb24oKXtyZXR1cm4gZS5hfSk7YS5kKGMsInZlcnNpb24iLGZ1bmN0aW9uKCl7cmV0dXJuIGZ9KTt2YXIgZj0iMC4xMS4xIjtjLmRlZmF1bHQ9ZDsidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LlZ1ZSYmd2luZG93LlZ1ZS51c2UoZCl9LGZ1bmN0aW9uKGgsYyxhKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7aD1hKDEpO3ZhciBkPWEoMCksZT1hLm4oZCksbD1hKDIpO2MuZGVmYXVsdD17bmFtZToiVGhlTWFzayIscHJvcHM6e3ZhbHVlOltTdHJpbmcsCk51bWJlcl0sbWFzazp7dHlwZTpbU3RyaW5nLEFycmF5XSxyZXF1aXJlZDohMH0sbWFza2VkOnt0eXBlOkJvb2xlYW4sZGVmYXVsdDohMX0sdG9rZW5zOnt0eXBlOk9iamVjdCxkZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGUuYX19fSxkaXJlY3RpdmVzOnttYXNrOmguYX0sZGF0YTpmdW5jdGlvbigpe3JldHVybntsYXN0VmFsdWU6bnVsbCxkaXNwbGF5OnRoaXMudmFsdWV9fSx3YXRjaDp7dmFsdWU6ZnVuY3Rpb24oYil7YiE9PXRoaXMubGFzdFZhbHVlJiYodGhpcy5kaXNwbGF5PWIpfSxtYXNrZWQ6ZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2godGhpcy5kaXNwbGF5KX19LGNvbXB1dGVkOntjb25maWc6ZnVuY3Rpb24oKXtyZXR1cm57bWFzazp0aGlzLm1hc2ssdG9rZW5zOnRoaXMudG9rZW5zLG1hc2tlZDp0aGlzLm1hc2tlZH19fSxtZXRob2RzOntvbklucHV0OmZ1bmN0aW9uKGIpe2IuaXNUcnVzdGVkfHx0aGlzLnJlZnJlc2goYi50YXJnZXQudmFsdWUpfSxyZWZyZXNoOmZ1bmN0aW9uKGIpe3RoaXMuZGlzcGxheT0KYjtiPWEuaShsLmEpKGIsdGhpcy5tYXNrLHRoaXMubWFza2VkLHRoaXMudG9rZW5zKTtiIT09dGhpcy5sYXN0VmFsdWUmJih0aGlzLmxhc3RWYWx1ZT1iLHRoaXMuJGVtaXQoImlucHV0IixiKSl9fX19LGZ1bmN0aW9uKGgsYyxhKXtjLmE9ZnVuY3Rpb24oZCxlLGwpe3JldHVybiBlPWUuc29ydChmdW5jdGlvbihiLGYpe3JldHVybiBiLmxlbmd0aC1mLmxlbmd0aH0pLGZ1bmN0aW9uKGIsZil7Zm9yKHZhciBnPSEoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sbT0wO208ZS5sZW5ndGg7KXt2YXIgaz1lW21dO20rKzt2YXIgbj1lW21dO2lmKCEobiYmZChiLG4sITAsbCkubGVuZ3RoPmsubGVuZ3RoKSlyZXR1cm4gZChiLGssZyxsKX1yZXR1cm4iIn19fSxmdW5jdGlvbihoLGMsYSl7Yy5hPWZ1bmN0aW9uKGQsZSl7dmFyIGw9ISgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxiPQphcmd1bWVudHNbM107ZD1kfHwiIjtlPWV8fCIiO2Zvcih2YXIgZj0wLGc9MCxtPSIiO2Y8ZS5sZW5ndGgmJmc8ZC5sZW5ndGg7KXt2YXIgaz1lW2ZdLG49YltrXSxwPWRbZ107biYmIW4uZXNjYXBlPyhuLnBhdHRlcm4udGVzdChwKSYmKG0rPW4udHJhbnNmb3JtP24udHJhbnNmb3JtKHApOnAsZisrKSxnKyspOihuJiZuLmVzY2FwZSYmKGYrKyxrPWVbZl0pLGwmJihtKz1rKSxwPT09ayYmZysrLGYrKyl9Zm9yKGc9IiI7ZjxlLmxlbmd0aCYmbDspe2s9ZVtmXTtpZihiW2tdKXtnPSIiO2JyZWFrfWcrPWs7ZisrfXJldHVybiBtK2d9fSxmdW5jdGlvbihoLGMsYSl7Yz1hKDgpKGEoNCksYSg5KSxudWxsLG51bGwpO2guZXhwb3J0cz1jLmV4cG9ydHN9LGZ1bmN0aW9uKGgsYyl7aC5leHBvcnRzPWZ1bmN0aW9uKGEsZCxlLGwpe3ZhciBiLGY9YT1hfHx7fSxnPXR5cGVvZiBhLmRlZmF1bHQ7Im9iamVjdCIhPT1nJiYiZnVuY3Rpb24iIT09Z3x8KGI9YSxmPWEuZGVmYXVsdCk7YT0iZnVuY3Rpb24iPT0KdHlwZW9mIGY\/Zi5vcHRpb25zOmY7aWYoZCYmKGEucmVuZGVyPWQucmVuZGVyLGEuc3RhdGljUmVuZGVyRm5zPWQuc3RhdGljUmVuZGVyRm5zKSxlJiYoYS5fc2NvcGVJZD1lKSxsKXt2YXIgbT1hLmNvbXB1dGVkfHwoYS5jb21wdXRlZD17fSk7T2JqZWN0LmtleXMobCkuZm9yRWFjaChmdW5jdGlvbihrKXt2YXIgbj1sW2tdO21ba109ZnVuY3Rpb24oKXtyZXR1cm4gbn19KX1yZXR1cm57ZXNNb2R1bGU6YixleHBvcnRzOmYsb3B0aW9uczphfX19LGZ1bmN0aW9uKGgsYyl7aC5leHBvcnRzPXtyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLiRjcmVhdGVFbGVtZW50O3JldHVybih0aGlzLl9zZWxmLl9jfHxhKSgiaW5wdXQiLHtkaXJlY3RpdmVzOlt7bmFtZToibWFzayIscmF3TmFtZToidi1tYXNrIix2YWx1ZTp0aGlzLmNvbmZpZyxleHByZXNzaW9uOiJjb25maWcifV0sYXR0cnM6e3R5cGU6InRleHQifSxkb21Qcm9wczp7dmFsdWU6dGhpcy5kaXNwbGF5fSxvbjp7aW5wdXQ6dGhpcy5vbklucHV0fX0pfSwKc3RhdGljUmVuZGVyRm5zOltdfX0sZnVuY3Rpb24oaCxjLGEpe2guZXhwb3J0cz1hKDMpfV0pfSk7Ci8qKiAvbS9qcy9maW5hbmNlX211bHRpc3RlcC5qcyAqKi8KdmFyIF9fX2QyY19maW5hbmNlbXVsdGlzdGVwanNfY19vbj0iMjAyNi0wNi0xOSAwOTozMDowMyI7J3VzZSBzdHJpY3QnO3ZhciAkanNjb21wPSRqc2NvbXB8fHt9OyRqc2NvbXAuc2NvcGU9e307JGpzY29tcC5BU1NVTUVfRVM1PSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9NQVA9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihiLGgsbSl7aWYoYj09QXJyYXkucHJvdG90eXBlfHxiPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBiO2JbaF09bS52YWx1ZTtyZXR1cm4gYn07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGIpe2I9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxiLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgaD0wO2g8Yi5sZW5ndGg7KytoKXt2YXIgbT1iW2hdO2lmKG0mJm0uTWF0aD09TWF0aClyZXR1cm4gbX10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGIsaCl7dmFyIG09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF07aWYobnVsbD09bSlyZXR1cm4gYltoXTttPWJbbV07cmV0dXJuIHZvaWQgMCE9PW0\/bTpiW2hdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGIsaCxtLG4pe2gmJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChiLGgsbSxuKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChiLGgsbSxuKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihiLGgsbSxuKXttPSRqc2NvbXAuZ2xvYmFsO2I9Yi5zcGxpdCgiLiIpO2ZvcihuPTA7bjxiLmxlbmd0aC0xO24rKyl7dmFyIHI9YltuXTtpZighKHIgaW4gbSkpcmV0dXJuO209bVtyXX1iPWJbYi5sZW5ndGgtMV07bj1tW2JdO2g9aChuKTtoIT1uJiZudWxsIT1oJiYkanNjb21wLmRlZmluZVByb3BlcnR5KG0sYix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihiLGgsbSxuKXt2YXIgcj1iLnNwbGl0KCIuIik7Yj0xPT09ci5sZW5ndGg7bj1yWzBdO249IWImJm4gaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciB2PTA7djxyLmxlbmd0aC0xO3YrKyl7dmFyIHk9clt2XTtpZighKHkgaW4gbikpcmV0dXJuO249blt5XX1yPXJbci5sZW5ndGgtMV07bT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09bT9uW3JdOm51bGw7aD1oKG0pO251bGwhPWgmJihiPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMscix7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KTpoIT09bSYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW3JdJiYobT0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcl09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2wocik6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrbSsiJCIrciksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShuLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW3JdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6aH0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYj17YTohMH0saD17fTt0cnl7cmV0dXJuIGguX19wcm90b19fPWIsaC5hfWNhdGNoKG0pe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYixoKXtiLl9fcHJvdG9fXz1oO2lmKGIuX19wcm90b19fIT09aCl0aHJvdyBuZXcgVHlwZUVycm9yKGIrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBifTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYil7dmFyIGg9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gaDxiLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTpiW2grK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihiKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGIpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3ZhciBoPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmJbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gaD9oLmNhbGwoYik6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGIpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihiKXtpZighKGIgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2IrIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMueWllbGRSZXN1bHQ9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjpiLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzpifTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihiLGgpe3RoaXMubmV4dEFkZHJlc3M9aDtyZXR1cm57dmFsdWU6Yn19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGIsaCl7Yj0kanNjb21wLm1ha2VJdGVyYXRvcihiKTt2YXIgbT1iLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhtKTtpZihtLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1tLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9aDtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWIsdGhpcy55aWVsZChtLnZhbHVlLGgpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGIpe3RoaXMubmV4dEFkZHJlc3M9Yn07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYixoKXt0aGlzLmNhdGNoQWRkcmVzc189Yjt2b2lkIDAhPWgmJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYixoKXt0aGlzLm5leHRBZGRyZXNzPWI7dGhpcy5jYXRjaEFkZHJlc3NfPWh8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYil7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7Yj10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsaCxtKXttP3RoaXMuZmluYWxseUNvbnRleHRzX1ttXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189aHx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGIsaCl7aD10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGh8fDApWzBdO2lmKGg9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxoKXtpZihoLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWguanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxoLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1oLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGIpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGIpe3RoaXMub2JqZWN0Xz1iO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBoIGluIGIpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGgpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYj10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGIgaW4gdGhpcy5vYmplY3RfKXJldHVybiBifXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1ifTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYil7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgaD10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGgpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGg\/aFsicmV0dXJuIl06ZnVuY3Rpb24obSl7cmV0dXJue3ZhbHVlOm0sZG9uZTohMH19LGIsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYix0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYixoLG0pe3RyeXt2YXIgbj1iLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhuKTtpZighbi5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksbjt2YXIgcj1uLnZhbHVlfWNhdGNoKHYpe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18odiksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7bS5jYWxsKHRoaXMuY29udGV4dF8scik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYj10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGIpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6Yi52YWx1ZSxkb25lOiExfX1jYXRjaChoKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhoKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7Yj10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihiLmlzRXhjZXB0aW9uKXRocm93IGIuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTpiLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihiKXt0aGlzLm5leHQ9ZnVuY3Rpb24oaCl7cmV0dXJuIGIubmV4dF8oaCl9O3RoaXMudGhyb3c9ZnVuY3Rpb24oaCl7cmV0dXJuIGIudGhyb3dfKGgpfTt0aGlzLnJldHVybj1mdW5jdGlvbihoKXtyZXR1cm4gYi5yZXR1cm5fKGgpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihiLGgpe2g9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oaCkpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmIucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGgsYi5wcm90b3R5cGUpO3JldHVybiBofTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGgobil7cmV0dXJuIGIubmV4dChuKX1mdW5jdGlvbiBtKG4pe3JldHVybiBiLnRocm93KG4pfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihuLHIpe2Z1bmN0aW9uIHYoeSl7eS5kb25lP24oeS52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKHkudmFsdWUpLnRoZW4oaCxtKS50aGVuKHYscil9dihiLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihiKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpKX07CmZ1bmN0aW9uIGluaXRpYWxpemVGaW5hbmNlTXVsdGlTdGVwKGIpe2Z1bmN0aW9uIGgoYyl7c3dpdGNoKGMpe2Nhc2UgIkVtYWlsIHByb3ZpZGVkIjpjYXNlICJQaG9uZSBwcm92aWRlZCI6T3x8KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS50cmlnZ2VyKCJwb3B1cGl6ZXIuc3VibWl0dGVkIiksTz0hMCl9ImZ1bmN0aW9uIj09PXR5cGVvZiBnYVRyYWNrJiZnYVRyYWNrKCJfdHJhY2tFdmVudCIsIlVzZWQtU1JQLUZpbmFuY2UtUG9wdXAiLGMsd2luZG93LmxvY2F0aW9uLmhyZWYsMSl9ZnVuY3Rpb24gbShjKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0QmFubmVyU2VhcmNoQmFyTWFrZXM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7dHlwZTpjLnRvTG93ZXJDYXNlKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSBvcHRpb246Zmlyc3QiLApiKVswXS5vdXRlckhUTUwpOyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGQsZnVuY3Rpb24oZSxmKXskKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLmFwcGVuZCgnPG9wdGlvbiB2YWx1ZT0iJytmLm1ha2UrJyI+JytmLnRpdGxlMisiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiBuKGMsZCl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEJhbm5lclNlYXJjaEJhck1vZGVscz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnttYWtlOmJ0b2EoZCksdHlwZTpjLnRvTG93ZXJDYXNlKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsCmIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGUsZnVuY3Rpb24oZixnKXskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1tb2RlbD0iJytnLm1vZGVsTmFtZSsnIiBkYXRhLXllYXI9IicrZy55ZWFyKyciIHZhbHVlPSInK2cudGl0bGUyKyciPicrZy50aXRsZTIrIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24gcihjLGQsZSl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldE5ld1RyaW1zP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e21ha2U6Yyxtb2RlbDpkLHllYXI6ZX0sc3VjY2VzczpmdW5jdGlvbihmKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLApiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGYsZnVuY3Rpb24oZyxsKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXByaWNlPSInK2wucHJpY2UrJyIgZGF0YS1zdHlsZWlkPSInK2wuc3R5bGVpZCsnIiB2YWx1ZT0iJytsLnRyaW0rJyI+JytsLnRyaW0rIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24gdihjLGQpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRJbnZlbnRvcnlUcmltcz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnttYWtlOmMsbW9kZWw6ZH0sc3VjY2VzczpmdW5jdGlvbihlKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLmh0bWwoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpmaXJzdCIsYilbMF0ub3V0ZXJIVE1MKTskLmVhY2goZSxmdW5jdGlvbihmLGcpeyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsCmIpLmFwcGVuZCgnPG9wdGlvbiBkYXRhLXByaWNlPSInK2cub3JpZ2luYWxwcmljZSsnIiBkYXRhLXZlaGljbGVpZD0iJytnLnZlaGljbGVpZCsnIiBkYXRhLXllYXI9IicrZy55ZWFyKyciIGRhdGEtaXNuZXc9IicrZy5pc25ldysnIiBkYXRhLWlzZGVtbz0iJytnLmRlbW8rJyIgZGF0YS1zdG9ja251bWJlcj0iJytnLnN0b2NrbnVtYmVyKyciIGRhdGEtbWlsZWFnZT0iJytnLm1pbGVhZ2UrJyIgZGF0YS1zdHlsZWlkPSInK2cuc3R5bGVpZCsnIiB2YWx1ZT0iJytnLnRyaW0rJyI+JytnLnRpdGxlKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIHkoYyl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldFVzZWRDYWxjdWxhdG9ySFRNTD93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOntjYXJpZDpjfSxzdWNjZXNzOmZ1bmN0aW9uKGQpe2QudmFsaWQ\/KCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLmh0bWwoZC5odG1sKSwKJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciIsYikuZmluZCgiLmNhbGMtZm9ybSIpLmZpbmQoIi51c2VkQ2FsY3VsYXRvckRvd25QYXltZW50IikuYWZ0ZXIoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvclRyYWRlSW4iLGIpLmh0bWwoKSksWCgpLCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLmF0dHIoIm1heCIsYS5mb3JtZGF0YS50cmFkZUluVmFsdWUpLCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLnNob3coKSk6KGEuZm9ybWRhdGEubm9QYXltZW50PSEwLCQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLmhpZGUoKSxhLm5leHQoITApKX19KX1mdW5jdGlvbiBYKCl7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiKS5vbigiYmx1ciIsCmZ1bmN0aW9uKCl7RCgpfSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubm9PZk1vbnRocyIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGM9JCh0aGlzKS5maW5kKCJvcHRpb246c2VsZWN0ZWQiKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnRlcmVzdHJhdGUiKS52YWwoYy5hdHRyKCJkYXRhLXJhdGUiKSk7RCgpfSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudEZyZXF1ZW5jeSIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7RCgpfSk7RCgpfWZ1bmN0aW9uIEQoKXt2YXIgYz1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmludGVyZXN0cmF0ZSIsYikudmFsKCkucmVwbGFjZSgiLCIsIi4iKSkudG9GaXhlZCgyKS8xMDAsZD1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm5vT2ZNb250aHMiLGIpLnZhbCgpKS8xMixlPXBhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAubG9hbmFtb3VudCIsCmIpLnZhbCgpKS50b0ZpeGVkKDIpOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmZlZWFtb3VudCIsYikubGVuZ3RoJiYoZT1wYXJzZUZsb2F0KGUpK3BhcnNlRmxvYXQoJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZmVlYW1vdW50IixiKS52YWwoKS5yZXBsYWNlKCIsIiwiIikpKTsxPT0kKCIjdXNldGF4ZXMiLGIpLnZhbCgpJiYoZSo9cGFyc2VGbG9hdCgkKCIjdGF4ZXMiKS52YWwoKSkudG9GaXhlZCgyKS8xMDArMSk7MDwkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIsYikudmFsKCkmJihlLT1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50IixiKS52YWwoKSkudG9GaXhlZCgyKSk7dmFyIGY9IiIsZz0xMjtzd2l0Y2goJCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudEZyZXF1ZW5jeSIsYikudmFsKCkpe2Nhc2UgIndlZWsiOmc9CjUyO2Y9JCgiI3dlZWtUZXh0IikudmFsKCk7YnJlYWs7Y2FzZSAiMndlZWtzIjpnPTI2O2Y9JCgiIzJ3ZWVrc1RleHQiKS52YWwoKTticmVhaztjYXNlICJtb250aGx5IjpmPSQoIiNtb250aGx5VGV4dCIpLnZhbCgpO2c9MTI7YnJlYWs7Y2FzZSAiYmltb250aGx5IjpmPSQoIiNiaW1vbnRobHlUZXh0IikudmFsKCksZz0yNH1kKj1nOzA8Yz8oYy89ZyxnPU1hdGgucG93KGMrMSxkKSxlKj1jKmcvKGctMSkpOmUvPWQ7ZT1NYXRoLnJvdW5kKDEwMCplKS8xMDA7aXNOYU4oZSkmJihlPTApOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm91dHB1dHByaWNlIixiKS52YWwoIiQiK2UpOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm91dHB1dHByaWNlLXR4dCIsYikuaHRtbCgiJCIrZSk7Zj0kKCIjZXN0aW1kYXRlZFBheW1lbnRUZXh0IixiKS52YWwoKS5yZXBsYWNlKCIjI0ZSRVFVRU5DWSMjIixmKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5lc3RpbWF0ZWRUZXh0IiwKYikuaHRtbCgiPHN0cm9uZz4iK2YrIjwvc3Ryb25nPiIpO2Y9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iRmluYW5jZW1lbnQiOiJGaW5hbmNpbmciO2EuZm9ybWRhdGEucGF5bWVudFR5cGU9ZjthLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD0iZmluYW5jaW5nIjthLmZvcm1kYXRhLnBheW1lbnRUZXJtPSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm5vT2ZNb250aHMiLGIpLnZhbCgpO2EuZm9ybWRhdGEucGF5bWVudFZhbHVlPWU7YS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ9JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiLGIpLnZhbCgpfHwwO2EuZm9ybWRhdGEucGF5bWVudEludGVydmFsPSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRGcmVxdWVuY3kiLGIpLnZhbCgpO2EuZm9ybWRhdGEucGF5bWVudFJhdGU9JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW50ZXJlc3RyYXRlIiwKYikudmFsKCk7YS5mb3JtZGF0YS52ZWhpY2xlSW5pdGlhbFByaWNlPXBhcnNlSW50KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmxvYW5hbW91bnQiLGIpLnZhbCgpKTtmPXBhcnNlSW50KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmZlZWFtb3VudCIsYikudmFsKCkucmVwbGFjZSgiLCIsIiIpKTthLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPXBhcnNlSW50KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmxvYW5hbW91bnQiLGIpLnZhbCgpKStmO2EuZm9ybWRhdGEucGF5bWVudFRvdGFsRmVlPWY7ay5jaGVja1ZhbGlkaXR5KCl9ZnVuY3Rpb24gUCgpeyIxIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzSW5zdGFudCIsYikudmFsKCkmJigkKGIpLmZpbmQoIi5jb25maXJtYXRpb25UaXRsZSIpLmhpZGUoKSwkKGIpLmZpbmQoIi5jb25maXJtYXRpb25UZXh0Iikuc2hvdygpLCQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuaHRtbCgiIiksCiQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuaGlkZSgpKTtpZihfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJiIiPT0kKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwoKSl7dmFyIGM9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5NYWtlXSIpLnZhbChjLm1ha2UpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5Nb2RlbF0iKS52YWwoYy5tb2RlbCk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblllYXJdIikudmFsKGMueWVhcik7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblRyaW1dIikudmFsKGMudHJpbSk7JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJblZhbHVlXSIpLnZhbChjLnZhbHVlKTtfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiKSYmKGM9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiKSksCiQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5WYWx1ZV0iKS5hdHRyKCJkYXRhLWN1cnJlbnQiLGMudmFsdWUpKX1hLnNob3dFcnJvcj0hMTthLnB1c2hQYXJ0aWFsPSExO2suc2V0RGVwYXJ0bWVudCgpO2suc2V0VHJhZGVJbigpO2lmKGsudXNlcklkKCkpJC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEZpbmFuY2VNdWx0aXN0ZXBVc2VySWRBbmREYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLHR5cGU6IlBPU1QiLGRhdGE6e3VzZXJJZDprLnVzZXJJZCgpLGRvbWFpbjpRLHNpdGVJZDokKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxlbWFpbEhhbmRsZXJKc29uT2JqZWN0OkpTT04uc3RyaW5naWZ5KEopfSxzdWNjZXNzOmZ1bmN0aW9uKGcpe2cuSUR8fChnLklEPS0xKTtrLnVzZXJJZChnLklEKTtnLmRhdGEmJihhLmZvcm1kYXRhPUpTT04ucGFyc2UoZy5kYXRhKSk7CiIiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiZhLmZvcm1kYXRhLmZpcnN0TmFtZSE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJihhLmZvcm1kYXRhLmZpcnN0TmFtZT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiZhLmZvcm1kYXRhLmxhc3ROYW1lIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYoYS5mb3JtZGF0YS5sYXN0TmFtZT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lKTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJmEuZm9ybWRhdGEuZW1haWxBZGRyZXNzIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYoYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCk7CiIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmYS5mb3JtZGF0YS5waG9uZU51bWJlciE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmKGEuZm9ybWRhdGEucGhvbmVOdW1iZXI9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKSk7aWYoZy5lbWFpbEhhbmRsZXJKc29uKXtsZXQgbD1KU09OLnBhcnNlKGcuZW1haWxIYW5kbGVySnNvbik7ZW1haWxIYW5kbGVyLnNlbmRUbz1sLnNlbmRUbztlbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG89bC5zZWxlY3RlZFNlbmRUbztlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWwuc2VuZFRvQURGRm9ybWF0O2VtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1sLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0O2VtYWlsSGFuZGxlci5kZWFsZXJOYW1lPQpsLmRlYWxlck5hbWU7ZW1haWxIYW5kbGVyLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPS0xPT09Wy0xLCItMSIsIiJdLmluZGV4T2YoYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvKX1pZigidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlKXtsZXQgbDthLmZvcm1kYXRhLmZpcnN0TmFtZT1udWxsIT0obD1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJmaXJzdG5hbWUiKSk\/bDphLmZvcm1kYXRhLmZpcnN0TmFtZTtsZXQgcDthLmZvcm1kYXRhLmxhc3ROYW1lPW51bGwhPShwPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImxhc3RuYW1lIikpP3A6YS5mb3JtZGF0YS5sYXN0TmFtZTtsZXQgcTthLmZvcm1kYXRhLmVtYWlsQWRkcmVzcz1udWxsIT0ocT1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJlbWFpbCIpKT9xOmEuZm9ybWRhdGEuZW1haWxBZGRyZXNzO2xldCB0O2EuZm9ybWRhdGEucGhvbmVOdW1iZXI9bnVsbCE9KHQ9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgicGhvbmUiKSk\/CnQ6YS5mb3JtZGF0YS5waG9uZU51bWJlcjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKX0wPT1hLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMmJjA9PWEuZm9ybWRhdGEuYWRkcmVzc19tb250aHMmJihhLmZvcm1kYXRhLmFkZHJlc3M9IiIpO2cuc3RlcCYmKGEuc3RlcD1OdW1iZXIoZy5zdGVwKSxhLm5leHRTdGVwPWEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzWyJzdGVwIitnLnN0ZXBdKTskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwLnNob3ciKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuc2hvdygpO2suc2V0Q3VycmVudE1ha2VNb2RlbFllYXIoKTtrLm9uU2hvd0Z1bmN0aW9uVG9SdW4oKTthLmZpcnN0U3RlcD0hMX0sY29tcGxldGU6ZnVuY3Rpb24oZyl7aWYoIWcuZGF0YSlyZXR1cm4gay51c2VySWQoLTEpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpLApQKCl9fSk7ZWxzZXthLnB1c2hQYXJ0aWFsPSExOyIiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYoYS5mb3JtZGF0YS5maXJzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmKGEuZm9ybWRhdGEubGFzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYoYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCk7IiIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYoYS5mb3JtZGF0YS5waG9uZU51bWJlcj1lbWFpbEhhbmRsZXIudXNlclBob25lLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIiwKYikuZmluZCgnaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScpLnZhbChhLmZvcm1kYXRhLnBob25lTnVtYmVyKSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSl7dmFyIGQ7YS5mb3JtZGF0YS5maXJzdE5hbWU9bnVsbCE9KGQ9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIikpP2Q6YS5mb3JtZGF0YS5maXJzdE5hbWU7dmFyIGU7YS5mb3JtZGF0YS5sYXN0TmFtZT1udWxsIT0oZT1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIpKT9lOmEuZm9ybWRhdGEubGFzdE5hbWU7dmFyIGY7YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9bnVsbCE9KGY9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiKSk\/ZjphLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztsZXQgZzthLmZvcm1kYXRhLnBob25lTnVtYmVyPW51bGwhPShnPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIikpP2c6YS5mb3JtZGF0YS5waG9uZU51bWJlcjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsCmIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcil9ay5oYXNEZWFsZXJTZWxlY3RWYWx1ZXMoKSYmay5zZXREZWFsZXJTZWxlY3RFbWFpbCgpOyQoJyNtaW5pZm9ybSBbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJykubGVuZ3RoJiYiIiE9JCgnI21pbmlmb3JtIFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS52YWwoKSYmKGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0kKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLnZhbCgpLGEuZm9ybWRhdGEubXVsdGlGcm9tTWluaT0hMCk7JCgiI21heF9idWRnZXQiKS5sZW5ndGgmJihhLnB1c2hQYXJ0aWFsPSEwLGQ9IiIsZT1wYXJzZUZsb2F0KCQoIiNtYXhfYnVkZ2V0IikudmFsKCkucmVwbGFjZSgvW14wLTkuLV0rL2csIiIpKSxkPWsuZ2V0Q3VycmVudEJ1ZGdldChlKSwiMSI9PXUmJmlzTmFOKGUpJiYoZD0iIiksYS5mb3JtZGF0YS5idWRnZXQ9CmQpOyQoIi50cmFjay1wcm9ncmVzcyIpLmxlbmd0aCYmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ0cmFkZWluX3N1Ym1pdF9kYXRhIikmJihhLmZvcm1kYXRhLmN1cnJlbnRseURyaXZpbmc9IkZJTkFOQ0VfRk9STV9BTFJFQURZX0RSSVZJTkdfVFJBREUiKSxkPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJyZXRhaWxfdHJhY2tfZGF0YSIpLChkPUpTT04ucGFyc2UoZCkpJiZkLnZhbHVlJiYoZD1KU09OLnBhcnNlKGQudmFsdWUpKSYmZC5wYXltZW50JiZkLnBheW1lbnQucGF5bWVudFZhbHVlJiYoZT1kLnBheW1lbnQucGF5bWVudFZhbHVlLGQ9ZVswXSxlPWVbM10sZj0iIixkPSJtb250aGx5Ij09ZT9wYXJzZUZsb2F0KGQpOiJ3ZWVrbHkiPT1lPzUyKnBhcnNlRmxvYXQoZCkvMTI6InNlbWltb250aGx5Ij09ZT8yNCpwYXJzZUZsb2F0KGQpLzEyOjI2KnBhcnNlRmxvYXQoZCkvMTIsZj1rLmdldEN1cnJlbnRCdWRnZXQoZCksYS5mb3JtZGF0YS5idWRnZXQ9ZikpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tuYW1lPSJidWRnZXQiXStsYWJlbCcpLmZvckVhY2goZz0+CntnLmlubmVySFRNTD1nLmlubmVySFRNTC5yZXBsYWNlKC8oXCRcZHszLDR9fFxkezMsNH1cJCkvZyxsPT5EMkNVdGlscy5Gb3JtYXQudG9QcmljZShsLnJlcGxhY2UoL1wkL2csIiIpKSl9KTskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwLnNob3ciKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuc2hvdygpOzA9PWEuc3RlcCYmKCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5oaWRlKCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vbigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5uZXh0KCl9LDFFMyl9KSk7ay5zZXRDdXJyZW50TWFrZU1vZGVsWWVhcigpfX12YXIgej0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fQ0hFQ0siKS52YWwoKSwKSz0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fU0VMRUNUIikudmFsKCksRT0kKCIjQURNSU5fTUFOREFUT1JZX0NSRURJVF9CVVJFQVVfQ0hFQ0siKS52YWwoKSxDPSQoIiNBU0tfRk9SX1NJTl9DSEVDSyIpLnZhbCgpLE89ITEsdT0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNTZWNvbmRDaGFuY2UiLGIpLnZhbCgpLHg9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzSW5zdGFudCIsYikudmFsKCksRj0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNWd0RSIixiKS52YWwoKSxMPTEsTT1bMSwyLDMsNiw3LDEzLDE0LDE1XSxHPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImVtcGxveW1lbnRTdGF0dXMifV0sUj1bXSxTPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImZpcnN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToibGFzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOYW1lIix2YWx1ZToiIn1dLFQ9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5IiwKdmFsdWU6ImFkZHJlc3MifV0sVT1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJyZW50T3JPd24ifSx7ZnVuYzoidmFsaWRhdGVJc051bWJlciIsdmFsdWU6Im1vbnRobHlQYXltZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseVBheW1lbnQiLHZhbHVlOiJtb250aGx5UGF5bWVudCJ9XSxWPVtdLEI9e3N0ZXAwOjEsc3RlcDE6MixzdGVwMjozLHN0ZXAzOiIwIj09ej80OiJiZWZvcmUiPT1LPzE5OjQsc3RlcDQ6IjAiPT16PzU6ImJlZm9yZSI9PUs\/NToxOSxzdGVwNTo2LHN0ZXA2Ojcsc3RlcDc6OCxzdGVwODo5LHN0ZXA5OjExLHN0ZXAxMDoxMSxzdGVwMTE6MTIsc3RlcDEyOjEzLHN0ZXAxMzoxNixzdGVwMTQ6MTYsc3RlcDE1OjE2LHN0ZXAxNjoxNyxzdGVwMTc6IjAiPT16PzE5OjA9PUU\/IjAiPT1DPyIxIj09dT8yMzoiZG9uZSI6MjI6MjAsc3RlcDE4OiIwIj09ej8wPT1FPyIwIj09Qz8iMSI9PXU\/MjM6ImRvbmUiOjIyOjIwOiJiZWZvcmUiPT1LPzQ6NSxzdGVwMTk6MTgsCnN0ZXAyMDoiMCI9PUM\/IjEiPT11PzIzOiJkb25lIjoyMixzdGVwMjI6IjEiPT11PzIzOiJkb25lIixzdGVwMjM6ImRvbmUifTtvcHRpb25hbFN0ZXBzPVtdOyIxIj09dSYmKG9wdGlvbmFsU3RlcHM9WzIzXSwiMCI9PUMmJihvcHRpb25hbFN0ZXBzPVsyMiwyM10pLE09WzEsMiwzLDYsNywxNCwxNV0sRz1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWUiLHZhbHVlOiIifV0sQj17c3RlcDA6MSxzdGVwMToyLHN0ZXAyOjMsc3RlcDM6MTgsc3RlcDQ6MTksc3RlcDU6NixzdGVwNjo3LHN0ZXA3Ojgsc3RlcDg6OSxzdGVwOToyMixzdGVwMTA6MTEsc3RlcDExOjEyLHN0ZXAxMjoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LApzdGVwMTU6MTYsc3RlcDE2OjIzLHN0ZXAxODo1LHN0ZXAxOToxMSxzdGVwMjA6ImRvbmUiLHN0ZXAyMjo0LHN0ZXAyMzowPT1FPyJkb25lIjoyMH0pOyIxIj09eCYmKG9wdGlvbmFsU3RlcHM9WzIyXSxMPTI0LE09WzEsMiwzLDYsNywxNCwxNV0sRz1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mbyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8ifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm8iLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZSIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZUFkZHJlc3NFbXBsb3llciIsdmFsdWU6ImFkZHJlc3NFbXBsb3llciJ9XSxSPVt7ZnVuYzoidmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvIix2YWx1ZToiZW1wbG95bWVudEFkZGVkSW5mbzIifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm8yIiwKdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lMiIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZUFkZHJlc3NFbXBsb3llcjIiLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIyIn1dLFM9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZmlyc3ROYW1lIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJsYXN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToidGl0bGUifSx7ZnVuYzoidmFsaWRhdGVOYW1lIix2YWx1ZToiIn1dLFQ9W3tmdW5jOiJ2YWxpZGF0ZUFkZHJlc3MiLHZhbHVlOiJhZGRyZXNzIn1dLEI9e3N0ZXAwOjI0LHN0ZXAyNDoyNSxzdGVwMjU6NCxzdGVwNDoxOSxzdGVwMTk6MTgsc3RlcDE4OjUsc3RlcDU6OCxzdGVwODo5LHN0ZXA5OjExLHN0ZXAxMToxMixzdGVwMTI6MTMsc3RlcDI3OjI4LHN0ZXAyODoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LHN0ZXAxNToxNixzdGVwMTY6MTcsc3RlcDE3OjIyLApzdGVwMjk6MjIsc3RlcDIyOjA9PUU\/MjY6MjAsc3RlcDIwOjI2LHN0ZXAyNjoiZG9uZSJ9LCIxIj09RiYmKEc9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm9WVyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8ifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3llckluZm9WVyIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lVlciLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXJWVyIsdmFsdWU6ImFkZHJlc3NFbXBsb3llciJ9XSxCLnN0ZXAxNj0yMixCLnN0ZXAyMj0zMCxCLnN0ZXAzMD0iZG9uZSIsVT1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJyZW50T3JPd24ifSx7ZnVuYzoidmFsaWRhdGVJc051bWJlciIsdmFsdWU6Im1vbnRobHlQYXltZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseVBheW1lbnQiLAp2YWx1ZToibW9udGhseVBheW1lbnQifSx7ZnVuYzoidmFsaWRhdGVNb250aGx5RGlzYnVyc2VtZW50VlciLHZhbHVlOiJtb250aGx5RGlzYnVyc2VtZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseVBheW1lbnQiLHZhbHVlOiJtb250aGx5RGlzYnVyc2VtZW50In1dLFY9W3tmdW5jOiJpbml0RGlzYnVyc21lbnRWVyJ9XSkpO3ZhciBhPW5ldyBWdWUoe2VsOiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKVswXSxkYXRhOmZ1bmN0aW9uKCl7cmV0dXJue2NvbnRleHQ6YixhamF4UHJvY2VzczohMSx1c2VySWQ6IiIsY29udmVyc2lvblN1Ym1pdHRlZDohMSxzaG93SWNvbjohMCxwdXNoUGFydGlhbDohMSxjdXJyZW50RGVwdDoiTkVXIixpbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0OiEwLHN0ZXA6MCxuZXh0U3RlcDpMLGZpcnN0U3RlcDohMCxjYWxjdWxhdG9yRnVuY3Rpb25zOiIiLGNyZWRpdERlY2lzaW9uSFRNTDoiIixmb3JtZGF0YTp7dmVoaWNsZVR5cGU6IiIsYnVkZ2V0OiIiLApjdXJyZW50bHlEcml2aW5nOiIiLGVtYWlsQWRkcmVzczoiIixjcmVkaXRSYXRpbmc6IiIsZG93bk9wdGlvbnM6IiIsYmlydGhkYXRlWWVhcjoiIixiaXJ0aGRhdGVNb250aDoiIixiaXJ0aGRhdGVEYXk6IiIsYWRkcmVzczoiIixzcGxpdEFkZHJlc3M6W10sYWRkcmVzc195ZWFyczowLGFkZHJlc3NfbW9udGhzOjAsYWRkcmVzczI6IiIsc3BsaXRBZGRyZXNzMjpbXSxhZGRyZXNzMl95ZWFyczowLGFkZHJlc3MyX21vbnRoczowLGFkZHJlc3NFbXBsb3llcjoiIixzcGxpdEFkZHJlc3NFbXBsb3llcjpbXSxyZW50T3JPd246IiIsbW9udGhseVBheW1lbnQ6MCxtb250aGx5RGlzYnVyc2VtZW50OjAsZW1wbG95bWVudFN0YXR1czoiIixlbXBsb3ltZW50QWRkZWRJbmZvOiIiLGVtcGxveWVyTmFtZToiIixlbXBsb3llclBob25lOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoOjAsZW1wbG95bWVudEFkZGVkSW5mbzI6IiIsZW1wbG95ZXJOYW1lMjoiIiwKZW1wbG95ZXJQaG9uZTI6IiIsZW1wbG95bWVudFN0YXR1c1llYXIyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoMjowLGFkZHJlc3NFbXBsb3llcjI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXIyOltdLHdvcmtpbmdXaGlsZUluU2Nob29sOiIiLG90aGVyRW1wbG95bWVudFN0YXR1czoiIixtb250aGx5SW5jb21lOjAsbW9udGhseUluY29tZV95ZWFyczowLG1vbnRobHlJbmNvbWVfbW9udGhzOjAsdGl0bGU6IiIsZmlyc3ROYW1lOiIiLGxhc3ROYW1lOiIiLHBob25lTnVtYmVyOiIiLGN1cnJlbnRNYWtlOiIiLGN1cnJlbnRNb2RlbDoiIixjdXJyZW50TW9kZWxUZXh0OiIiLGN1cnJlbnRZZWFyOiIiLGN1cnJlbnRTdG9ja051bWJlcjoiIixjdXJyZW50TWlsZWFnZToxMCxjdXJyZW50VHJpbToiIixjdXJyZW50U3R5bGVpZDoiIixjdXJyZW50Q2FySWQ6IiIscGF5bWVudFR5cGU6IiIscGF5bWVudFR5cGVSZWFsOiIiLHBheW1lbnRUZXJtOiIiLHBheW1lbnRSYXRlVHlwZToiIixwYXltZW50VmFsdWU6IiIsCmJhc2VwYXltZW50OiIiLHBheW1lbnRUb3RhbEluY2VudGl2ZTowLHBheW1lbnRUb3RhbEZlZTowLHBheW1lbnRHU1Q6MCxwYXltZW50SFNUOjAscGF5bWVudFBTVDowLHBheW1lbnREb3duUGF5bWVudDowLHBheW1lbnRLbUFsbG93YW5jZTowLHBheW1lbnRJbnRlcnZhbDoiIixwYXltZW50UmF0ZToiIixwYXltZW50UmVzaWR1YWxWYWx1ZTowLG5vUGF5bWVudDohMSxtdWx0aV9kZWFsZXJfc2VuZFRvOiIiLGNyZWRpdEJ1cmVhdUNyZWRpdDoiTk8iLFNJTjoiIixhZGRlZEluZm86IiIsdmVoaWNsZVNhbGVzRGVwdDoib3RoZXIiLHZlaGljbGVQcmljZToiIix2ZWhpY2xlVHJhbnNtaXNzaW9uOiIiLHZlaGljbGVUcmltOiIiLHZlaGljbGVDb2xvcjoiIixpbml0aWFsVGl0bGVTaG93OiEwLG11bHRpRnJvbU1pbmk6ITEsdHJhZGVJbk1ha2U6IiIsdHJhZGVJbk1vZGVsOiIiLHRyYWRlSW5ZZWFyOiIiLHRyYWRlSW5UcmltOiIiLHRyYWRlSW5WYWx1ZToiIix2ZWhpY2xlSW5pdGlhbFByaWNlOiIiLAp2ZWhpY2xlRmluYWxQcmljZToiIixwYXltZW50RmVlc0xpc3Q6W10scGF5bWVudEluY2VudGl2ZXNMaXN0OltdLGNyZWRpdEFwcGxpY2F0aW9uSWQ6IiIsY29uc2VudEFjY291bnRNb25pdG9yaW5nOiIiLGNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50OiIiLGNvbnNlbnRQaXBlZGE6IiIsY29uc2VudENhc2w6IiIsY29uc2VudFZXOiIifSxuZXh0U3RlcERlZmF1bHRWYWx1ZXM6Qix2YWxpZGF0aW9uUnVsZXM6e3N0ZXAxOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InZlaGljbGVUeXBlIn1dLHN0ZXAyOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImJ1ZGdldCJ9XSxzdGVwMzpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJjdXJyZW50bHlEcml2aW5nIn1dLHN0ZXA0Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImVtYWlsQWRkcmVzcyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtYWlsIix2YWx1ZToiZW1haWxBZGRyZXNzIn1dLHN0ZXA1Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsCnZhbHVlOiJtdWx0aV9kZWFsZXJfc2VuZFRvIn1dLHN0ZXA2Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImNyZWRpdFJhdGluZyJ9XSxzdGVwNzpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJkb3duT3B0aW9ucyJ9XSxzdGVwODpbe2Z1bmM6InZhbGlkYXRlQmlydGhkYXRlIix2YWx1ZToiIn1dLHN0ZXA5OlQsc3RlcDExOlt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUFkZHJlc3NUaW1lIix2YWx1ZToiIn1dLHN0ZXAxMjpVLHN0ZXAxMzpHLHN0ZXAxNDpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJ3b3JraW5nV2hpbGVJblNjaG9vbCJ9XSxzdGVwMTU6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToib3RoZXJFbXBsb3ltZW50U3RhdHVzIn1dLHN0ZXAxNjpbe2Z1bmM6InZhbGlkYXRlTW9yZVRoYW5aZXJvIix2YWx1ZToibW9udGhseUluY29tZSJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlJbmNvbWUiLHZhbHVlOiJtb250aGx5SW5jb21lIn1dLApzdGVwMTc6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5TW9udGhseUluY29tZVRpbWUiLHZhbHVlOiIifV0sc3RlcDE4OlMsc3RlcDE5Olt7ZnVuYzoidmFsaWRhdGVQaG9uZU51bWJlciIsdmFsdWU6InBob25lTnVtYmVyIn1dLHN0ZXAyMDpbe2Z1bmM6InZhbGlkYXRlQ2hlY2tlZENyZWRpdEJ1cmVhdSIsdmFsdWU6ImNyZWRpdEJ1cmVhdUNyZWRpdCJ9XSxzdGVwMjI6W3tmdW5jOiJ2YWxpZGF0ZVNJTiIsdmFsdWU6IlNJTiJ9XSxzdGVwMjQ6W3tmdW5jOiJ2YWxpZGF0ZVZlaGljbGUiLHZhbHVlOiIifV0sc3RlcDI1Olt7ZnVuYzoidmFsaWRhdGVQYXltZW50Iix2YWx1ZToiIn1dLHN0ZXAyNjpbe2Z1bmM6InZhbGlkYXRlQ29uc2VudCIsdmFsdWU6IiJ9XSxzdGVwMjc6W3tmdW5jOiJ2YWxpZGF0ZUFkZHJlc3MyIix2YWx1ZToiYWRkcmVzczIifV0sc3RlcDI4Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUFkZHJlc3MyVGltZSIsdmFsdWU6IiJ9XSxzdGVwMjk6UixzdGVwMzA6W3tmdW5jOiJ2YWxpZGF0ZUNvbnNlbnRzIiwKdmFsdWU6IiJ9XX0sb25TaG93RnVuY3Rpb246e3N0ZXAyOlt7ZnVuYzoic3RlcDJWaWV3ZWRUcmFjayJ9XSxzdGVwNDpbe2Z1bmM6ImVtYWlsU3RlcFZpZXdlZFRyYWNrIn0se2Z1bmM6ImluaXRFbWFpbCJ9XSxzdGVwNjpbXSxzdGVwNzpbXSxzdGVwODpbe2Z1bmM6ImluaXRCaXJ0aGRhdGVDaGFuZ2UifV0sc3RlcDk6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlIn1dLHN0ZXAyNzpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGUyIn1dLHN0ZXAxMzpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llciJ9XSxzdGVwNTpbe2Z1bmM6ImluaXRTZWxlY3RNdWx0aURlYWxlciJ9XSxzdGVwMTk6W3tmdW5jOiJwaG9uZVN0ZXBWaWV3ZWRUcmFjayJ9LHtmdW5jOiJpbml0UGhvbmUifV0sc3RlcDI0Olt7ZnVuYzoiaW5pdFZlaGljbGVTZWxlY3Rpb24ifV0sc3RlcDI1Olt7ZnVuYzoiaW5pdENhbGN1bGF0b3IifV0sc3RlcDI2Olt7ZnVuYzoiaW5pdENvbnNlbnQifV0sCnN0ZXAyOTpbe2Z1bmM6ImluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjIifV0sc3RlcDMwOlt7ZnVuYzoiaW5pdFZXQ29uc2VudCJ9XSxzdGVwMTI6Vn0sbm9Db25maXJtQnV0dG9uU3RlcHM6TSxzaG93RXJyb3I6ITAsc2Vjb25kQ2hhbmNlU3RlcFRvU2tpcDpbMSwyLDMsNiw3XSxvcHRpb25hbFN0ZXA6b3B0aW9uYWxTdGVwc319LG1ldGhvZHM6e25leHQ6ZnVuY3Rpb24oYyl7Y3x8KHRoaXMuc2hvd0Vycm9yPSEwLHRoaXMuZm9ybWRhdGEuaW5pdGlhbFRpdGxlU2hvdz0hMSx0aGlzLnB1c2hQYXJ0aWFsPSEwKTtpZih0aGlzLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrdGhpcy5zdGVwKSlmb3IodmFyIGQ9MDtkPHRoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIit0aGlzLnN0ZXBdLmxlbmd0aDtkKyspaWYoa1t0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS5mdW5jXSh0aGlzLmZvcm1kYXRhW3RoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIisKdGhpcy5zdGVwXVtkXS52YWx1ZV0pKSQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSwkKCdbbmFtZT0iJyt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS52YWx1ZSsnIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIik7ZWxzZXt0aGlzLnNob3dFcnJvciYmKCQoIiMiK3RoaXMudmFsaWRhdGlvblJ1bGVzWyJzdGVwIit0aGlzLnN0ZXBdW2RdLnZhbHVlKyJFcnJvck1zZyIsYikubGVuZ3RoJiYkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjIit0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS52YWx1ZSsiRXJyb3JNc2ciLGIpLnZhbCgpKSwkKCdbbmFtZT0iJyt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS52YWx1ZSsnIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwidmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpIikpO3JldHVybn1mb3IodGhpcy5zaG93RXJyb3I9CiExO2suaXNOZXh0U3RlcEZpbGxlZCgpOyk7aWYoMjEhPXRoaXMuc3RlcCl7ND09dGhpcy5zdGVwJiYiIiE9YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MmJmsuZW1haWxQcm92aWRlZFRyYWNrKCk7MTk9PXRoaXMuc3RlcCYmIiIhPWEuZm9ybWRhdGEucGhvbmVOdW1iZXImJmsucGhvbmVQcm92aWRlZFRyYWNrKCk7aWYoOT09dGhpcy5zdGVwKXRyeXt2YXIgZT0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtuYW1lPSJhZGRyZXNzIl0nLGIpLGY9ZS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKSxnPSJ1bmRlZmluZWQiIT09dHlwZW9mIGYucG9zdGFsLmxvbmdfbmFtZT9mLnBvc3RhbC5sb25nX25hbWU6ZS52YWwoKTtlbWFpbEhhbmRsZXIudXNlclBvc3RhbD1nOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmIiIhPWcmJigidW5kZWZpbmVkIiE9PQp0eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGcsIlVzZXJGb3JtLnBvc3RhbCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoZywiVXNlckZvcm0ucG9zdGFsIikpfWNhdGNoKGwpe2NvbnNvbGUubG9nKGwpfTQ8PXRoaXMuc3RlcCYmIXRoaXMuY29udmVyc2lvblN1Ym1pdHRlZCYmKHRoaXMuY29udmVyc2lvblN1Ym1pdHRlZD0hMCxkPSQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXJfY29uZmlybSIpLDA9PT1kLmxlbmd0aCYmKGQ9JCgiI2dlbmVyaWNfZm9ybV9jb25maXJtIikpLGQuZmluZCgnaW5wdXRbbmFtZT0ibGVhZFR5cGUiXScpLnZhbCgkKHRoaXMuY29udGV4dCkuZmluZCgiLmVtYWlsU3ViamVjdCIpLnRleHQoKS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKSxkLmZpbmQoJ2lucHV0W25hbWU9ImxlYWRfZGVwYXJ0bWVudCJdJykudmFsKCJGSU5BTkNFIiksZC5maW5kKCdpbnB1dFtuYW1lPSJwYWdlSUQiXScpLnZhbCgkKCIjUEFHRUlEIikudmFsKCkpLApkLmZpbmQoJ2lucHV0W25hbWU9ImN1cnJlbnRVUkwiXScpLnZhbCh3aW5kb3cubG9jYXRpb24uaHJlZiksZC5maW5kKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSksZC5maW5kKCdpbnB1dFtuYW1lPSJkZWFsZXJOYW1lIl0nKS52YWwoJCgiI25ld1ZEUERlYWxlck5hbWUiKS52YWwoKSksZC5maW5kKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKSxkLmZpbmQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpLGQudHJpZ2dlcigic3VibWl0IiksImZ1bmN0aW9uIj09PXR5cGVvZiB3aW5kb3cudHJhY2tDb252ZXJzaW9uJiZ3aW5kb3cudHJhY2tDb252ZXJzaW9uKCkpOzAhPXRoaXMuc3RlcCYmKHRoaXMuc2hvd0ljb249ITEpO3RoaXMuc3RlcD10aGlzLm5leHRTdGVwO2xvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5sYXN0X3N0ZXAiKTsKY3x8KGEuZmlyc3RTdGVwP2EuZmlyc3RTdGVwPSExOmsuc3RlcFRyaWdnZXIoITApKTsoIiIhPXRoaXMuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiYoIjAiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fQ0hFQ0siKS52YWwoKXx8ImFmdGVyIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpKXx8IiIhPXRoaXMuZm9ybWRhdGEucGhvbmVOdW1iZXImJiIxIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCkmJiJiZWZvcmUiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfUEhPTkVfUE9TSVRJT05fU0VMRUNUIikudmFsKCkpJiZrLm11bHRpRGVhbGVyRm9ybVN0YXR1cygpJiZ0aGlzLnB1c2hQYXJ0aWFsJiYoIjEiPT0kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLGIpLnZhbCgpPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNPUEVORURGUk9NSU1BR0VQT1BVUCIsCmIpLnZhbCgiMCIpOmsucHVzaERhdGFUb1NlcnZlcigpKTtrLnNldENsaWVudFN0b3JhZ2VEYXRhVmFsdWVzKCk7dGhpcy5uZXh0U3RlcD10aGlzLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrdGhpcy5zdGVwXTswPD10aGlzLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEuc3RlcCk\/JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uIixiKS5hZGRDbGFzcygiaXNWYWxpZCIpOiQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiIsYikucmVtb3ZlQ2xhc3MoImlzVmFsaWQiKTtrLm9uU2hvd0Z1bmN0aW9uVG9SdW4oKTswPD10aGlzLm5vQ29uZmlybUJ1dHRvblN0ZXBzLmluZGV4T2YodGhpcy5zdGVwKT8oJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4iLGIpLmhpZGUoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikub2ZmKCJjbGljay5ub0J1dHRvbiIsImlucHV0W3R5cGU9cmFkaW9dIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLApiKS5vbigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS5uZXh0KCl9LDFFMyl9KSk6KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5zaG93KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpKTsiZG9uZSI9PXRoaXMuc3RlcCYmKCIxIj09eD8iMSI9PUY\/ay5jcmVkaXRBcHBTdW1pc3Npb24oKTprLnJvdXRlT25lQ2FsbCgpOmsuc2VuZEVtYWlsKCkpfX0sZ2V0TGluZWFyc3RlcDpmdW5jdGlvbihjKXt2YXIgZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKTtkPXBhcnNlSW50KGQ\/ZDowKTtpZigwPT1kfHxpc05hTihkKSlkPTE7YyYmKGQrPTEsbG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIixkKSk7cmV0dXJuIGR9fX0pLAp3PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIixKPWVtYWlsSGFuZGxlci5nZXRKc29uT2JqZWN0KCk7ej13aW5kb3cubG9jYXRpb247dmFyIFE9ei5wcm90b2NvbCsiLy8iK3ouaG9zdCxrPXtpc05leHRTdGVwRmlsbGVkOmZ1bmN0aW9uKCl7aWYoIjEiPT14JiYiMSI9PUYmJlsxOSw0LDMwXS5pbmNsdWRlcyhhLm5leHRTdGVwKSlyZXR1cm4hMTtpZigiMSI9PXUmJjA8PWEuc2Vjb25kQ2hhbmNlU3RlcFRvU2tpcC5pbmRleE9mKGEubmV4dFN0ZXApKXJldHVybiBhLm5leHRTdGVwPWEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzWyJzdGVwIithLm5leHRTdGVwXSwhMDtpZigoIjEiPT11fHwiMSI9PXgpJiYwPD1hLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEubmV4dFN0ZXApKXJldHVybiExO2lmKGEudmFsaWRhdGlvblJ1bGVzLmhhc093blByb3BlcnR5KCJzdGVwIithLm5leHRTdGVwKSl7Zm9yKHZhciBjPTA7YzxhLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrCmEubmV4dFN0ZXBdLmxlbmd0aDtjKyspaWYoIWtbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2EubmV4dFN0ZXBdW2NdLmZ1bmNdKGEuZm9ybWRhdGFbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2EubmV4dFN0ZXBdW2NdLnZhbHVlXSkpcmV0dXJuITE7YS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrYS5uZXh0U3RlcF07cmV0dXJuITB9fSx2YWxpZGF0ZU5vdEVtcHR5OmZ1bmN0aW9uKGMpe3JldHVybiIiIT1jJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBjfSx2YWxpZGF0ZU5hbWU6ZnVuY3Rpb24oKXt2YXIgYz0vXltBLXpcdTAwQkYtXHUxRkZGXHUyQzAwLVx1RDdGRiAnLV0rJC87bGV0IGQ9Yy50ZXN0KGEuZm9ybWRhdGEuZmlyc3ROYW1lKTtjPWMudGVzdChhLmZvcm1kYXRhLmxhc3ROYW1lKTtkJiZjPygkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk6KGR8fCgkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJmaXJzdE5hbWUiXScsYikuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IikpLGN8fCgkKCdbbmFtZT0ibGFzdE5hbWUiXScsYikuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjZmlyc3ROYW1lRXJyb3JNc2ciKS52YWwoKSkpO3JldHVybiBkJiZjfSx2YWxpZGF0ZUlzTnVtYmVyOmZ1bmN0aW9uKGMpe3JldHVybiAwPD0KY30sdmFsaWRhdGVNb250aGx5SW5jb21lOmZ1bmN0aW9uKGMpe3JldHVybiA5OTk5OTk+PWN9LHZhbGlkYXRlTW9udGhseVBheW1lbnQ6ZnVuY3Rpb24oYyl7cmV0dXJuIDk5OTk5Pj1jfSx2YWxpZGF0ZUFkZHJlc3M6ZnVuY3Rpb24oYyl7cmV0dXJuIDA8YS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzfHwwPGEuZm9ybWRhdGEuYWRkcmVzc19tb250aHM\/ITA6IiIhPWMmJihjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1jLmNpdHkmJiIiIT1jLnN0cmVldCk\/KGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzPWMsITApOiExfSx2YWxpZGF0ZUFkZHJlc3MyOmZ1bmN0aW9uKGMpe3JldHVybiAwPGEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnN8fDA8YS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHM\/ITA6IiIhPWMmJihjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJywKYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksIiIhPWMuY2l0eSYmIiIhPWMuc3RyZWV0KT8oYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MyPWMsITApOiExfSx2YWxpZGF0ZUFkZHJlc3NFbXBsb3llcjpmdW5jdGlvbihjKXtpZigiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzKXJldHVybiEwO2lmKCIiIT1jKXtpZigidW5kZWZpbmVkIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiY2l0eSJpbiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIuY2l0eSlyZXR1cm4hMDtrLmluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcigpO2M9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJywKYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIik7aWYoIiIhPWMuY2l0eSYmIiIhPWMuc3RyZWV0KXJldHVybiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyPWMsITB9cmV0dXJuITF9LHZhbGlkYXRlTW9udGhseURpc2J1cnNlbWVudFZXOmZ1bmN0aW9uKGMpe2xldCBkLGUsZjtyZXR1cm4iUUMiPT0obnVsbCE9KGY9bnVsbD09KGQ9YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MpP3ZvaWQgMDpudWxsPT0oZT1kLnByb3ZpbmNlKT92b2lkIDA6ZS5zaG9ydF9uYW1lKT9mOiQoIiNGSU5BTkNFX01VTFRJU1RFUF9EZWFsZXJQcm92aW5jZSIsYikudmFsKCkpPzA8PWM6ITB9LHZhbGlkYXRlQWRkcmVzc0VtcGxveWVyVlc6ZnVuY3Rpb24oYyl7dmFyIGQ9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO2lmKCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfRlVMTCIhPWQmJiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfUEFSVCIhPQpkKXJldHVybiEwO2lmKCIiIT1jKXtpZigidW5kZWZpbmVkIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiY2l0eSJpbiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIuY2l0eSlyZXR1cm4hMDtrLmluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcigpO2M9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKTtpZigiIiE9Yy5jaXR5JiYiIiE9Yy5zdHJlZXQpcmV0dXJuIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXI9YywhMH1yZXR1cm4hMX0sdmFsaWRhdGVBZGRyZXNzRW1wbG95ZXIyOmZ1bmN0aW9uKGMpe2lmKCIiIT0KYyl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmbnVsbCE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyJiYib2JqZWN0Ij09PXR5cGVvZiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJiIiIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjIuY2l0eSlyZXR1cm4hMDtrLmluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjIoKTtjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLGIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpO2lmKCIiIT1jLmNpdHkmJiIiIT1jLnN0cmVldClyZXR1cm4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjI9YywhMH1yZXR1cm4hMX0sdmFsaWRhdGVTdGF0dXNUaW1lOmZ1bmN0aW9uKGMpe2lmKCIiIT0KYyYmMTA9PWMubGVuZ3RoKXJldHVybiBjPWMuc3BsaXQoIi8iKSxuZXcgRGF0ZSgrY1syXSxjWzFdLTEsK2NbMF0pPG5ldyBEYXRlfSx2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm86ZnVuY3Rpb24oYyl7dmFyIGQ9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiPT1kfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NFTEZFTVBMT1lFRCI9PWR8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfU1RVREVOVCI9PWR8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfT1RIRVIiPT1kPyIiIT09YyYmInVuZGVmaW5lZCIhPT10eXBlb2YgYzohMH0sdmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvVlc6ZnVuY3Rpb24oYyl7dmFyIGQ9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfRlVMTCI9PQpkfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX1BBUlQiPT1kfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NFTEZFTVBMT1lFRCI9PWQ\/IiIhPT1jJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBjOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mbzpmdW5jdGlvbigpe3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRUQiPT1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXM\/IiIhPT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyKGEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZSk6ITB9LHZhbGlkYXRlRW1wbG95ZXJJbmZvVlc6ZnVuY3Rpb24oKXt2YXIgYz1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXM7cmV0dXJuIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRF9GVUxMIj09CmN8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfUEFSVCI9PWM\/IiIhPT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyKGEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZSk6ITB9LHZhbGlkYXRlRW1wbG95ZXJJbmZvMjpmdW5jdGlvbigpe3JldHVybiIiIT09YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmZvcm1kYXRhLmVtcGxveWVyTmFtZTImJmsudmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyMihhLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUyKX0sdmFsaWRhdGVFbWFpbDpmdW5jdGlvbihjKXskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJjc3NPbmx5IixzY3JvbGxUbzohMX0pLnN0YXJ0KCk7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9ImVtYWlsQWRkcmVzcyJdJykudmFsaWRFbWFpbEFkZHJlc3MoKTsKcmV0dXJuICQudmFsaWRpdHkuZW5kKCkudmFsaWR9LHZhbGlkYXRlQmlydGhkYXRlOmZ1bmN0aW9uKCl7dmFyIGM9YS5mb3JtZGF0YS5iaXJ0aGRhdGVZZWFyLGQ9YS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCxlPWEuZm9ybWRhdGEuYmlydGhkYXRlRGF5O2lmKDMxPGV8fDEyPGR8fDE5MDA+Y3x8MD49ZXx8MD49ZHx8IiI9PWN8fCIiPT1kfHwiIj09ZXx8ND5jLmxlbmd0aClyZXR1cm4hMTtjPTE4PD1rLmNhbGN1bGF0ZUFnZShuZXcgRGF0ZShjLGQtMSxlKSxuZXcgRGF0ZSk7YS5zaG93RXJyb3ImJihjPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKTokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYmlydGhkYXRlRXJyb3JNc2ciKS52YWwoKSkpO3JldHVybiBjfSxjYWxjdWxhdGVBZ2U6ZnVuY3Rpb24oYyxkKXt2YXIgZT1kLmdldEZ1bGxZZWFyKCksZj1kLmdldE1vbnRoKCk7ZD1kLmdldERhdGUoKTt2YXIgZz1jLmdldEZ1bGxZZWFyKCksCmw9Yy5nZXRNb250aCgpO2M9Yy5nZXREYXRlKCk7ZS09ZztmLT1sO2lmKDA+Znx8MD09ZiYmMD5kLWMpZT1wYXJzZUludChlKS0xO3JldHVybiBlfSxoYXNVc2VyOmZ1bmN0aW9uKCl7cmV0dXJuISFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKX0sdXNlcklkOmZ1bmN0aW9uKGMpe2MmJigtMT09Yz8obG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIiksYS51c2VySWQ9ITEpOihsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiLGMpLGEudXNlcklkPWMpKTthLnVzZXJJZHx8KGEudXNlcklkPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpKTtyZXR1cm4gYS51c2VySWR9LHB1c2hEYXRhVG9TZXJ2ZXI6ZnVuY3Rpb24oKXtpZighYS5hamF4UHJvY2Vzcyl7YS5hamF4UHJvY2Vzcz0hMDtrLnNldFRyYWRlSW4oKTsKdmFyIGM9YS5mb3JtZGF0YSxkPWEuc3RlcCxlPSQoYikuZmluZCgiLmVtYWlsU3ViamVjdCIpLGY9JChiKS5maW5kKCIuZW1haWxCb2R5Iik7ZT1lLnRleHQoKT9lLnRleHQoKToiIjtmPWYuaHRtbCgpP2YuaHRtbCgpOiIiO3ZhciBnPSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCk7ZW1haWxIYW5kbGVyLmJvZHk9ZjtlbWFpbEhhbmRsZXIuc3ViamVjdD1lO2suc2V0RW1haWxIYW5kbGVyU2VuZCgpO2VtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOyIxIj09dSYmKGVtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiKTsiMSI9PXgmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCIpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJGSU5BTkNFIjtlbWFpbEhhbmRsZXIuaXNtb2JpbGVzaXRlPTE9PSQoIiNpc21vYmlsZSIpLnZhbCgpPyJZRVMiOiJOTyI7ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0KInVuZGVmaW5lZCI9PXR5cGVvZiBnPyJ1c2VkIjpnLnRvTG93ZXJDYXNlKCk7ZW1haWxIYW5kbGVyLmNyZWRpdERhdGE9YztKPWVtYWlsSGFuZGxlci5nZXRKc29uT2JqZWN0KCk7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L3NldEZpbmFuY2VNdWx0aXN0ZXBEYXRhP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLHR5cGU6IlBPU1QiLGRhdGE6e3VzZXJJZDprLnVzZXJJZCgpLGZvcm1kYXRhOmMsc3RlcDpkLGRvbWFpbjpRLHNpdGVJZDokKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSxlbWFpbEhhbmRsZXJKc29uT2JqZWN0OkpTT04uc3RyaW5naWZ5KEopfSxzdWNjZXNzOmZ1bmN0aW9uKGwpe2wuSUQmJmwuaWRDaGFuZ2VkJiZrLnVzZXJJZChsLklEKX0sY29tcGxldGU6ZnVuY3Rpb24obCl7YS5hamF4UHJvY2Vzcz0hMX19KX19LG9uU2hvd0Z1bmN0aW9uVG9SdW46ZnVuY3Rpb24oKXtpZihhLm9uU2hvd0Z1bmN0aW9uLmhhc093blByb3BlcnR5KCJzdGVwIisKYS5zdGVwKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBhLm9uU2hvd0Z1bmN0aW9uWyJzdGVwIithLnN0ZXBdLmxlbmd0aClmb3IodmFyIGM9MDtjPGEub25TaG93RnVuY3Rpb25bInN0ZXAiK2Euc3RlcF0ubGVuZ3RoO2MrKylrW2Eub25TaG93RnVuY3Rpb25bInN0ZXAiK2Euc3RlcF1bY10uZnVuY10oKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZTpmdW5jdGlvbigpe3ZhciBjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpWzBdLGQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtkLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJuZXctcGFzc3dvcmQiKX0pO2Qub2JzZXJ2ZShjLHthdHRyaWJ1dGVzOiEwLAphdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2M9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7Yz17bGF0OmMsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzIl0nLGIpLmdvb2dsZVBsYWNlcyhjKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZTI6ZnVuY3Rpb24oKXt2YXIgYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsYilbMF0sZD1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2QuZGlzY29ubmVjdCgpOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJywKYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtkLm9ic2VydmUoYyx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2M9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7Yz17bGF0OmMsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzMiJdJyxiKS5nb29nbGVQbGFjZXMoYyl9LGluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjpmdW5jdGlvbigpe3ZhciBjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsYilbMF0sZD1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2QuZGlzY29ubmVjdCgpOwokKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7ZC5vYnNlcnZlKGMse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtjPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2M9e2xhdDpjLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpLmdvb2dsZVBsYWNlcyhjKX0saW5pdEdvb2dsZUF1dG9jb21wbGV0ZUVtcGxveWVyMjpmdW5jdGlvbigpe3ZhciBjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLApiKVswXSxkPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7ZC5kaXNjb25uZWN0KCk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llcjIiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtkLm9ic2VydmUoYyx7YXR0cmlidXRlczohMCxhdHRyaWJ1dGVGaWx0ZXI6WyJhdXRvY29tcGxldGUiXX0pO2M9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxhdCIpLnZhbCgpO3ZhciBlPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMb25nIikudmFsKCk7Yz17bGF0OmMsbG9uZzplLHJhZGl1czoyRTV9OyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLGIpLmdvb2dsZVBsYWNlcyhjKX0saW5pdEJpcnRoZGF0ZUNoYW5nZTpmdW5jdGlvbigpeyQoIi5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGlucHV0Iikub24oImtleXVwIiwKZnVuY3Rpb24oKXskKHRoaXMpLnZhbCgpLmxlbmd0aD09JCh0aGlzKS5hdHRyKCJtYXhsZW5ndGgiKSYmJCh0aGlzKS5wYXJlbnQoKS5uZXh0KCIuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiIpLmZpbmQoImlucHV0IikudHJpZ2dlcigiZm9jdXMiKX0pfSx2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lOmZ1bmN0aW9uKCl7aWYoNzA8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJgooJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyJiYwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7IjEiPT14JiYoNjA+MTIqcGFyc2VJbnQoYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcikrCnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9Mjk6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDE3PTIyKTtyZXR1cm4hMH0sdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZVZXOmZ1bmN0aW9uKCl7aWYoIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19VTkVNUExPWUVEIj09YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NUVURFTlQiPT1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXN8fCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfUkVUSVJFRCI9PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cylyZXR1cm4hMDtpZig3MDxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItY29sb3IiLAoiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXImJjA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKXJldHVybiBhLnNob3dFcnJvciYmCigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhciJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7IjEiPT14JiYoNjA+MTIqcGFyc2VJbnQoYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcikrcGFyc2VJbnQoYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpP2EubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxNz0yOTphLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9MjIpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lMjpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcjImJjA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsCiIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlBZGRyZXNzVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuYWRkcmVzc195ZWFycylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzJiYwPj1hLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJgooJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7IjEiPT14JiYoMjQ+MTIqcGFyc2VJbnQoYS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzKStwYXJzZUludChhLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTI9Mjc6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDEyPTEzKTtyZXR1cm4hMH0sdmFsaWRhdGVDb25zZW50czpmdW5jdGlvbigpe2xldCBjLGQsZTtyZXR1cm4oIlFDIiE9KG51bGwhPShlPW51bGw9PShjPQphLmZvcm1kYXRhLnNwbGl0QWRkcmVzcyk\/dm9pZCAwOm51bGw9PShkPWMucHJvdmluY2UpP3ZvaWQgMDpkLnNob3J0X25hbWUpP2U6JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKSl8fGEuZm9ybWRhdGEuY29uc2VudEFjY291bnRNb25pdG9yaW5nJiZhLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50KSYmYS5mb3JtZGF0YS5jb25zZW50Vlc\/ITA6ITF9LHZhbGlkYXRlTm90RW1wdHlBZGRyZXNzMlRpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLAohMTtpZigxMjxhLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMmJjA+PWEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiNXB4IiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3MyVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSk7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlNb250aGx5SW5jb21lVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEubW9udGhseUluY29tZV95ZWFycylyZXR1cm4gYS5zaG93RXJyb3ImJgooJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNtb250aGx5SW5jb21lVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49CmEuZm9ybWRhdGEubW9udGhseUluY29tZV95ZWFycyYmMD49YS5mb3JtZGF0YS5tb250aGx5SW5jb21lX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwKIiIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZVBob25lTnVtYmVyOmZ1bmN0aW9uKGMpe3JldHVybiBjJiYocGhvbmU9Yy5yZXBsYWNlKCIoIiwiIikucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIiAiLCIiKS5yZXBsYWNlKCItIiwiIiksMTA9PXBob25lLmxlbmd0aCk\/KCQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIixzY3JvbGxUbzohMX0pLnN0YXJ0KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWxpZGF0ZVBob25lKCksCiQudmFsaWRpdHkuZW5kKCkudmFsaWQpOiExfSx2YWxpZGF0ZVBob25lTnVtYmVyRW1wbG95ZXI6ZnVuY3Rpb24oYyl7cmV0dXJuIGMmJihwaG9uZT1jLnJlcGxhY2UoIigiLCIiKS5yZXBsYWNlKCIpIiwiIikucmVwbGFjZSgiICIsIiIpLnJlcGxhY2UoIi0iLCIiKSwxMD09cGhvbmUubGVuZ3RoKT8oJC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLHNjcm9sbFRvOiExfSkuc3RhcnQoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgiaW5wdXQuZW1wbG95ZXJQaG9uZSIpLnZhbGlkYXRlUGhvbmUoKSwkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKTohMX0sdmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyMjpmdW5jdGlvbihjKXtyZXR1cm4gYyYmKHBob25lPWMucmVwbGFjZSgiKCIsIiIpLnJlcGxhY2UoIikiLCIiKS5yZXBsYWNlKCIgIiwiIikucmVwbGFjZSgiLSIsIiIpLDEwPT1waG9uZS5sZW5ndGgpPygkLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsCnNjcm9sbFRvOiExfSkuc3RhcnQoKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikuZmluZCgiaW5wdXQuZW1wbG95ZXJQaG9uZTIiKS52YWxpZGF0ZVBob25lKCksJC52YWxpZGl0eS5lbmQoKS52YWxpZCk6ITF9LHZhbGlkYXRlU0lOOmZ1bmN0aW9uKGMpe3JldHVybigiMSI9PXUmJiIwIj09Q3x8IjEiPT14KSYmIiI9PWMmJjA8PWEub3B0aW9uYWxTdGVwLmluZGV4T2YoMjIpfHxjJiYoc2luPWMucmVwbGFjZUFsbCgiICIsIiIpLDk9PXNpbi5sZW5ndGgpPyEwOiExfSx2YWxpZGF0ZVZlaGljbGU6ZnVuY3Rpb24oKXt2YXIgYz0hMTtzd2l0Y2goYS5jdXJyZW50RGVwdCl7Y2FzZSAiVVNFRCI6Yz0iIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50VHJpbSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudENhcklkOwpicmVhaztjYXNlICJORVdJTlYiOmM9IiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW0mJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ7YnJlYWs7Y2FzZSAiTkVXIjpjPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW19cmV0dXJuIGN9LGluaXRWZWhpY2xlU2VsZWN0aW9uOmZ1bmN0aW9uKCl7YS5pbml0VmVoaWNsZVNlbGVjdGlvbkZpcnN0JiYoJCgnaW5wdXRbbmFtZT0iZmluYW5jZU11bHRpc3RlcERlcHQiXScsCmIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7bGV0IGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZlaGljbGVTZWxlY3Rpb25XcmFwcGVyIik7Yy5yZXBsYWNlV2l0aChjLmNsb25lTm9kZSghMCkpO2suaW5pdFZlaGljbGVTZWxlY3Rpb24oKX0pLGEuaW5pdFZlaGljbGVTZWxlY3Rpb25GaXJzdD0hMSk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5vZmYoImNoYW5nZSIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9mZigiY2hhbmdlIik7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vZmYoImNoYW5nZSIpOyJVU0VEIj09YS5jdXJyZW50RGVwdHx8Ik5FV0lOViI9PWEuY3VycmVudERlcHQ\/KG0oIm5ld2ludiIpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudE1vZGVsPSIiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dD0KIiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9IiIsYS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9IiIsYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxrLmNoZWNrVmFsaWRpdHkoKSxuKCJuZXdpbnYiLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJiIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPQoiIixhLmZvcm1kYXRhLmN1cnJlbnRDYXJJZD0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwLGsuY2hlY2tWYWxpZGl0eSgpLHYoJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1tb2RlbCIpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIik7YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudFllYXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsCmIpLmF0dHIoImRhdGEteWVhciIpO2EuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdHlsZWlkIik7YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1wcmljZSIpO2EuZm9ybWRhdGEuY3VycmVudENhcklkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtdmVoaWNsZWlkIik7YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdG9ja251bWJlciIpO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1taWxlYWdlIik7dmFyIGM9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsCmIpLmF0dHIoImRhdGEtaXNuZXciKSxkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtaXNkZW1vIikmJiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9ERU1PQVNORVciXScsYikudmFsKCk7YS5jdXJyZW50RGVwdD0iMSI9PWN8fGQ\/Ik5FV0lOViI6IlVTRUQiO2suY2hlY2tWYWxpZGl0eSgpfSkpOihtKGEuY3VycmVudERlcHQpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudE1vZGVsPSIiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dD0iIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSIiLGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPQoiIixrLmNoZWNrVmFsaWRpdHkoKSxuKGEuY3VycmVudERlcHQsJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikub24oImNoYW5nZSIsZnVuY3Rpb24oKXsiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKSYmIiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLnZhbCgpJiYoYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0iIixrLmNoZWNrVmFsaWRpdHkoKSxyKCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbW9kZWwiKSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsCmIpLmF0dHIoImRhdGEteWVhciIpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIik7YS5mb3JtZGF0YS5jdXJyZW50WWVhcj0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS15ZWFyIik7YS5mb3JtZGF0YS5jdXJyZW50VHJpbT0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLGIpLnZhbCgpO2EuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTA7YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKTthLmZvcm1kYXRhLnZlaGljbGVQcmljZT0KJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1wcmljZSIpO2suY2hlY2tWYWxpZGl0eSgpfSkpfSx2YWxpZGF0ZVBheW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4iIiE9YS5mb3JtZGF0YS5wYXltZW50VHlwZSYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFRlcm0mJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbCYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFZhbHVlJiYiIiE9YS5mb3JtZGF0YS5wYXltZW50UmF0ZXx8YS5mb3JtZGF0YS5ub1BheW1lbnR9LGluaXRDYWxjdWxhdG9yOmZ1bmN0aW9uKCl7dmFyIGM9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iIHN1ciBjZSAiK2EuZm9ybWRhdGEuY3VycmVudE1ha2UrIiAiK2EuZm9ybWRhdGEuY3VycmVudE1vZGVsKyIgIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyOiIgb24gdGhpcyAiK2EuZm9ybWRhdGEuY3VycmVudFllYXIrIiAiK2EuZm9ybWRhdGEuY3VycmVudE1ha2UrIiAiKwphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubXVsdGlzdGVwUGF5bWVudFZlaGljbGUiLGIpLnRleHQoYyk7aWYoIk5FVyI9PWEuY3VycmVudERlcHR8fCJORVdJTlYiPT1hLmN1cnJlbnREZXB0KXskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIik7YS5jYWxjdWxhdG9yRnVuY3Rpb25zPW5ldyBjYWxjdWxhdG9yRnVuY3Rpb25zKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKTtjPSJORVdJTlYiPT1hLmN1cnJlbnREZXB0O2xldCBlPSJmaW5hbmNpbmciLGY9MCxnPTAsbD0kKCdpbnB1dFtuYW1lPSJBRE1JTl9TSE9XX0xPV0VTVF9QQVlNRU5UX0lOVEVSVkFMIl0nKS52YWwoKTt2YXIgZD0yRTQ7Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJihkPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIiksCmU9InVuZGVmaW5lZCIhPWRbMF0\/ZFswXTplLGY9ZFsxXSxnPXBhcnNlSW50KGRbNF0pfHwwLGw9ZFsyXSxkPWRbM10pO2EuY2FsY3VsYXRvckZ1bmN0aW9ucy5pbml0KGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQsZSxnLDAsbCxkLGMsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXIpOyQoImJvZHkiKS5vZmYoImNoYW5nZSIsIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjJytiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScpOyQoImJvZHkiKS5vZmYoIm5vUGF5bWVudCIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpOyQoImJvZHkiKS5vZmYoInBheW1lbnRzUmVhZHkiLCIjIitiWzBdLmlkKwoiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIik7JCgiYm9keSIpLm9uKCJub1BheW1lbnQiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKCl7YS5mb3JtZGF0YS5ub1BheW1lbnQ9ITA7YS5uZXh0KCEwKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIiwiIyIrYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICMnK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJyxmdW5jdGlvbigpe3ZhciBwPSJmaW5hbmNpbmciPT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU\/JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iRmluYW5jZW1lbnQiOiJGaW5hbmNpbmciOiJsZWFzaW5nIj09CmEuY2FsY3VsYXRvckZ1bmN0aW9ucy5wYXltZW50VHlwZT8kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJMb2NhdGlvbiI6IkxlYXNpbmciOiIiO2EuZm9ybWRhdGEucGF5bWVudFR5cGU9cDthLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD1hLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU7YS5mb3JtZGF0YS5wYXltZW50VGVybT0kKHRoaXMpLnZhbCgpO2EuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpO3A9JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IiKS5maW5kKCcucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdW3ZhbHVlPSInK2EuZm9ybWRhdGEucGF5bWVudFRlcm0rJyJdW2RhdGEtcmF0ZXR5cGU9IicrYS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGUrJyJdJyk7dmFyIHE7YS5mb3JtZGF0YS5wYXltZW50UmVzaWR1YWxWYWx1ZT0KbnVsbCE9KHE9cC5hdHRyKCJkYXRhLXJlc2lkdWFsIikpP3E6JCh0aGlzKS5hdHRyKCJkYXRhLXJlc2lkdWFsIik7dmFyIHQ7YS5mb3JtZGF0YS5wYXltZW50VmFsdWU9bnVsbCE9KHQ9cC5hdHRyKCJkYXRhLXJlYWxwYXltZW50IikpP3Q6JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7dmFyIEE7YS5mb3JtZGF0YS5iYXNlcGF5bWVudD1udWxsIT0oQT1wLmF0dHIoImRhdGEtYmFzZXBheW1lbnQiKSk\/QTokKHRoaXMpLmF0dHIoImRhdGEtYmFzZXBheW1lbnQiKTthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEluY2VudGl2ZT1wLmF0dHIoImRhdGEtdG90YWxpbmNlbnRpdmUiKTthLmZvcm1kYXRhLnBheW1lbnRHU1Q9cC5hdHRyKCJkYXRhLWdzdCIpO2EuZm9ybWRhdGEucGF5bWVudEhTVD1wLmF0dHIoImRhdGEtaHN0Iik7YS5mb3JtZGF0YS5wYXltZW50UFNUPXAuYXR0cigiZGF0YS1wc3QiKTthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9cC5hdHRyKCJkYXRhLWluaXRpYWxQcmljZSIpOwphLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPXAuYXR0cigiZGF0YS1maW5hbFByaWNlIik7dmFyIEg7YS5mb3JtZGF0YS5wYXltZW50RmVlc0xpc3Q9bnVsbCE9KEg9SlNPTi5wYXJzZShhdG9iKHAuYXR0cigiZGF0YS1mZWVzTGlzdCIpKSkpP0g6W107cT0wO2Zvcih2YXIgTiBvZiBhLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdClxKz1OLmFtb3VudHx8MDthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT1xO3ZhciBJO2EuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PW51bGwhPShJPUpTT04ucGFyc2UoYXRvYihwLmF0dHIoImRhdGEtaW5jZW50aXZlc0xpc3QiKSkpKT9JOltdO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5kb3ducGF5bWVudHx8MDthLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMua21BbGxvd2FuY2U7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRGcmVxdWVuY3k7CmEuZm9ybWRhdGEucGF5bWVudFJhdGU9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGUiKTthLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1hLmNhbGN1bGF0b3JGdW5jdGlvbnMudHJhZGVJblZhbHVlO3E9KHBhcnNlSW50KGEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50KXx8MCkrKHBhcnNlSW50KGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKXx8MCk7Q29va2llcy5zZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIixhLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbCsiLSIrYS5mb3JtZGF0YS5wYXltZW50VGVybSsiLSIrYS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwrIi0iK2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlKyItIitxLG51bGwsIi8iKTsiTkVXQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJVU0VEQ0FSUyIhPSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkmJiJmdW5jdGlvbiI9PXR5cGVvZiBjaGFuZ2VQYWdlUGF5bWVudFZhbHVlJiYKKEk9JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50IiksTj0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxpbnRlcmVzdCIpLHA9JCh0aGlzKS5hdHRyKCJkYXRhLWx1eGVUYXhBbW91bnQiKSxxPXEudG9GaXhlZCgwKSx0PSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpLEE9JCh0aGlzKS5hdHRyKCJkYXRhLWVmZmVjdGl2ZVJhdGUiKSxIPSQodGhpcykuYXR0cigiZGF0YS10b3RhbENvc3QiKSxjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKHtjdXJyZW50UGF5bWVudDpJLGN1cnJlbnRSYXRlOmEuZm9ybWRhdGEucGF5bWVudFJhdGUscGF5bWVudFRlcm06YS5mb3JtZGF0YS5wYXltZW50VGVybSxwYXltZW50VHlwZTphLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbCxwYXltZW50SW50ZXJ2YWw6YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwscGF5bWVudERvd25QYXltZW50OnEsdG90YWxJbnRlcmVzdDpOLGx1eGVUYXhBbW91bnQ6cCxyYXRlVHlwZTp0LGVmZmVjdGl2ZVJhdGU6QSx0b3RhbENvc3Q6SH0pLAokKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKS50cmlnZ2VyKCJwYXltZW50Q2hhbmdlZCIpKTtrLmNoZWNrVmFsaWRpdHkoKX0pOyQoImJvZHkiKS5vbigicGF5bWVudHNSZWFkeSIsIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsZnVuY3Rpb24oKXtmPWEuZm9ybWRhdGEucGF5bWVudFRlcm0\/YS5mb3JtZGF0YS5wYXltZW50VGVybTpmP2Y6MDswIT1mJiYwPCQoIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2YrJyJdJykubGVuZ3RoPyQoIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2YrJyJdJykuYXR0cigiY2hlY2tlZCIsImNoZWNrZWQiKS50cmlnZ2VyKCJjaGFuZ2UiKToKKGEuZm9ybWRhdGEucGF5bWVudFR5cGU9IiIsYS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9IiIsYS5mb3JtZGF0YS5wYXltZW50VGVybT0iIixhLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0iIixhLmZvcm1kYXRhLnBheW1lbnRSZXNpZHVhbFZhbHVlPSIiLGEuZm9ybWRhdGEucGF5bWVudFZhbHVlPSIiLGEuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT0iIixhLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPSIiLGEuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PVtdLGEuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PVtdLGEuZm9ybWRhdGEuYmFzZXBheW1lbnQ9IiIsYS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9MCxhLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT0wLGEuZm9ybWRhdGEucGF5bWVudEdTVD0wLGEuZm9ybWRhdGEucGF5bWVudEhTVD0wLGEuZm9ybWRhdGEucGF5bWVudFBTVD0wLGEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PTAsCmEuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlPTAsYS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9IiIsYS5mb3JtZGF0YS5wYXltZW50UmF0ZT0iIixhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT0iIixrLmNoZWNrVmFsaWRpdHkoKSk7JCgiLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIixiKS5zaG93KCl9KTtzZXRUaW1lb3V0KCgpPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBDdGFUcmFjayYmQ3RhVHJhY2suZ2V0VHJhY2tTdGVwKCJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIpKXtsZXQgcD1uZXcgQ3VzdG9tRXZlbnQoInRyYWNrc3RlcC5jb21wbGV0ZSIse2RldGFpbDp7c3RlcElkOiJQYXltZW50Q2FsY3VsYXRvckFjdGlvbkJveCIsZm9yY2VVcGRhdGU6ITAsb25Db21wbGV0ZTpxPT57cS5kYXRhc2V0LmNvbXBsX3R4dF9mcj1xLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZnIucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RnJbMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLApjdGFQYXltZW50VGV4dEZyWzFdKTtxLmRhdGFzZXQuY29tcGxfdHh0X2VuPXEuZGF0YXNldC5pbml0X2NvbXBsX3R4dF9lbi5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRFblswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRFblsxXSk7cT17cGF5bWVudDp7fX07X2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSYmKHE9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIpKSk7bGV0IHQ9IkZSRU5DSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Y3RhUGF5bWVudFRleHRGcjpjdGFQYXltZW50VGV4dEVuO3EucGF5bWVudD17bGlzdFByaWNlOnRbMl18fCIiLHBheW1lbnQ6dFswXXx8IiIscmF0ZTp0WzFdfHwiIixwYXltZW50VmFsdWU6Y3RhUGF5bWVudFZhbHVlc3x8W119O19sb2NhbFN0b3JhZ2VTZXQoInJldGFpbF90cmFja19kYXRhIixKU09OLnN0cmluZ2lmeShxKSwKMzApO0Nvb2tpZXMuc2V0KCJjdGFfZGF0YV92YWxpZCIsMSwxLCIvIil9fX0pOyQoIiMiK2JbMF0uaWQrIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpLm9uKCJwYXltZW50Q2hhbmdlZCIsZnVuY3Rpb24oKXtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHApfSl9fSwxMDApfWVsc2UgJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpLHkoYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQpfSxpbml0RW1haWw6ZnVuY3Rpb24oKXtrLmNoZWNrVmFsaWRpdHkoKX0saW5pdFBob25lOmZ1bmN0aW9uKCl7ay5jaGVja1ZhbGlkaXR5KCl9LGluaXRDb25zZW50OmZ1bmN0aW9uKCl7bGV0IGM9Ii8iK3crIi9tdWx0aXN0ZXBJbnN0YW50Q29uc2VudC5odG1sIjskKCIjZmluYW5jZV9tdWx0aXN0ZXBfY29uc2VudF90ZXh0X2RpdiIsYikuYXR0cigic3JjIixjKTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsZnVuY3Rpb24oZCl7KGQub3JpZ2luPXdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pJiYKImNvbnNlbnRJZnJhbWVCb3R0b20iPT09ZC5kYXRhJiYkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50IixiKS5hZGRDbGFzcygiaXNWYWxpZCIpfSwhMSl9LGluaXRWV0NvbnNlbnQ6ZnVuY3Rpb24oKXtsZXQgYyxkLGU7IlFDIj09KG51bGwhPShlPW51bGw9PShjPWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzKT92b2lkIDA6bnVsbD09KGQ9Yy5wcm92aW5jZSk\/dm9pZCAwOmQuc2hvcnRfbmFtZSk\/ZTokKCIjRklOQU5DRV9NVUxUSVNURVBfRGVhbGVyUHJvdmluY2UiLGIpLnZhbCgpKT8oJCgiLnZ3Q29uc2VudERpdnNST0MiKS5oaWRlKCksJCgiLnZ3Q29uc2VudERpdnNRQyIpLnNob3coKSk6KCQoIi52d0NvbnNlbnREaXZzUk9DIikuc2hvdygpLCQoIi52d0NvbnNlbnREaXZzUUMiKS5oaWRlKCkpfSxpbml0RGlzYnVyc21lbnRWVzpmdW5jdGlvbigpe2xldCBjLGQsZTsiUUMiPT0obnVsbCE9KGU9bnVsbD09CihjPWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzKT92b2lkIDA6bnVsbD09KGQ9Yy5wcm92aW5jZSk\/dm9pZCAwOmQuc2hvcnRfbmFtZSk\/ZTokKCIjRklOQU5DRV9NVUxUSVNURVBfRGVhbGVyUHJvdmluY2UiLGIpLnZhbCgpKT8oJCgiLnJlbnRPck93blF1ZXN0aW9uVldRQyIpLnNob3coKSwkKCIudndEaXNidXJzbWVudFFjIikuc2hvdygpLCQoIi5tb250bGh5UGF5bWVudFF1ZXN0aW9uIikuaGlkZSgpKTooJCgiLnJlbnRPck93blF1ZXN0aW9uVldRQyIpLmhpZGUoKSwkKCIudndEaXNidXJzbWVudFFjIikuaGlkZSgpLCQoIi5tb250bGh5UGF5bWVudFF1ZXN0aW9uIikuc2hvdygpKX0sdmFsaWRhdGVDb25zZW50OmZ1bmN0aW9uKCl7aWYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudCIsYikuaGFzQ2xhc3MoImlzVmFsaWQiKSlyZXR1cm4gYS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX3llcyIsCmIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIiksITA7YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX25vIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpO3JldHVybiExfSx2YWxpZGF0ZUNoZWNrZWRDcmVkaXRCdXJlYXU6ZnVuY3Rpb24oYyl7aWYoJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9ImNyZWRpdEJ1cmVhdUNvbnNlbnQiXScpLmlzKCI6Y2hlY2tlZCIpKXJldHVybiBhLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0kKCIjd29ya2luZ1doaWxlSW5TY2hvb2xfeWVzIixiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCEwO2EuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF9ubyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKTtyZXR1cm4hMX0sdmFsaWRhdGVNb3JlVGhhblplcm86ZnVuY3Rpb24oYyl7cmV0dXJuIDA8CmN9LHNlbmRFbWFpbDpmdW5jdGlvbigpe3ZhciBjPSQoYikuZmluZCgiLmVtYWlsU3ViamVjdCIpLGQ9JChiKS5maW5kKCIuZW1haWxCb2R5Iik7Yz1jLnRleHQoKT9jLnRleHQoKToiIjtkPWQuaHRtbCgpP2QuaHRtbCgpOiIiO2lmKGMmJmQpe3ZhciBlPSQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOyIiIT1hLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8mJihlKz0iICgiK2EuZm9ybWRhdGEuZW1wbG95bWVudEFkZGVkSW5mbysiKSIpO2Q9ZC5yZXBsYWNlKCJ7JEJPRFlUWVBFfSIsYS5mb3JtZGF0YS52ZWhpY2xlVHlwZT8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS52ZWhpY2xlVHlwZSsnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskVElUTEV9IixhLmZvcm1kYXRhLnRpdGxlP2EuZm9ybWRhdGEudGl0bGU6InJlbW92ZWVtcHR5Iik7CmQ9ZC5yZXBsYWNlKCJ7JEZJUlNUTkFNRX0iLGEuZm9ybWRhdGEuZmlyc3ROYW1lKTtkPWQucmVwbGFjZSgieyRMQVNUTkFNRX0iLGEuZm9ybWRhdGEubGFzdE5hbWUpO2Q9ZC5yZXBsYWNlKCJ7JEVNQUlMfSIsYS5mb3JtZGF0YS5lbWFpbEFkZHJlc3MpO2Q9ZC5yZXBsYWNlKCJ7JFBIT05FTlVNQkVSfSIsYS5mb3JtZGF0YS5waG9uZU51bWJlcik7ZD1kLnJlcGxhY2UoInskQklSVEhEQVl9IixhLmZvcm1kYXRhLmJpcnRoZGF0ZURheSsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVZZWFyKTtkPWQucmVwbGFjZSgieyRCVURHRVR9IixhLmZvcm1kYXRhLmJ1ZGdldD8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5idWRnZXQrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRMWURSSVZJTkd9IixhLmZvcm1kYXRhLmN1cnJlbnRseURyaXZpbmc\/JCgnW3ZhbHVlPSInKwphLmZvcm1kYXRhLmN1cnJlbnRseURyaXZpbmcrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRFU1RJTUFURURDUkVESVRSQVRJTkd9IixhLmZvcm1kYXRhLmNyZWRpdFJhdGluZz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5jcmVkaXRSYXRpbmcrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JElOVEVSRVNURURET1dOT1BUSU9OfSIsYS5mb3JtZGF0YS5kb3duT3B0aW9ucz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5kb3duT3B0aW9ucysnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVEFERFJFU1N9IixhLmZvcm1kYXRhLmFkZHJlc3MpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRSRVNJREVOQ0VUWVBFfSIsJCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEucmVudE9yT3duKwonIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIikpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRPQ0NVUEFUSU9OTEVOR1RIfSIsYS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX0FERFJFU1NfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX01PTlRIUyIpLnZhbCgpKTt2YXIgZixnLGwscD1udWxsIT0obD1udWxsPT0oZj1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzcyk\/dm9pZCAwOm51bGw9PShnPWYucHJvdmluY2UpP3ZvaWQgMDpnLnNob3J0X25hbWUpP2w6JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKTtkPUYmJiJRQyI9PXA\/ZC5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZUkVOVH0iLCIkIithLmZvcm1kYXRhLm1vbnRobHlQYXltZW50KyIgLS0gRGlzYnVyc2VtZW50OiAkIithLmZvcm1kYXRhLm1vbnRobHlEaXNidXJzZW1lbnQpOgpkLnJlcGxhY2UoInskQ1VSUkVOVE1PTlRITFlSRU5UfSIsIiQiK2EuZm9ybWRhdGEubW9udGhseVBheW1lbnQpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRPQ0NVUEFUSU9OfSIsZSk7ZD1kLnJlcGxhY2UoInskV09SS0lOR1dISUxFSU5TQ0hPT0x9IiwiIiE9YS5mb3JtZGF0YS53b3JraW5nV2hpbGVJblNjaG9vbD8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS53b3JraW5nV2hpbGVJblNjaG9vbCsnIicpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVElOQ09NRVNPVVJDRX0iLCIiIT1hLmZvcm1kYXRhLm90aGVyRW1wbG95bWVudFN0YXR1cz8kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5vdGhlckVtcGxveW1lbnRTdGF0dXMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRNT05UTFlJTkNPTUV9IiwiJCIrYS5mb3JtZGF0YS5tb250aGx5SW5jb21lKTsKZD1kLnJlcGxhY2UoInskQ1VSUkVOVE1PTlRITFlJTkNPTUVMRU5HVEh9IixhLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfeWVhcnMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5tb250aGx5SW5jb21lX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19NT05USFMiKS52YWwoKSk7IiIhPWEuZm9ybWRhdGEuYWRkcmVzczI\/KGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTQUREUkVTU30iLGEuZm9ybWRhdGEuYWRkcmVzczIpLGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTT0NDVVBBVElPTkxFTkdUSH0iLGEuZm9ybWRhdGEuYWRkcmVzczJfeWVhcnMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX01PTlRIUyIpLnZhbCgpKSwKZD1kLnJlcGxhY2UoIiMjUFJFVklPVVNBRERSRVNTSU5GT1NUQVJUIyMiLCIiKSxkPWQucmVwbGFjZSgiIyNQUkVWSU9VU0FERFJFU1NJTkZPRU5EIyMiLCIiKSk6ZD1kLnJlcGxhY2UoLyMjUFJFVklPVVNBRERSRVNTSU5GT1NUQVJUIyNbXHNcU10qIyNQUkVWSU9VU0FERFJFU1NJTkZPRU5EIyMvLCIiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UTUFLRX0iLCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlP2EuZm9ybWRhdGEuY3VycmVudE1ha2U6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVE1PREVMfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsP2EuZm9ybWRhdGEuY3VycmVudE1vZGVsOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRZRUFSfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXI\/YS5mb3JtZGF0YS5jdXJyZW50WWVhcjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UU1RPQ0tOVU1CRVJ9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI\/CmEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JGNyZWRpdEJ1cmVhdUNyZWRpdH0iLCIiIT1hLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD9hLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdDoiTk8iKTtkPWQucmVwbGFjZSgieyRTSU59IiwiIiE9YS5mb3JtZGF0YS5TSU4\/YS5mb3JtZGF0YS5TSU46InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQURERURJTkZPfSIsIiIhPWEuZm9ybWRhdGEuYWRkZWRJbmZvP2EuZm9ybWRhdGEuYWRkZWRJbmZvOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JEVNUExPWUVSfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lP2EuZm9ybWRhdGEuZW1wbG95ZXJOYW1lOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JEVNUExPWUVSUEhPTkV9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llclBob25lP2EuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZToicmVtb3ZlZW1wdHkiKTsKZD1kLnJlcGxhY2UoInskRU1QTE9ZRU1FTlRTVEFUVVNUSU1FfSIsYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcisiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19ZRUFSUyIpLnZhbCgpKyIgIithLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aCsiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19NT05USFMiKS52YWwoKSk7ZD1kLnJlcGxhY2UoInskRU1QTE9ZRVJBRERSRVNTfSIsIiIhPWEuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyP2EuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENPTlNFTlRBQ0NPVU5UTU9OSVRPUklOR30iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZz8xPT1hLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZz8iWUVTIjoiTk8iOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENPTlNFTlRDUkVESVRBU1NFU1NNRU5UfSIsCiIiIT1hLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50PzE9PWEuZm9ybWRhdGEuY29uc2VudENyZWRpdEFzc2Vzc21lbnQ\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDT05TRU5UUElQRURBfSIsIiIhPWEuZm9ybWRhdGEuY29uc2VudFBpcGVkYT8xPT1hLmZvcm1kYXRhLmNvbnNlbnRQaXBlZGE\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDT05TRU5UQ0FTTH0iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRDYXNsPzE9PWEuZm9ybWRhdGEuY29uc2VudENhc2w\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTsiIiE9YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyPyhmPSQoJ1t2YWx1ZT0iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIl0nKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCIiIT1hLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8yJiYoZis9IiAoIithLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8yKwoiKSIpLGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTT0NDVVBBVElPTn0iLGYpLGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTRU1QTE9ZRVJ9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llck5hbWUyP2EuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMjoicmVtb3ZlZW1wdHkiKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSUEhPTkV9IiwiIiE9YS5mb3JtZGF0YS5lbXBsb3llclBob25lMj9hLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUyOiJyZW1vdmVlbXB0eSIpLGQ9ZC5yZXBsYWNlKCJ7JFBSRVZJT1VTRU1QTE9ZRU1FTlRTVEFUVVNUSU1FfSIsYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcjIrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgyKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX01PTlRIUyIpLnZhbCgpKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSQUREUkVTU30iLAoiIiE9YS5mb3JtZGF0YS5hZGRyZXNzRW1wbG95ZXIyP2EuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyMjoicmVtb3ZlZW1wdHkiKSxkPWQucmVwbGFjZSgiIyNQUkVWSU9VU09DQ1VQQVRJT05TVEFSVCMjIiwiIiksZD1kLnJlcGxhY2UoIiMjUFJFVklPVVNPQ0NVUEFUSU9ORU5EIyMiLCIiKSk6ZD1kLnJlcGxhY2UoLyMjUFJFVklPVVNPQ0NVUEFUSU9OU1RBUlQjI1tcc1xTXSojI1BSRVZJT1VTT0NDVVBBVElPTkVORCMjLywiIik7ZD1kLnJlcGxhY2UoInskUEFZTUVOVFRZUEV9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50VHlwZT9hLmZvcm1kYXRhLnBheW1lbnRUeXBlOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRURVJNfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFRlcm0\/YS5mb3JtZGF0YS5wYXltZW50VGVybToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5URE9XTlBBWU1FTlR9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50RG93blBheW1lbnQ\/CmEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50OiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRJTlRFUlZBTH0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD9hLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbDoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5US01BTExPV0FOQ0V9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U\/YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskUEFZTUVOVFZBTFVFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFZhbHVlP2EuZm9ybWRhdGEucGF5bWVudFZhbHVlOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFJhdGU\/YS5mb3JtZGF0YS5wYXltZW50UmF0ZToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyROT1BBWU1FTlR9IixhLmZvcm1kYXRhLm5vUGF5bWVudD8KIiI6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1JFRElUREVDSVNJT059IixhLmNyZWRpdERlY2lzaW9uSFRNTD9hLmNyZWRpdERlY2lzaW9uSFRNTDoicmVtb3ZlZW1wdHkiKTsiIiE9YS5mb3JtZGF0YS50cmFkZUluVmFsdWU\/KGQ9ZC5yZXBsYWNlKCJ7JFRSQURFTUFLRX0iLGEuZm9ybWRhdGEudHJhZGVJbk1ha2UpLGQ9ZC5yZXBsYWNlKCJ7JFRSQURFTU9ERUx9IixhLmZvcm1kYXRhLnRyYWRlSW5Nb2RlbCksZD1kLnJlcGxhY2UoInskVFJBREVZRUFSfSIsYS5mb3JtZGF0YS50cmFkZUluVHJpbSksZD1kLnJlcGxhY2UoInskVFJBREVUUklNfSIsYS5mb3JtZGF0YS50cmFkZUluWWVhciksZD1kLnJlcGxhY2UoInskVFJBREVWQUxVRX0iLGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSxkPWQucmVwbGFjZSgiIyNUUkFERUlOSU5GT1NUQVJUIyMiLCIiKSxkPWQucmVwbGFjZSgiIyNUUkFERUlOSU5GT0VORCMjIiwiIikpOmQ9ZC5yZXBsYWNlKC8jI1RSQURFSU5JTkZPU1RBUlQjI1tcc1xTXSojI1RSQURFSU5JTkZPRU5EIyMvLAoiIik7ZD1rLmVtYWlsQm9keUZvck11bHRpRGVhbGVyKGQpO2JvZHlMb3dlcj1kLnRvTG93ZXJDYXNlKCk7Zm9yKGY9MDstMTxib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTspe3Bvcz1ib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTtpZigtMT09cG9zKWJyZWFrO3JwbEVuZD1ib2R5TG93ZXIuaW5kZXhPZigiPGJyPiIscG9zKTtycGxTdGFydD1ib2R5TG93ZXIubGFzdEluZGV4T2YoIjxicj4iLHBvcyk7aWYoLTE9PXJwbEVuZHx8LTE9PXJwbFN0YXJ0KWJyZWFrO3JwbFN0cmluZz1kLnN1YnN0cmluZyhycGxTdGFydCxycGxFbmQpO2Q9ZC5yZXBsYWNlKHJwbFN0cmluZywiIik7Ym9keUxvd2VyPWQudG9Mb3dlckNhc2UoKTtmKys7aWYoNTA8ZilicmVha31lbWFpbEhhbmRsZXIuc3ViamVjdD1jO2VtYWlsSGFuZGxlci5ib2R5PWQ7ay5zZXRFbWFpbEhhbmRsZXJTZW5kKCk7ZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdCI7IjEiPT0KdSYmKGVtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QybmRDaGFuY2UiKTsiMSI9PXgmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCIpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJGSU5BTkNFIjtlbWFpbEhhbmRsZXIuaXNtb2JpbGVzaXRlPTE9PSQoIiNpc21vYmlsZSIpPyJZRVMiOiJOTyI7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1hLmZvcm1kYXRhLmZpcnN0TmFtZTtlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWEuZm9ybWRhdGEubGFzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJQaG9uZT1hLmZvcm1kYXRhLnBob25lTnVtYmVyO2VtYWlsSGFuZGxlci5jb250YWN0QWRkcmVzcz1hLmZvcm1kYXRhLmFkZHJlc3M7ZW1haWxIYW5kbGVyLmNvbnRhY3RCaXJ0aD1hLmZvcm1kYXRhLmJpcnRoZGF0ZURheSsiLyIrYS5mb3JtZGF0YS5iaXJ0aGRhdGVNb250aCsKIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlWWVhcjtlbWFpbEhhbmRsZXIuc2FsZXNEZXB0PWEuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdDtlbWFpbEhhbmRsZXIubWFrZT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlO2VtYWlsSGFuZGxlci5tb2RlbD1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDtlbWFpbEhhbmRsZXIueWVhcj1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcjtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudEJ5U3RvY2s9ITE7ZW1haWxIYW5kbGVyLnNraXBHZW9Mb2M9ITA7ZW1haWxIYW5kbGVyLnBhcnRpYWw9ITE7ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKHEpe2lmKHEpay5zZXRGaW5hbmNlRm9ybVN0YXR1c1RvU2VudCgpO2Vsc2V7dmFyIHQ9ZW1haWxIYW5kbGVyLl9fbGFzdFJldHVybnx8e307cT0ib2JqZWN0Ij09PXR5cGVvZiB0JiZ0Lm1lc3NhZ2U\/dC5tZXNzYWdlOiIiOwp2YXIgQT1qc19kMmNfZ2V0X3ZhbCgiRU1BSUxfRkFJTF9NRVNTQUdFIil8fCQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX1VTRVIiLGIpLnZhbCgpfHwiVGhlcmUgd2FzIGEgcHJvYmxlbSBzdWJtaXR0aW5nIHlvdXIgYXBwbGljYXRpb24uIFBsZWFzZSB0cnkgYWdhaW4uIjtjb25zb2xlLmVycm9yKCJmaW5hbmNlX211bHRpc3RlcC5zZW5kRW1haWwgZmFpbGVkIix0KTt0PSQoIjxkaXY+IikudGV4dChxKS5odG1sKCk7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2Euc3RlcD0zMDskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuc2hvdygpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKHE\/QSsiICIrdDpBKX19O2VtYWlsSGFuZGxlci5zZW5kTWFpbCghMSl9fSxzZXRGaW5hbmNlRm9ybVN0YXR1c1RvU2VudDpmdW5jdGlvbigpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9zZXRGaW5hbmNlTXVsdGlzdGVwRGF0YVN0YXR1c1RvU2VudD93c3dpZHRoPTAiLApkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTp7dXNlcklkOmsudXNlcklkKCl9LHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7bGV0IGQ9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiRmluYW5jZUFjdGlvbkJveCJ9fSk7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChkKTtpZigiU1VDQ0VTUyI9PWN8fG51bGw9PT1jKWEuc3RlcD0yMSxrLnVzZXJJZCgtMSksbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIiksJChkb2N1bWVudC5ib2R5KS50cmlnZ2VyKCJtdWx0aUZvcm1GaW5hbmNlU3VibWl0Iil9fSl9LHJlc2V0Rm9ybTpmdW5jdGlvbigpe2EuZm9ybWRhdGE9e3ZlaGljbGVUeXBlOiIiLGJ1ZGdldDoiIixjdXJyZW50bHlEcml2aW5nOiIiLGVtYWlsQWRkcmVzczoiIixjcmVkaXRSYXRpbmc6IiIsZG93bk9wdGlvbnM6IiIsYmlydGhkYXRlWWVhcjoiIixiaXJ0aGRhdGVNb250aDoiIiwKYmlydGhkYXRlRGF5OiIiLGFkZHJlc3M6IiIsc3BsaXRBZGRyZXNzOltdLGFkZHJlc3NfeWVhcnM6MCxhZGRyZXNzX21vbnRoczowLGFkZHJlc3MyOiIiLHNwbGl0QWRkcmVzczI6W10sYWRkcmVzczJfeWVhcnM6MCxhZGRyZXNzMl9tb250aHM6MCxhZGRyZXNzRW1wbG95ZXI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXI6W10scmVudE9yT3duOiIiLG1vbnRobHlQYXltZW50OjAsbW9udGhseURpc2J1cnNlbWVudDowLGVtcGxveW1lbnRTdGF0dXM6IiIsZW1wbG95bWVudEFkZGVkSW5mbzoiIixlbXBsb3llck5hbWU6IiIsZW1wbG95ZXJQaG9uZToiIixlbXBsb3ltZW50U3RhdHVzWWVhcjowLGVtcGxveW1lbnRTdGF0dXNNb250aDowLGVtcGxveW1lbnRBZGRlZEluZm8yOiIiLGVtcGxveWVyTmFtZTI6IiIsZW1wbG95ZXJQaG9uZTI6IiIsZW1wbG95bWVudFN0YXR1c1llYXIyOjAsZW1wbG95bWVudFN0YXR1c01vbnRoMjowLGFkZHJlc3NFbXBsb3llcjI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXIyOltdLAp3b3JraW5nV2hpbGVJblNjaG9vbDoiIixvdGhlckVtcGxveW1lbnRTdGF0dXM6IiIsbW9udGhseUluY29tZTowLG1vbnRobHlJbmNvbWVfeWVhcnM6MCxtb250aGx5SW5jb21lX21vbnRoczowLHRpdGxlOiIiLGZpcnN0TmFtZToiIixsYXN0TmFtZToiIixwaG9uZU51bWJlcjoiIixjdXJyZW50TWFrZToiIixjdXJyZW50TW9kZWw6IiIsY3VycmVudE1vZGVsVGV4dDoiIixjdXJyZW50WWVhcjoiIixjdXJyZW50U3RvY2tOdW1iZXI6IiIsY3VycmVudE1pbGVhZ2U6MTAsY3VycmVudFRyaW06IiIsY3VycmVudFN0eWxlaWQ6IiIsY3VycmVudENhcklkOiIiLHBheW1lbnRUeXBlOiIiLHBheW1lbnRUeXBlUmVhbDoiIixwYXltZW50VGVybToiIixwYXltZW50UmF0ZVR5cGU6IiIscGF5bWVudFZhbHVlOiIiLGJhc2VwYXltZW50OiIiLHBheW1lbnRUb3RhbEluY2VudGl2ZTowLHBheW1lbnRUb3RhbEZlZTowLHBheW1lbnRHU1Q6MCxwYXltZW50SFNUOjAscGF5bWVudFBTVDowLHBheW1lbnREb3duUGF5bWVudDowLApwYXltZW50S21BbGxvd2FuY2U6MCxwYXltZW50SW50ZXJ2YWw6IiIscGF5bWVudFJhdGU6IiIscGF5bWVudFJlc2lkdWFsVmFsdWU6MCxub1BheW1lbnQ6ITEsbXVsdGlfZGVhbGVyX3NlbmRUbzoiIixjcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIixTSU46IiIsYWRkZWRJbmZvOiIiLHZlaGljbGVTYWxlc0RlcHQ6Im90aGVyIix2ZWhpY2xlUHJpY2U6IiIsdmVoaWNsZVRyYW5zbWlzc2lvbjoiIix2ZWhpY2xlVHJpbToiIix2ZWhpY2xlQ29sb3I6IiIsaW5pdGlhbFRpdGxlU2hvdzohMCxtdWx0aUZyb21NaW5pOiExLHRyYWRlSW5NYWtlOiIiLHRyYWRlSW5Nb2RlbDoiIix0cmFkZUluWWVhcjoiIix0cmFkZUluVHJpbToiIix0cmFkZUluVmFsdWU6IiJ9fSxjcmVkaXRBcHBTdW1pc3Npb246ZnVuY3Rpb24oKXt2YXIgYz1hLmZvcm1kYXRhLGQ9JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCk7Yy5zaXRlSWQ9ZDtjLmN1cnJlbnREZXB0PWEuY3VycmVudERlcHQ7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuc2hvdygpOwphLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0iWUVTIjthLnN0ZXA9MjE7JC5hamF4KHt1cmw6Ii8iK3crYC9hamF4L3N1Ym1pdENyZWRpdEFwcGxpY2F0aW9uP3dzd2lkdGg9JHtlbmNvZGVVUklDb21wb25lbnQoIjAiKX1gLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOmMsc3VjY2VzczpmdW5jdGlvbihlKXtsZXQgZixnLGw9ZS5hcHBsaWNhdGlvbklkO2lmKGUuZXJyb3IpZj0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1ZXRVJST1JfTVNHX1VTRVIiLGIpLnZhbCgpLGc9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9FUlJPUl9NU0dfTEVBRCIsYikudmFsKCksYS5jcmVkaXREZWNpc2lvbkhUTUw9ZztlbHNlIGlmKGwpe2lmKGY9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpKyI8YnI+PGJyPiIrbCxmPWYucmVwbGFjZSgiIyNVU0VSRU1BSUwjIyIsYy5lbWFpbEFkZHJlc3MpLGc9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9TVUNDRVNTX01TR19MRUFEIiwKYikudmFsKCkrIjxzdHJvbmc+IitsKyI8L3N0cm9uZz4iLGEuY3JlZGl0RGVjaXNpb25IVE1MPWcsYS5jcmVkaXRBcHBsaWNhdGlvbklkPWwsZS5hcHBsaWNhdGlvblN0YXR1cyYmZS5hcHBsaWNhdGlvblN0YXR1cy5zdGF0dXMpc3dpdGNoKGUuYXBwbGljYXRpb25TdGF0dXMuc3RhdHVzKXtjYXNlICJBcHByb3ZlZCI6JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpO2JyZWFrO2Nhc2UgIlBlbmRpbmciOiQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfUEVORElOR19NU0ciLGIpLnZhbCgpO2JyZWFrO2RlZmF1bHQ6JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9OT0FQUFJPVkFMX01TRyIsYikudmFsKCl9fWVsc2UgZj0kKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1ZXRVJST1JfTVNHX1VTRVIiLGIpLnZhbCgpLGc9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9FUlJPUl9NU0dfTEVBRCIsYikudmFsKCksYS5jcmVkaXREZWNpc2lvbkhUTUw9ZzskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UaXRsZSIpLmhpZGUoKTsKJChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLmhpZGUoKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmh0bWwoZik7JChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5zaG93KCk7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9fSl9LHJvdXRlT25lQ2FsbDpmdW5jdGlvbigpe3ZhciBjPWEuZm9ybWRhdGEsZD0kKCIjc2l0ZUlEIikudmFsKCl8fCQoIiN0b3BzaXRlaWQiKS52YWwoKTtjLnNpdGVJZD1kO2MuY3VycmVudERlcHQ9YS5jdXJyZW50RGVwdDskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5zaG93KCk7YS5zdGVwPTIxOyhmdW5jdGlvbihlKXtyZXR1cm4gbmV3IFByb21pc2UoKGYsZyk9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2U9ZSsiP2NiPSIrMjAzODM0NzQ5MypNYXRoLnJhbmRvbSgpO2xldCBsPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpOwpsLnNldEF0dHJpYnV0ZSgic3JjIixlKTtsLnNldEF0dHJpYnV0ZSgiYXN5bmMiLCJmYWxzZSIpO2xldCBwPWRvY3VtZW50LmhlYWQ7cC5pbnNlcnRCZWZvcmUobCxwLmZpcnN0RWxlbWVudENoaWxkKTtsLmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCgpPT57ZigpfSwhMSl9KSl9KSgiL2pzL3JvdXRlMUhhbmRsZXIuanMiKS50aGVuKCgpPT57bGV0IGU9bmV3IHJvdXRlMUV2ZW50SGFuZGxlcighMSk7ZS5vbigiY29ubmVjdGVkIiwoZixnKT0+e2NvbnNvbGUubG9nKCJDb25uZWN0ZWQiKX0pO2Uub24oInJlYWR5IiwoZixnKT0+e2NvbnNvbGUubG9nKCJSZWFkeSIpO2UucmVxdWVzdENyZWRpdENoZWNrKGMpfSk7ZS5vbigiZXJyb3IiLChmLGcpPT57Y29uc29sZS5sb2coIkVycm9yOiAlbyIsZik7ZS5jbG9zZSgpO2suc2V0Q3JlZGl0RGVjaXNpb24oZi5tZXNzYWdlKTskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5oaWRlKCk7ay5zZW5kRW1haWwoKX0pO2Uub24oImNyZWRpdENoZWNrQ29tcGxldGUiLAooZixnKT0+e2NvbnNvbGUubG9nKCJDcmVkaXQgQ2hlY2sgQ29tcGxldGU6ICVvIixmKTtlLmNsb3NlKCk7ay5zZXRDcmVkaXREZWNpc2lvbihmKTskKCIubXVsdGlzdGVwSW5zdGFudFNwaW5uZXIiKS5oaWRlKCk7ay5zZW5kRW1haWwoKX0pO2Uub24oIndhaXRpbmdPblJvdXRlMSIsKGYsZyk9Pntjb25zb2xlLmxvZygiV2FpdGluZyBvbiBSb3V0ZSAxOiAlbyIsZil9KX0pfSxzZXRDcmVkaXREZWNpc2lvbjpmdW5jdGlvbihjKXt2YXIgZCxlPSIiO2lmKGMuanNvbil7dmFyIGY9ImFwcHJvdmVkIj09Yy5qc29uLnN0YXR1cz8iQXBwcm92ZWQiOiJEZW5pZWQiO3ZhciBnPW51bGwhPShkPWMuanNvbi5pZCk\/ZDoiIjt2YXIgbDtkPW51bGwhPShsPWMuanNvbi5sZW5kZXIpP2w6IiI7Yy5qc29uLmVycm9ybXNnJiYiTm8gcGF5bWVudCI9PWMuanNvbi5lcnJvcm1zZyYmKGY9Yy5qc29uLmVycm9ybXNnLGQ9Zz0iIik7ZT1jLmpzb24uZXJyb3Jtc2d9ZWxzZSBpZihjLnN0YXRlKXtmPSJEZW5pZWQiOwp2YXIgcDtnPW51bGwhPShwPWMuc3RhdGUuaWQpP3A6IiI7ZD0iIjtjLmVycm9ybXNnJiYiTm8gcGF5bWVudCI9PWMuZXJyb3Jtc2cmJihmPWMuZXJyb3Jtc2csZD1nPSIiKTtlPWMuZXJyb3Jtc2c\/Yy5lcnJvcm1zZzpjLmVycm9yfWVsc2UgZj0iRGVuaWVkIixkPWc9IiI7IkFwcHJvdmVkIiE9Zj8obD0kKCIjRklOQU5DRV9GT1JNX1JPVVRFT05FX05PQVBQUk9WQUxfTVNHIikudmFsKCksIk5vIHBheW1lbnQiPT1mPyhmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpP2Y6IlBhcyBkZSBwYWllbWVudCIsbD1sLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIiwiIikucmVwbGFjZSgiJEVycm9yQ29kZSIsZikpOmw9Zz9sLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIixnKS5yZXBsYWNlKCIkRXJyb3JDb2RlIixlKTpsLnJlcGxhY2UoIiRSb3V0ZU9uZUlEIiwiIikucmVwbGFjZSgiJEVycm9yQ29kZSIsZSkpOihsPSQoIiNGSU5BTkNFX0ZPUk1fUk9VVEVPTkVfQVBQUk9WQUxfTVNHIikudmFsKCksCmw9bC5yZXBsYWNlKCIkTWFrZSIsYS5mb3JtZGF0YS5jdXJyZW50TWFrZSksbD1sLnJlcGxhY2UoIiRNb2RlbCIsYS5mb3JtZGF0YS5jdXJyZW50TW9kZWxUZXh0KSxsPWwucmVwbGFjZSgiJFllYXIiLGEuZm9ybWRhdGEuY3VycmVudFllYXIpLGw9bC5yZXBsYWNlKCIkVmVyc2lvbiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbSksbD1sLnJlcGxhY2UoIiRMZW5kZXIiLGQpLGw9bC5yZXBsYWNlKCIkUmVmZXJlbmNlSUQiLGcpLGY9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKToiIixwPSIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKSYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpOgokKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpLGY9ZiE9cCYmIiIhPWY\/ZjpwLGw9bC5yZXBsYWNlKCIkRGVhbGVyTmFtZSIsZiksbD0iIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI\/bC5yZXBsYWNlKCIkU3RvY2siLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyKTpsLnJlcGxhY2UoIihTdG9jayAkU3RvY2spIiwiIiksZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iQXBwcm92ZWQiOiJBcHByb3V2w6kiKTtkJiYoZis9IiAiK2QpO2cmJihmKz0iICgiK2crIikiKTtlJiYoZis9IlxuIitlKTtnPVtdO2Mucm91dGUxaWQmJmcucHVzaChjLnJvdXRlMWlkKTtjLnN0YXRlJiZjLnN0YXRlLmlkJiZnLnB1c2goYy5zdGF0ZS5pZCk7aWYoYy5oaXN0b3J5KWZvcihlPTA7ZTxjLmhpc3RvcnkubGVuZ3RoO2UrKyljLmhpc3RvcnlbZV0uaWQmJmcucHVzaChjLmhpc3RvcnlbZV0uaWQpO2VtYWlsSGFuZGxlci5vbkFmdGVyTGVhZENyZWF0ZWQ9CnthY3Rpb246IlJPVVRFT05FIixjb252ZXJzYXRpb25JZHM6Z307YS5jcmVkaXREZWNpc2lvbkhUTUw9ZjskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UaXRsZSIpLmhpZGUoKTskKGIpLmZpbmQoIi5jb25maXJtYXRpb25UZXh0IikuaGlkZSgpOyQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikudGV4dChsKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLnNob3coKX0sc2V0Q3VycmVudE1ha2VNb2RlbFllYXI6ZnVuY3Rpb24oKXtpZigiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpKXthLnN0ZXA9MDthLm5leHRTdGVwPUw7YS5mb3JtZGF0YS5ub1BheW1lbnQ9ITE7YS5jYWxjdWxhdG9yRnVuY3Rpb25zPW51bGw7YS5mb3JtZGF0YS5wYXltZW50VHlwZT0iIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlUmVhbD0iIjthLmZvcm1kYXRhLnBheW1lbnRUZXJtPSIiO2EuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlPSIiO2EuZm9ybWRhdGEucGF5bWVudFJlc2lkdWFsVmFsdWU9CiIiO2EuZm9ybWRhdGEucGF5bWVudFZhbHVlPSIiO2EuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT0iIjthLmZvcm1kYXRhLnZlaGljbGVGaW5hbFByaWNlPSIiO2EuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PVtdO2EuZm9ybWRhdGEucGF5bWVudEluY2VudGl2ZXNMaXN0PVtdO2EuZm9ybWRhdGEuYmFzZXBheW1lbnQ9IiI7YS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9MDthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT0wO2EuZm9ybWRhdGEucGF5bWVudEdTVD0wO2EuZm9ybWRhdGEucGF5bWVudEhTVD0wO2EuZm9ybWRhdGEucGF5bWVudFBTVD0wO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PTA7YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9IiI7YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U9MDthLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD0iIjthLmZvcm1kYXRhLnBheW1lbnRSYXRlPSIiO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciIpOwpjLnJlcGxhY2VXaXRoKGMuY2xvbmVOb2RlKCEwKSl9YS5mb3JtZGF0YS5jdXJyZW50TWFrZT0kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLmxlbmd0aD8kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1ha2U7YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw9JCgiI3BvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIikubGVuZ3RoPyQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsO2EuZm9ybWRhdGEuY3VycmVudFllYXI9JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS5sZW5ndGgmJjAhPSQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCk\/JCgiI3BvcHVweWVhck11bHRpc3RlcEZvcm0iKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRZZWFyO2EuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPSQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLmxlbmd0aD8kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoKToKYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI7dmFyIGQ9JCgiI3RvcGNhcmlkTXVsdGlzdGVwRm9ybSIpLnZhbCgpOzA9PXBhcnNlSW50KGQpJiYoZD0iIik7aWYoIiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXJ8fCIiIT1kKWlmKGQpJC5nZXRKU09OKCIvanMvanNvbi8iK2QrIi5qc29uIixmdW5jdGlvbihmKXthLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9InVzZWQiO2EuY3VycmVudERlcHQ9IlVTRUQiO2lmKGYuaXNuZXd8fGYuZGVtbyYmIjEiPT0kKCdpbnB1dFtuYW1lPSJGSU5BTkNFX0RFTU9BU05FVyJdJyxiKS52YWwoKSlhLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9Im5ldyIsYS5jdXJyZW50RGVwdD0iTkVXSU5WIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPWYuc3R5bGVJZDswPGYubWFrZWNlcnQmJihhLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ9ImNwbyIpOwp2YXIgZz0oZi50cmFuc21pc3Npb25FTisiIikubWF0Y2goLyhhdXRvbWF0aWN8bWFudWFsKS9pKTtnPWc\/Z1swXToiIjthLmZvcm1kYXRhLnZlaGljbGVDb2xvcj1mLmNvbG9yRU47YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9Zi5vcmlnaW5hbFByaWNlO2EuZm9ybWRhdGEudmVoaWNsZVRhbnNtaXNzaW9uPWc7YS5mb3JtZGF0YS52ZWhpY2xlVHJpbT1mLnZlcnNpb247YS5mb3JtZGF0YS5jdXJyZW50VHJpbT1mLnZlcnNpb247YS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9ZDthLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPWYubWlsZXM7c3dpdGNoKGYuYm9keVR5cGVJRCl7Y2FzZSAiU1VWIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9TVVYiO2JyZWFrO2Nhc2UgIlRSVUNLIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9UUlVDSyI7YnJlYWs7Y2FzZSAiTUlOSVZBTiI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfTUlOSVZBTiI7YnJlYWs7ZGVmYXVsdDphLmZvcm1kYXRhLnZlaGljbGVUeXBlPQoiQk9EWVRZUEVfQ0FSIn0wPT1hLnN0ZXAmJmEubmV4dCghMCk7ay5wb3B1cExhdW5jaGVkVHJhY2soKX0pO2Vsc2V7YS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJuZXciO2M9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii1lbiI6Ii1mciI7dXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRNb2RlbC5yZXBsYWNlKCItIiwiXyIpLnJlcGxhY2UoIiAiLCJfIikrIi0iK2EuZm9ybWRhdGEuY3VycmVudFllYXIrYysiLmpzb24iO2lmKCJCTVciPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlfHwiTWVyY2VkZXMtQmVueiI9PWEuZm9ybWRhdGEuY3VycmVudE1ha2Upe3ZhciBlPSQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLmxlbmd0aCYmJCgiI3RleHRNb2RlbE92ZXJyaWRlIikudmFsKCkubGVuZ3RoPyQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLnZhbCgpOgphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDt1cmw9Ii9qc29uLyIrYS5mb3JtZGF0YS5jdXJyZW50TWFrZS5yZXBsYWNlKCItIiwiXyIpLnJlcGxhY2UoIiAiLCJfIikrIi0iK2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2MrIi5qc29uIn0wPD1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbC5pbmRleE9mKCJoeWJyaWQiKSYmKGU9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLnZhbCgpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iTU9ERUxGT1JFTUFJTCJdJykudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwsdXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKSsiLSIrZS5yZXBsYWNlKCItIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2MrIi5qc29uIik7CiQoIi5wYXltZW50Q2FsY3VsYXRvclZEUCIpLmxlbmd0aD9hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIi5wYXltZW50Q2FsY3VsYXRvclZEUCIpLmF0dHIoImRhdGEtc3R5bGVpZCIpOiQoIi5wYXltZW50Q2FsY0J0biIpLmxlbmd0aD9hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIi5wYXltZW50Q2FsY0J0biIpLmF0dHIoImRhdGEtc3R5bGVpZCIpOiQoIiNhY3RpdmVTdHlsZUlEIikubGVuZ3RoJiYoYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIjYWN0aXZlU3R5bGVJRCIpLnZhbCgpKTskLmdldEpTT04odXJsKS5kb25lKGZ1bmN0aW9uKGYpe2lmKGYpe3N3aXRjaChmLnNlY3Rpb24pe2Nhc2UgInN1diI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfU1VWIjticmVhaztjYXNlICJ0cnVja3MiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX1RSVUNLIjticmVhaztjYXNlICJtaW5pdmFucyI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfTUlOSVZBTiI7CmJyZWFrO2RlZmF1bHQ6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfQ0FSIn0iIiE9YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmZi5zdHlsZXMuZm9yRWFjaChmdW5jdGlvbihnKXtnLmlkPT1hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkJiYoYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIiE9Zy50cmltP2cudHJpbTpnLkNGU3R5bGVOYW1lLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPWcubXNycEFsbEluKX0pfX0pLmFsd2F5cyhmdW5jdGlvbigpezA9PWEuc3RlcCYmKGEubmV4dCghMCksay5wb3B1cExhdW5jaGVkVHJhY2soKSl9KX1lbHNlIiIhPWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiYyMSE9YS5zdGVwJiYiMSIhPSQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNPUEVORURGUk9NSU1BR0VQT1BVUCIsYikudmFsKCkmJmEucHVzaFBhcnRpYWwmJmsucHVzaERhdGFUb1NlcnZlcigpLC0xPT1hLm9wdGlvbmFsU3RlcC5pbmRleE9mKGEuc3RlcCkmJmEubmV4dCghMCksCmsucG9wdXBMYXVuY2hlZFRyYWNrKCl9LGdldENsaWVudFN0b3JhZ2VEYXRhOmZ1bmN0aW9uKGMpe2xldCBkPSIiOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJihkPWNsaWVudFN0b3JhZ2UuZ2V0KGMpKTtyZXR1cm4gZH0sc2V0Q2xpZW50U3RvcmFnZURhdGE6ZnVuY3Rpb24oYyxkKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiZjbGllbnRTdG9yYWdlLnNldChjLGQpfSxzZXRDbGllbnRTdG9yYWdlRGF0YVZhbHVlczpmdW5jdGlvbigpeyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJigiIiE9PWEuZm9ybWRhdGEuZmlyc3ROYW1lJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJmaXJzdG5hbWUiLGEuZm9ybWRhdGEuZmlyc3ROYW1lKSwiIiE9PWEuZm9ybWRhdGEubGFzdE5hbWUmJmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoImxhc3RuYW1lIixhLmZvcm1kYXRhLmxhc3ROYW1lKSwiIiE9PWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiYKay5zZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiLGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzKSwiIiE9PWEuZm9ybWRhdGEucGhvbmVOdW1iZXImJmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIixhLmZvcm1kYXRhLnBob25lTnVtYmVyKSl9LHNldERlcGFydG1lbnQ6ZnVuY3Rpb24oKXt2YXIgYz1lbWFpbEhhbmRsZXIuZ2V0RGVwKCk7aWYoIk5FVyIhPWN8fCJORVdJTlYiIT1jfHwiVVNFRCIhPWMpYz0iTkVXIjthLmN1cnJlbnREZXB0PWM7Ik5FVyIhPWN8fCJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKSYmInVzZWRjYXJzLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCl8fChhLmN1cnJlbnREZXB0PSJORVdJTlYiKX0sc2V0VHJhZGVJbjpmdW5jdGlvbigpe2EuZm9ybWRhdGEudHJhZGVJbk1ha2U9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJbk1ha2UiXScpLnZhbCgpO2EuZm9ybWRhdGEudHJhZGVJbk1vZGVsPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5Nb2RlbCJdJykudmFsKCk7CmEuZm9ybWRhdGEudHJhZGVJblllYXI9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblllYXIiXScpLnZhbCgpO2EuZm9ybWRhdGEudHJhZGVJblRyaW09JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblRyaW0iXScpLnZhbCgpO2xldCBjPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5WYWx1ZSJdJykudmFsKCksZD0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluVmFsdWUiXScpLmF0dHIoImRhdGEtY3VycmVudCIpO2QmJiIiPT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT9hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1kOiIiPT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSYmKGEuZm9ybWRhdGEudHJhZGVJblZhbHVlPWMpOyIiIT1hLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSYmKCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIsYikudmFsKGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLApiKS5hdHRyKCJtYXgiLGMpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIsYikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5Jbml0aWFsIixiKS5oaWRlKCkpfSxnZXRDdXJyZW50QnVkZ2V0OmZ1bmN0aW9uKGMpe3JldHVybiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9NVUxUSVNURVBfSElHSF9CVURHRVRfQ0hFQ0siXScpLnZhbCgpPzUwMD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl81MDAiOjY3Njw9YyYmODUwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNjc2X0FORF84NTAiOjg1MTw9YyYmMTEwMD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzg1MV9BTkRfMTEwMCI6MTM1MDxjPyJGSU5BTkNFX0ZPUk1fQlVER0VUX09WRVJfMTM1MSI6NTAxPD1jJiY2NzU+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl81MDFfQU5EXzY3NSI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xMTAxX0FORF8xMzUwIjoKIjEiPT0kKCdpbnB1dFtuYW1lPSJGSU5BTkNFX01VTFRJU1RFUF9WRVJZSElHSF9CVURHRVRfQ0hFQ0siXScpLnZhbCgpPzkwMD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl85MDAiOjExNTE8PWMmJjE0MDA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xMTUxX0FORF8xNDAwIjoxNDAxPD1jJiYxNjUwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTQwMV9BTkRfMTY1MCI6MTkwMDxjPyJGSU5BTkNFX0ZPUk1fQlVER0VUX09WRVJfMTkwMSI6OTAxPD1jJiYxMTUwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fOTAxX0FORF8xMTUwIjoiRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzE2NTFfQU5EXzE5MDAiOjM1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9VTkRFUl8zNTAiOjYwMTw9YyYmNzUwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNjAxX0FORF83NTAiOjc1MTw9YyYmOTAwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNzUxX0FORF85MDAiOgo5MDA8Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzkwMSI6MzUxPD1jJiY0NzU+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8zNTFfQU5EXzQ3NSI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl80NzZfQU5EXzYwMCJ9LHNldERlYWxlclNlbGVjdEVtYWlsOmZ1bmN0aW9uKCl7c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZGVhbGVyU2VsZWN0VmFsdWVzIikmJihlbWFpbEhhbmRsZXIuc2V0RGVhbGVyU2VsZWN0RW1haWxzKCksYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPS0xKX0saGFzRGVhbGVyU2VsZWN0VmFsdWVzOmZ1bmN0aW9uKCl7cmV0dXJuIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIpfSxzZXRFbWFpbEhhbmRsZXJTZW5kOmZ1bmN0aW9uKCl7aWYoMD09YS5mb3JtZGF0YS5tdWx0aUZyb21NaW5pfHwiZmFsc2UiPT1hLmZvcm1kYXRhLm11bHRpRnJvbU1pbmkpZW1haWxIYW5kbGVyLnNlbmRUbz0kKCIjRklOQU5DRV9GT1JNX1NFTkRUT19FTUFJTCIsCmIpLnZhbCgpLGVtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9JCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9BREZfRU1BSUwiLGIpLnZhbCgpLGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lPSIiIT0kKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiLGIpLnZhbCgpPyQoIiNGSU5BTkNFX0ZPUk1fREVBTEVSTkFNRSIsYikudmFsKCk6ZW1haWxIYW5kbGVyLmRlYWxlck5hbWU7ZW1haWxIYW5kbGVyLnZlaGljbGVUeXBlPWEuZm9ybWRhdGEudmVoaWNsZVR5cGU7ZW1haWxIYW5kbGVyLmNhcmlkPWEuZm9ybWRhdGEuY3VycmVudENhcklkO2lmKGsuaGFzRGVhbGVyU2VsZWN0VmFsdWVzKCkpay5zZXREZWFsZXJTZWxlY3RFbWFpbCgpO2Vsc2UgaWYoLTE9PT1bLTEsIi0xIiwiIl0uaW5kZXhPZihhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG8pKXt2YXIgYz0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0Iik7Yz1jLmxlbmd0aD9jOiQoJyNtaW5pZm9ybSBbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJyk7CmMubGVuZ3RoJiYoYz1jLmZpbmQoIjpzZWxlY3RlZCIpLGVtYWlsSGFuZGxlci5zZW5kVG89Yy5kYXRhKCJlbWFpbGZpbmFuY2UiKXx8Yy5kYXRhKCJlbWFpbCIpLGVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUbz1jLmRhdGEoImVtYWlsZmluYW5jZSIpfHxjLmRhdGEoImVtYWlsIiksZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1jLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfHxjLmRhdGEoImVtYWlsYWRmIiksZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0PWMuZGF0YSgiZW1haWxhZGZmaW5hbmNlIil8fGMuZGF0YSgiZW1haWxhZGYiKSxlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT1jLnRleHQoKSxlbWFpbEhhbmRsZXIuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITAsYz17c2VuZFRvOmVtYWlsSGFuZGxlci5zZW5kVG8sc2VsZWN0ZWRTZW5kVG86ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvLHNlbmRUb0FERkZvcm1hdDplbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0LApzZWxlY3RlZFNlbmRUb0FERkZvcm1hdDplbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQsZGVhbGVyTmFtZTpjLnRleHQoKS50cmltKCksZGVhbGVyaWQ6Yy5kYXRhKCJkZWFsZXJpZCIpLG9wdGlvbmlkOmMudmFsKCl9LHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIsSlNPTi5zdHJpbmdpZnkoYykpKX19LGluaXRTZWxlY3RNdWx0aURlYWxlcjpmdW5jdGlvbigpe2lmKGsuaGFzRGVhbGVyU2VsZWN0VmFsdWVzKCkpay5zZXREZWFsZXJTZWxlY3RFbWFpbCgpLGEubmV4dCghMCk7ZWxzZXt2YXIgYz0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIik7aWYoMD09PWMubGVuZ3RoKWEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0tMSxhLm5leHQoITApO2Vsc2V7dmFyIGQ9JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIpLmxlbmd0aD8kKCIjUE9TVF9MRUFEX1NFTkRfVE9fREVBTEVSX1RZUEVfU0VMRUNUIikudmFsKCk6CiJsb2NhdGlvbiI7KDA8JCgiI3RhcmdldFBhZ2UiKS5sZW5ndGgmJiJDQVJERVRBSUxTIj09PSQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCIiIT0kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoKSYmIjEiPT0kKCIjRklOQU5DRV9GT1JNX0FETUlOX1NIT1dQSFlTSUNBTEFERFJFU1NfQ0hFQ0siKS52YWwoKSkmJiJsb2NhdGlvbiI9PWQ\/KGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0tMSxhLm5leHQoITApKToiIj09PSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS50ZXh0KCkudHJpbSgpJiYoJCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmFwcGVuZChjLmh0bWwoKSksIiIhPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtdWx0aURlYWxlclNlbGVjdCYmKGM9JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCIpLG11bHRpRGVhbGVyU2VsZWN0LmZpbHRlcihjKS5ieU1ha2UoYS5mb3JtZGF0YS5jdXJyZW50TWFrZSkpLAokKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0Iikub24oImNoYW5nZSIsZnVuY3Rpb24oKXskKHRoaXMpLmNzcygiYm9yZGVyLWNvbG9yIiwiIik7YS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvPSQodGhpcykudmFsKCk7ay5jaGVja1ZhbGlkaXR5KCl9KSl9fX0sbXVsdGlEZWFsZXJGb3JtU3RhdHVzOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIikubGVuZ3RoPyEwOiIiIT09YS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvfSxlbWFpbEJvZHlGb3JNdWx0aURlYWxlcjpmdW5jdGlvbihjKXtpZigwPT09JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpLmxlbmd0aClyZXR1cm4gYzt2YXIgZD0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikuZmluZCgic2VsZWN0IDpzZWxlY3RlZCIpLGU9JCgiI3Bvc3RMZWFkTGFiZWwiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBlJiZkLmxlbmd0aD8KKGU9ZS5yZXBsYWNlKCJ7JE1VTFRJREVBTEVSTkFNRX0iLGQudGV4dCgpKS5yZXBsYWNlKCJ7JFBPU1RfTEVBRF9FTUFJTFN9IiwiIiksYz1jLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGUpKTokKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aCYmIiIhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCk\/KGQ9JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iQ29uY2Vzc2lvbiBv77+9IGVzdCBzaXR177+9IGxlIHbvv71oaWN1bGU6ICI6IkRlYWxlciB3aGVyZSB0aGUgdmVoaWNsZSBpcyBsb2NhdGVkOiAiLGQrPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCksCmM9Yy5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixkKSk6Yz1jLnJlcGxhY2UoLzxiclxzP1wvPntcJERFQUxFUl9TRU5EVE99KGJyXHM\/XC8pPy8sIiIpLnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLCIiKTtyZXR1cm4gY30sY2hlY2tWYWxpZGl0eTpmdW5jdGlvbigpe2lmKGEudmFsaWRhdGlvblJ1bGVzLmhhc093blByb3BlcnR5KCJzdGVwIithLnN0ZXApKWZvcih2YXIgYz0wO2M8YS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2Euc3RlcF0ubGVuZ3RoO2MrKylpZihrW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdW2NdLmZ1bmNdKGEuZm9ybWRhdGFbYS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK2Euc3RlcF1bY10udmFsdWVdKSkkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24jZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J1dHRvbl9jb25zZW50VlciLApiKS5hZGRDbGFzcygiaXNWYWxpZCIpO2Vsc2V7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudFZXIixiKS5yZW1vdmVDbGFzcygiaXNWYWxpZCIpO2JyZWFrfWVsc2UgJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLGIpLmFkZENsYXNzKCJpc1ZhbGlkIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudFZXIixiKS5hZGRDbGFzcygiaXNWYWxpZCIpfSxwb3B1cExhdW5jaGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQb3B1cCBsYXVuY2hlZCIpOwohay51c2VySWQoKSYmYS5maXJzdFN0ZXAmJmxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIsMSk7ay5zdGVwVHJpZ2dlcighMSl9LHN0ZXAyVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJTdGVwIDIgdmlld2VkIil9LGVtYWlsU3RlcFZpZXdlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiRW1haWwgc3RlcCB2aWV3ZWQiKX0scGhvbmVTdGVwVmlld2VkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQaG9uZSBzdGVwIHZpZXdlZCIpfSxlbWFpbFByb3ZpZGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJFbWFpbCBwcm92aWRlZCIpfSxwaG9uZVByb3ZpZGVkVHJhY2s6ZnVuY3Rpb24oKXtoKCJQaG9uZSBwcm92aWRlZCIpfSxzdGVwVHJpZ2dlcjpmdW5jdGlvbihjKXtjPXtzdGVwOmEuZ2V0TGluZWFyc3RlcChjKSxtYWtlOmEuZm9ybWRhdGEuY3VycmVudE1ha2UsbW9kZWw6YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwseWVhcjphLmZvcm1kYXRhLmN1cnJlbnRZZWFyLGJvZHlUeXBlOmEuZm9ybWRhdGEudmVoaWNsZVR5cGUsCnNhbGVzRGVwdDphLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQsdmVoaWNsZUNvbG9yOmEuZm9ybWRhdGEudmVoaWNsZUNvbG9yLHZlaGljbGVQcmljZTphLmZvcm1kYXRhLnZlaGljbGVQcmljZSx2ZWhpY2xlVGFuc21pc3Npb246YS5mb3JtZGF0YS52ZWhpY2xlVGFuc21pc3Npb24sdmVoaWNsZVRyaW06YS5mb3JtZGF0YS52ZWhpY2xlVHJpbX07JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnRyaWdnZXIoImZvcm0uc3RlcCIsYyk7YS5maXJzdFN0ZXA9ITF9fTt3aW5kb3cuYXBwVGVzdD1hO3ZhciBXOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzZWxlY3QsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHRleHRhcmVhIikub24oImNoYW5nZSBpbnB1dCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoVyk7Vz1zZXRUaW1lb3V0KGsuY2hlY2tWYWxpZGl0eSw1MDApfSk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl0nKS5vbigiZm9jdXMiLApmdW5jdGlvbigpeyQodGhpcykudHJpZ2dlcigic2VsZWN0Iil9KTtyZXR1cm57c3RhcnQ6UCxoYXNVc2VyOmsuaGFzVXNlcn19CiQoZnVuY3Rpb24oKXskKGRvY3VtZW50KS5vbigicmV2ZWFsOm9wZW4iLCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIixmdW5jdGlvbigpeyQoZG9jdW1lbnQpLnRyaWdnZXIoImNyZWRpdC5tdWx0aXN0ZXBwb3B1cC5zdGFydCIpfSk7JChkb2N1bWVudCkub24oInJldmVhbDpvcGVuIiwiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiLGZ1bmN0aW9uKCl7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcHBvcHVwLnN0YXJ0Iil9KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyICNkclZpZXdEaXNjbGFpbWVyTGluayIsZnVuY3Rpb24oKXsiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc1Z3RFIiKS52YWwoKSYmdm9pZCAwIT1kckRpc2NsYWltZXJKUyYmZHJEaXNjbGFpbWVySlMuY2xvc2VBbGxPcGVuRGlzY2xhaW1lckRpdnMoKTskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5zaG93KCk7CiQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLmFkZENsYXNzKCJvcGVuIil9KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciIsZnVuY3Rpb24oKXskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5yZW1vdmVDbGFzcygib3BlbiIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLmhpZGUoKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyICNkclZpZXdEaXNjbGFpbWVyTGluayIsZnVuY3Rpb24oKXsiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc1Z3RFIiKS52YWwoKSYmdm9pZCAwIT1kckRpc2NsYWltZXJKUyYmZHJEaXNjbGFpbWVySlMuY2xvc2VBbGxPcGVuRGlzY2xhaW1lckRpdnMoKTsKJCgiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLnNob3coKTskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuYWRkQ2xhc3MoIm9wZW4iKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciIsZnVuY3Rpb24oKXskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKTskKCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuaGlkZSgpfSl9KTsKLyoqIC9tL2pzL2NhbGN1bGF0b3JGdW5jdGlvbnMuanMgKiovCnZhciBfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTY6MzA6MTgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDE1OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDE0OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDEzOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDEyOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDExOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDEwOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA5OjMwOjE5IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwODozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwNzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwNjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwNTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwNDozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwMjozMDoxNSI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMDE6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMDA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMjM6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMjI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMjE6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMjA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTk6MzA6MTQiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDE4OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDE3OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDE2OjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDE1OjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDE0OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDEzOjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDEyOjMwOjE5IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAxMTozMDoyMSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAxMDozMDoxOSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwOTozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwODozMDoxOSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwNzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwNjozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwNTozMDoxNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMDQ6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMDM6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMDI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMDE6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMDA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMjM6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMjI6MzA6MTQiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDIxOjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDIwOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE5OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE4OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE3OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE2OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE1OjMwOjIxIjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAxNDozMDoxOSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAxMzozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAxMjozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAxMTozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAxMDozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwOTozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwODozMDoxOCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDc6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDY6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDU6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDQ6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDM6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDE6MzA6MTQiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDAwOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDIzOjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDIyOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDIxOjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDIwOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE5OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE4OjMwOjE1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxNzozMDoyMSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxNjozMDoyMSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxNTozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxNDozMDoxOSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxMzozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxMjozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxMTozMDoxOCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDcgMTA6MzA6MTYiOyJ1c2Ugc3RyaWN0IjsKY2xhc3MgY2FsY3VsYXRvckZ1bmN0aW9uc3tjb25zdHJ1Y3RvcihhKXt0aGlzLnBhcmVudD1hO3RoaXMucGFyZW50TmFtZT10aGlzLnBhcmVudC5yZXBsYWNlKCIjIiwiIik7dGhpcy5zZXRUcmlnZ2VycygpfWluaXQoYSxiLGUsZixoLGcsayxwLG4pe3ZhciBxPXRoaXMucGFyZW50O3RoaXMuc3R5bGVpZD1hO3RoaXMucGF5bWVudFR5cGU9Yjt0aGlzLnRyYWRlSW5WYWx1ZT0kKHErIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoKT9wYXJzZUludCgkKHErIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoKSk6MDt0aGlzLmRvd25wYXltZW50PTA+ZS10aGlzLnRyYWRlSW5WYWx1ZT8wOmUtdGhpcy50cmFkZUluVmFsdWU7dGhpcy5vcHRpb25zQW1vdW50PWY7dGhpcy5wYXltZW50RnJlcXVlbmN5PWg7dGhpcy5rbUFsbG93YW5jZT1nO3RoaXMuaXNJbnZlbnRvcnk9az9rOiExO3RoaXMuc249cD9wOiIiO3RoaXMudmluPW4\/bjoiIjt0aGlzLmxvYWRQYXltZW50cyghMCl9c2V0SW5pdGlhbFZpZXcoYSl7dmFyIGI9CnRoaXMucGFyZW50LGU9dGhpczskKGIrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSBvcHRpb24iKS5yZW1vdmUoKTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCh0aGlzLmRvd25wYXltZW50KTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbChhLmN1cnJlbnRQYXltZW50WzBdLmludGVydmFsKTtsZXQgZj0ibGVhc2UiPT1hLmN1cnJlbnRQYXltZW50WzBdLnR5cGU\/ImxlYXNpbmciOiJmaW5hbmNpbmciOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSciK2YrIiddIikuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7MD09YS5maW5hbmNlLmxlbmd0aD8kKGIrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5oaWRlKCk6JChiKwoiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLnNob3coKTtpZigwPT1hLmxlYXNlLmxlbmd0aCkkKGIrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuaGlkZSgpO2Vsc2V7JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLnNob3coKTtsZXQgZz1bXTthLmxlYXNlLmZvckVhY2goZnVuY3Rpb24oayl7LTE9PSQuaW5BcnJheShrLmttX2FsbG93YW5jZSxnKSYmZy5wdXNoKGsua21fYWxsb3dhbmNlKX0pO2cuZm9yRWFjaChmdW5jdGlvbihrKXtsZXQgcD1lLnBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGsudG9GaXhlZCgwKSk7JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5hcHBlbmQobmV3IE9wdGlvbihwKyIga20iLGspKX0pO3ZhciBoPTJFNDthLmN1cnJlbnRQYXltZW50WzBdJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZSYmKGg9CjA8YS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U\/YS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U6MkU0KTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChoKX10aGlzLmttQWxsb3dhbmNlPSQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKCk7ImxlYXNpbmciPT1mPyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOiQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuaGlkZSgpOyQoImJvZHkiKS5vbigiY2xpY2sgdGFwIixiKyIgLmZpbmFuY2luZy1vcHRpb24ucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAqIixmdW5jdGlvbigpeyQodGhpcykuZmluZCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nKS5wcm9wKCJjaGVja2VkIiwiY2hlY2tlZCIpLnRyaWdnZXIoImNoYW5nZSIpfSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLApiKycgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS52YWwoKSxrPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoYisiIC5maW5hbmNpbmctb3B0aW9uIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrZysnIl1bZGF0YS1yYXRldHlwZT0iJytrKyciXScpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrZysnIl1bZGF0YS1yYXRldHlwZT0iJytrKyciXScpLnByb3AoImNoZWNrZWQiLCEwKTskKHRoaXMpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIil9KTskKCJib2R5Iikub24oImNoYW5nZSIsYisnIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdJywKZnVuY3Rpb24oKXt2YXIgZz0kKHRoaXMpLnZhbCgpLGs9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JChiKyIgLmZpbmFuY2luZy1vcHRpb24iKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2srJyJdJykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2srJyJdJykucHJvcCgiY2hlY2tlZCIsITApOyQodGhpcykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKX0pfXNldFRyaWdnZXJzKCl7dmFyIGE9dGhpcy5wYXJlbnQsYj10aGlzOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikub2ZmKCJjbGljayIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLm9mZigiY2hhbmdlIik7CiQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIikub2ZmKCJjaGFuZ2UiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLm9mZigiY2hhbmdlIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5vZmYoImJsdXIiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS5vZmYoImJsdXIiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOyQodGhpcykuYWRkQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7Yi5wYXltZW50VHlwZT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOyJsZWFzaW5nIj09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKT8kKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKToKJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7Yi5sb2FkUGF5bWVudHMoKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKT8oJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuc2hvdygpKTooJChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuc2hvdygpKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLnRyaWdnZXIoImNoYW5nZSIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXtiLnBheW1lbnRGcmVxdWVuY3k9CiQodGhpcykudmFsKCk7Yi5sb2FkUGF5bWVudHMoKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXtiLmttQWxsb3dhbmNlPSQodGhpcykudmFsKCk7Yi5sb2FkUGF5bWVudHMoKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Iikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGU9cGFyc2VJbnQoJCh0aGlzKS52YWwoKSk\/cGFyc2VJbnQoJCh0aGlzKS52YWwoKSk6MDtiLmRvd25wYXltZW50PWU7Yi5sb2FkUGF5bWVudHMoKX0pOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLm9uKCJibHVyIixmdW5jdGlvbigpe2xldCBlPXBhcnNlSW50KCQodGhpcykuYXR0cigibWF4IikpfHwwLGY9cGFyc2VJbnQoJCh0aGlzKS52YWwoKSl8fDA7Zj1mPmU\/ZTpmOyQodGhpcykudmFsKGYpO2IudHJhZGVJblZhbHVlPWY7X2xvY2FsU3RvcmFnZVNldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIiwKSlNPTi5zdHJpbmdpZnkoe3ZhbHVlOmZ9KSwxKTtiLmxvYWRQYXltZW50cygpfSl9bG9hZFBheW1lbnRzKGEpe2E9YT9hOiExO2xldCBiPSgkKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iL2VuIjoiL2ZyIikrIi9hamF4L2dldFBheW1lbnREYXRhRm9yU3R5bGVJRD93c3dpZHRoPTAiO3ZhciBlPXRoaXM7ZS50cmFkZUluVmFsdWU9cGFyc2VJbnQoJChlLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpPyQoZS5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS52YWwoKTowKTskLmFqYXgoe3VybDpiLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmUuc3R5bGVpZCxwYXltZW50VHlwZTplLnBheW1lbnRUeXBlLGRvd25wYXltZW50OmUuZG93bnBheW1lbnQrZS50cmFkZUluVmFsdWUsb3B0aW9uc0Ftb3VudDplLm9wdGlvbnNBbW91bnQscGF5bWVudEZyZXF1ZW5jeTplLnBheW1lbnRGcmVxdWVuY3ksCmttQWxsb3dhbmNlOmUua21BbGxvd2FuY2Usb3B0aW9uczplLm9wdGlvbnNBbW91bnQsaXNJbnZlbnRvcnk6ZS5pc0ludmVudG9yeSxzbjplLnNuLHZpbjplLnZpbixmb3JjZVRheGVzOiEwfSxzdWNjZXNzOmZ1bmN0aW9uKGYpe2YuY3VycmVudFBheW1lbnQmJmYuY3VycmVudFBheW1lbnQubGVuZ3RoPyhhJiZlLnNldEluaXRpYWxWaWV3KGYpLCJ1bmRlZmluZWQiIT09dHlwZW9mIGNhbGNDdXJQYXltZW50JiYoY2FsY0N1clBheW1lbnQ9ZiksZS5zaG93UGF5bWVudHMoZi5jdXJyZW50UGF5bWVudCxmLnBheW1lbnRGZWVzLGYubWFrZWlkLGYpLCQoImJvZHkgIitlLnBhcmVudCkudHJpZ2dlcigicGF5bWVudHNSZWFkeSIpKTokKCJib2R5ICIrZS5wYXJlbnQpLnRyaWdnZXIoIm5vUGF5bWVudCIpfX0pfXNob3dQYXltZW50cyhhLGIsZSxmKXt2YXIgaD10aGlzOyQoaC5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaHRtbCgiIik7JChoLnBhcmVudCsKIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaHRtbCgiIik7bGV0IGc9IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JSb3VuZFBheW1lbnQiKS52YWwoKT8wOjI7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJiQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKTtsZXQgaz1bXSxwPSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCl8fDA7NTxhLmxlbmd0aD9hLmZvckVhY2goZnVuY3Rpb24obCl7KDA9PWwudGVybSUxMnx8NjQ9PWwudGVybXx8NDA9PWUmJjUxPT1sLnRlcm18fDIwPT1lJiZbMjcsMzAsMzksNDJdLmluY2x1ZGVzKGwudGVybSl8fFsxNiwyMV0uaW5jbHVkZXMoZSl8fDQyPT1sLnRlcm0mJjEwMTQ9PXB8fFszMCw0Ml0uaW5jbHVkZXMobC50ZXJtKSYmWzQ3MTU2Miw0NzE1NjMsNDcxNTY0XS5pbmNsdWRlcyhwYXJzZUludChzZXR0aW5ncy5zdHlsZWlkKSl8fApbMTYsMV0uaW5jbHVkZXMoZSkmJlsyOCw0MF0uaW5jbHVkZXMobC50ZXJtKXx8Mjc9PWwudGVybSYmMjc9PWV8fDUyPT1sLnRlcm0mJjM5PT1lKSYmay5wdXNoKGwpfSk6az1hOyJkZXNjIj09JCgiI1BBWU1FTlRfVEVSTV9PUkRFUiIpLnZhbCgpJiYoaz1rLnJldmVyc2UoKSk7dmFyIG49e30scT0hMTtrLmZvckVhY2goZnVuY3Rpb24obCxtKXtPYmplY3QuaGFzT3duKG4sbC50ZXJtKT9xPSEwOm5bbC50ZXJtXT17fTtuW2wudGVybV1bbC5yYXRlX3R5cGVdPW19KTt2YXIgST1bXTthWzBdJiYibGVhc2UiPT1hWzBdLnR5cGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGFbMF0ua21fYWxsb3dhbmNlJiYoYT0wPGFbMF0ua21fYWxsb3dhbmNlP2FbMF0ua21fYWxsb3dhbmNlOjJFNCwkKGgucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoYSksdGhpcy5rbUFsbG93YW5jZT0kKGgucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKSk7CmxldCBKPWYudG90YWxJbmNlbnRpdmUsSz1xPyQoIiNMT1dFU1RQQVlNRU5UX0xBQkVMIikudmFsKCk6IiIsTD1xPyQoIiNMT1dFU1RSQVRFX0xBQkVMIikudmFsKCk6IiIsWD0wLHo9IiIsQT0iIjsxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJihhPWgucGFyZW50TmFtZS5zcGxpdCgiIyIpLGY9aC5wYXJlbnROYW1lLHZvaWQgMCE9YVswXSYmKGY9JC50cmltKGFbMF0pKSxhPWAke2Z9LWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0zLWRpdmAsZj1gJHtmfS1kaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtMi1kaXZgLCIxNzcxIj09PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXRlSUQiKS52YWx1ZXx8IjIyMDkiPT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpLnZhbHVlKSYmKHo9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyAiIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iJysKYSsnIiBkYXRhLWRpc2NsYWltZXItaWQ9IjMiPjxzdXA+Mzwvc3VwPjwvYT4nLEE9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyAiIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iJytmKyciIGRhdGEtZGlzY2xhaW1lci1pZD0iMiI+PHN1cD4yPC9zdXA+PC9hPicpOyQuZWFjaChrLGZ1bmN0aW9uKGwsbSl7aWYoIUkuaW5jbHVkZXMobS50ZXJtKSl7SS5wdXNoKG0udGVybSk7dmFyIGQ9InN0YW5kYXJkIj09bS5yYXRlX3R5cGV8fDI+T2JqZWN0LmtleXMoblttLnRlcm1dKS5sZW5ndGg\/bTprW25bbS50ZXJtXS5zdGFuZGFyZF0sYz0yPT1PYmplY3Qua2V5cyhuW20udGVybV0pLmxlbmd0aD9rW25bbS50ZXJtXS5zdWJ2ZW50ZWRdOiExLHg9Mj09T2JqZWN0LmtleXMoblttLnRlcm1dKS5sZW5ndGg\/blttLnRlcm1dLnN1YnZlbnRlZDohMSx2PW0udGVybSx5PW0uZG93bnBheW1lbnQudG9GaXhlZCgwKSwKQj1kLnBheW1lbnQudG9GaXhlZChnKSxZPWQucGF5bWVudC50b0ZpeGVkKGcpO0I9Qi5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihDLHcpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+Jyt3KyI8L3N1cD4ifSk7bT1kLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChnKTt2YXIgWj1kLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChnKTttPW0ucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oQyx3KXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrdysiPC9zdXA+In0pO3ZhciBNPWQucmF0ZSxhYT0icGF5bWVudCIrbDtsPSJwYXltZW50IitsKyJ3aXRoVGF4ZXMiO3Y9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IjxzcGFuPiIrdisiPC9zcGFuPiBtb250aCI6IjxzcGFuPiIrdisiPC9zcGFuPiBtb2lzIjt5PWA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke3l9PC9zcGFuPmArKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIgZG93biBwYXltZW50IjoiIGNvbXB0YW50Iik7CnZhciBEPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyI8ZGl2PiIrJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKSsiPC9kaXY+IjoiK3R4IjskKCIjZGVhbGVyUHJvdmluY2VDb2RlIikubGVuZ3RoJiYiQUIiPT0kKCIjZGVhbGVyUHJvdmluY2VDb2RlIikudmFsKCkmJihEPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyI8ZGl2PiIrJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKSsiPC9kaXY+IjoiK0dTVCIpO3ZhciBFPWQuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/ZC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLE49aC5mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dENhbGMoRSxkLnJhdGUsIiIsJ2NsYXNzPSItZnMxMCInKSxPPWQudG90YWxPYmxpZ2F0aW9uQW1vdW50P2QudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsUD0nZGF0YS10b29sdGlwPSInK2QudG9vbHRpcCsnIicsUT0nZGF0YS10b29sdGlwPSInK2QudG9vbHRpcFdpdGhUYXhlcysKJyInLHIsYmE9bnVsbCE9KHI9ZC5tMmRfZmluYW5jZSk\/cjpKO3I9InNpbmdsZS1jb2x1bW4iO3ZhciBGPSJzbWFsbC1ib3giLHQ9IiIsdT0iIjtpZihjKXtyPSJsZWZ0LXNlY3Rpb24iO0Y9IiI7dD1jLnBheW1lbnQudG9GaXhlZChnKTtsZXQgQz1jLnBheW1lbnQudG9GaXhlZChnKTt0PXQucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oY2EsRyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK0crIjwvc3VwPiJ9KTt1PWMucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO2xldCB3PWMucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO3U9dS5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihjYSxHKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRysiPC9zdXA+In0pO3ZhciBSPWMucmF0ZS50b0ZpeGVkKDIpLGRhPSJwYXltZW50Iit4O3g9InBheW1lbnQiK3grIndpdGhUYXhlcyI7bGV0IEg9Yy5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9jLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOgowLFM9aC5mb3JtYXRFZmZlY3RpdmVSYXRlVGV4dENhbGMoSCxjLnJhdGUsIiIsJ2NsYXNzPSItZnMxMCInKSxUPWMudG90YWxPYmxpZ2F0aW9uQW1vdW50P2MudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsVT0nZGF0YS10b29sdGlwPSInK2MudG9vbHRpcCsnIicsVj0nZGF0YS10b29sdGlwPSInK2MudG9vbHRpcFdpdGhUYXhlcysnIicsVz1jLm0yZF9maW5hbmNlO3Q9J1x0PGRpdiBpZD0iJytkYSsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1UrJz5cdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXJhdGUiPicrUisnJSA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrVSsiPjwvaT4iK1MrJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJhY3R1YWwtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+Jyt0KyI8L3NwYW4+Iit6Kyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iZGV0YWlsc1RheCI+JysKRCsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50Ilx0XHRcdFx0XHR2YWx1ZT0iJytjLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytjLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytjLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrQysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2MucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2MudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrYy5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJysKSCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytUKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytjLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFZhbHVlKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK1crJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2MuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrYy5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5mZWVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoYy5pbmNlbnRpdmVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0PGxhYmVsIGNsYXNzPSJmaW5hbmNlQ2FsYyI+JysKTCsiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4iO3U9J1x0PGRpdiBpZD0iJyt4KyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrVisnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytSKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytWKyI+PC9pPiIrUysnPC9kaXY+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK3UrIjwvc3Bhbj4iK0ErJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIgcGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0Ij5cdFx0XHQ8aW5wdXRcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrYy50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9IicrCmMucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2MucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2MucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJyt3KyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrYy50b3RhbEludGVyZXN0V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytjLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK0grJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrVCsnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrYy5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2MucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJysKVysnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrYy5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytjLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmZlZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2MuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytjLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrYy5wc3QrJyJcdFx0XHRcdD5cdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0wrIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+In1jPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJysKRisnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrdisnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJkb3duLXBheW1lbnQiPicreSsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJzZXBhcmF0b3JQYXkiPjwvZGl2Plx0PGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPlx0XHQ8ZGl2IGlkPSInK2FhKyciIGNsYXNzPSInK3IrJyBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK1ArJz5cdFx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcGF5bWVudCI+PHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JytCKyI8L3NwYW4+Iit6KycgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrUCsnPjwvaT48L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJkZXRhaWxzVGF4Ij4nK0QrJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1yYXRlIj4nK00rIiUgIitOKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIgcGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0Ij5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdFx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInKwpkLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytkLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytkLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytkLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrWSsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2QudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrZC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytFKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK08rJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2QucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytkLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrCmJhKyciICAgICAgICAgICAgICAgICBkYXRhLWluaXRpYWxQcmljZT0iJytkLmluaXRpYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1maW5hbFByaWNlPSInK2QuZmluYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGQuZmVlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGQuaW5jZW50aXZlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdFx0PGxhYmVsIGNsYXNzPSJmaW5hbmNlQ2FsYyI+JytLKyI8L2xhYmVsPlx0XHRcdDwvZGl2Plx0XHQ8L2Rpdj4iK3QrIlx0PC9kaXY+PC9kaXY+IjtkPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJysKRisnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrdisnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJkb3duLXBheW1lbnQiPicreSsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJzZXBhcmF0b3JQYXkiPjwvZGl2Plx0PGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPlx0XHQ8ZGl2IGlkPSInK2wrJyIgY2xhc3M9IicrcisnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrUSsnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK20rIjwvc3Bhbj4iK0ErJyA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCBsZWZ0VG9vbHRpcCIgJytRKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1yYXRlIj4nK00rIiUgIitOKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIgcGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0Ij5cdFx0XHRcdDxpbnB1dCBcdFx0XHRcdFx0dHlwZT0icmFkaW8iXHRcdFx0XHRcdFx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInKwpkLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytkLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytkLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytkLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrWisnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2QudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrZC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytFKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK08rJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2QucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytkLnJlc2lkdWFsVmFsdWVXaXRoVGF4ZXMrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrCkorJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2QuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrZC5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5mZWVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5pbmNlbnRpdmVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytkLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IicrZC5oc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSInK2QucHN0KyciXHRcdFx0XHQ+XHRcdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0srIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrdSsiXHQ8L2Rpdj48L2Rpdj4iOyQoaC5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuYXBwZW5kKGMpOwokKGgucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmFwcGVuZChkKTtYKyt9fSk7aC5zZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpfXNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl7dmFyIGE9dGhpcy5wYXJlbnQsYj10aGlzLnBhcmVudE5hbWU7aWYoIjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKSkkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciAucGF5bWVudFRvb2x0aXAiKS5lYWNoKGZ1bmN0aW9uKGYpe3RyeXt2YXIgaD0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpLGc9JCh0aGlzKS5oYXNDbGFzcygibGVmdFRvb2x0aXAiKT8id2VzdCI6ImVhc3QiOyQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6aCxncmF2aXR5OmcsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJjbGljayIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9Y2F0Y2goayl7fX0pOwplbHNle2Zvcih2YXIgZT0wOzU+ZTtlKyspJCgiI2Rhcmt0b29sdGlwLSIrYisicGF5bWVudCIrZSkubGVuZ3RoJiYoJCgiI2Rhcmt0b29sdGlwLSIrYisicGF5bWVudCIrZSkucmVtb3ZlKCksJCgiI2Rhcmt0b29sdGlwLSIrYisicGF5bWVudCIrZSsid2l0aFRheGVzIikucmVtb3ZlKCkpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIikuZWFjaChmdW5jdGlvbigpe3RyeXt2YXIgZj0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpOyQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6ZixncmF2aXR5OiJub3J0aCIsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJub25lIn0pfWNhdGNoKGgpe319KX19cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYSl7cmV0dXJuIGEucmVwbGFjZSgvXEIoPz0oXGR7M30pKyg\/IVxkKSkvZywiLCIpfWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0Q2FsYyhhLApiLGUsZixoKXtmPXZvaWQgMD09PWY\/IiI6ZjtoPXZvaWQgMD09PWg\/ITA6aDtiPXBhcnNlRmxvYXQoYSktcGFyc2VGbG9hdChiKTt2YXIgZz1zdG9yZS5nZXQoImZpZWxkcyIpLkFETUlOX1NIT1dfRUZGRUNUSVZFX1JBVEVfU0VMRUNUO2lmKCJmYWxzZSI9PT1zdG9yZS5nZXQoImZpZWxkcyIpLkFETUlOX1NIT1dfRUZGRUNUSVZFX1JBVEV8fCJldmVyeXdoZXJlIiE9ZyYmMD49YilyZXR1cm4iIjtiPXN0b3JlLmdldCgiaTE4biIpLkVGRkVDVElWRV9SQVRFX0xBQkVMO2c9JCgiI2lzbW9iaWxlIikudmFsKCk\/Ijxici8+IjoiICI7Yj1iLnJlcGxhY2UoInskUkFURX0iLGA8c3BhbiAke2V9PiR7YX0lPC9zcGFuPmApO3JldHVybmAke2d9JHtoP2A8ZGl2ICR7Zn0+YDoiIn0oICR7Yn0gKSR7aD8iPC9kaXY+IjoiIn1gfX07Ci8qKiAvbS9qcy9jb250YWN0UG9wdXAuanMgKiovCnZhciBfX19kMmNfY29udGFjdFBvcHVwanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxMzo0NiI7J3VzZSBzdHJpY3QnO3ZhciBjb250YWN0UG9wdXA9e3BvcHVwOiQoIiNjb250YWN0cG9wdXAiKSxvcHRpb25zOnt0eXBlOiIifSxzZXRDb25maWc6ZnVuY3Rpb24oYSl7Y29udGFjdFBvcHVwLm9wdGlvbnM9JC5leHRlbmQoe30sY29udGFjdFBvcHVwLm9wdGlvbnMsYSk7cmV0dXJuIGNvbnRhY3RQb3B1cH0saW5pdDpmdW5jdGlvbigpe2NvbnRhY3RQb3B1cC5zZXRDb25maWcoe3R5cGU6c2VsZi5zZXR0aW5ncy5mb3JtLnR5cGV9KTtjb250YWN0UG9wdXAucG9wdXAucG9wdXBpemUoe29uQmVmb3JlU2VuZE1haWw6Y29udGFjdFBvcHVwLm9uQmVmb3JlU2VuZE1haWx9KS5vcGVuKCk7cmV0dXJuIGNvbnRhY3RQb3B1cH0sb25CZWZvcmVTZW5kTWFpbDpmdW5jdGlvbihhKXtjb250YWN0UG9wdXAuc2V0RW1haWxIYW5kbGVyRnJvbUFkZHJlc3NlcygpO2VtYWlsSGFuZGxlci5jb25kaXRpb249Y29udGFjdFBvcHVwLmdldENvbmRpdGlvbigpO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PWNvbnRhY3RQb3B1cC5nZXRUeXBlKCkudG9VcHBlckNhc2UoKTsKIkJOUCI9PWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYoZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9Ik5FVyIpO2VtYWlsSGFuZGxlci5za2lwR2V0RGVwPSEwO2VtYWlsSGFuZGxlci5ib2R5PWVtYWlsSGFuZGxlci5ib2R5LnJlcGxhY2UoInskTkFNRX0iLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lKyIgIitlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lKX0sZ2V0Q29uZGl0aW9uOmZ1bmN0aW9uKCl7c3dpdGNoKGNvbnRhY3RQb3B1cC5nZXRUeXBlKCkpe2Nhc2UgImJucCI6Y2FzZSAibmV3IjpjYXNlICJtYW51ZmFjdHVyZXIiOnJldHVybiJuZXciO2RlZmF1bHQ6cmV0dXJuInVzZWQifX0sZ2V0VHlwZTpmdW5jdGlvbigpe3JldHVybiBjb250YWN0UG9wdXAub3B0aW9ucy50eXBlfSxzZXRFbWFpbEhhbmRsZXJGcm9tQWRkcmVzc2VzOmZ1bmN0aW9uKCl7dmFyIGE9Y29udGFjdFBvcHVwLmdldFR5cGUoKTt0cnl7dmFyIGI9Y29udGFjdFBvcHVwLmdldEVtYWlscyhhKTsiIj09PWIuc2VuZFRvJiYKIiI9PT1iLnNlbmRUb0FERiYmKGI9Y29udGFjdFBvcHVwLmdldEVtYWlscygidXNlZCIpKTt2YXIgYz1iLnNlbmRUbyxkPWIuc2VuZFRvQURGOyIiPT09YyYmIiI9PT1kJiZjb25zb2xlLmxvZygiV2FybmluZzogYm90aCBlbWFpbCBhbmQgQURGIGFkZHJlc3NlcyBhcmUgZW1wdHkhIik7aWYoJCgiI2N1c3RvbUZvcm1fb3JpZ2luYWxzZW5kdG8iKS5sZW5ndGgmJiJPdGhlciI9PSQoIiNjdXN0b21Gb3JtX29yaWdpbmFsc2VuZHRvIikudmFsKCkpe3ZhciBlPSQoIiNjdXN0b21Gb3JtX3NlbmR0byIpLnZhbCgpLGY9JCgiI2N1c3RvbUZvcm1fc2VuZHRvQURGIikudmFsKCk7aWYoIiIhPT1lfHwiIiE9PWYpYz1lLGQ9Zn1lbWFpbEhhbmRsZXIuc2VuZFRvPWM7ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1kfWNhdGNoKGcpe2NvbnNvbGUubG9nKGcpfXJldHVybiBjb250YWN0UG9wdXB9LGdldEVtYWlsczpmdW5jdGlvbihhKXt2YXIgYj0kKCIjaGlkZGVuQ29udGFjdHBvcHVwIik7CiJibnAiPT1hJiYoYT0ibmV3Iik7dmFyIGM9Yi5maW5kKCIjZW1haWxfIithKS52YWwoKTthPWIuZmluZCgiI2VtYWlsQURGXyIrYSkudmFsKCk7cmV0dXJue3NlbmRUbzpjLHNlbmRUb0FERjphfX19LGluaXRDb250YWN0cG9wdXA9ZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2NvbnRhY3RQb3B1cC5pbml0KCl9LGNvbnRhY3RQb3B1cFN1Ym1pdD1mdW5jdGlvbigpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLnN1Ym1pdCgpfSxjb250YWN0UG9wdXBDbG9zZT1mdW5jdGlvbigpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9OwovKiogL20vanMvdmFuaWxsYWpzL21vZGFsLmpzICoqLwp2YXIgX19fZDJjX21vZGFsanNfY19vbj0iMjAyNi0wMi0yNyAxNTozMDowMyI7J3VzZSBzdHJpY3QnO2NvbnN0IE1vZGFscz17fSxNb2RhbD1mdW5jdGlvbihoLGIpe2xldCBjPXt9O2NvbnN0IG49e3RpdGxlOmgsY29udGVudFR5cGU6Im5vZGUiLGNvbnRlbnRTcmM6IiIsYWZ0ZXJJbml0OigpPT57fX07bGV0IGs9IiI7Y29uc3QgZT1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJtb2RhbC1vdmVybGF5Ij48L2Rpdj4nKSxsPWZ1bmN0aW9uKGEpe2Eub25jbGljaz0oKT0+ZigiY2FuY2VsIil9LHA9ZnVuY3Rpb24oKXsoYy5xdWVyeVNlbGVjdG9yKCIub2theSIpfHwhMSkub25jbGljaz0oKT0+Zigib2theSIpO2NvbnN0IGE9Yy5xdWVyeVNlbGVjdG9yQWxsKCIuY2FuY2VsIil8fCExOzE8YS5sZW5ndGg\/JC5lYWNoKGEsZnVuY3Rpb24oZCxnKXtsKGcpfSk6YSYmbChhWzBdKX0sbT1mdW5jdGlvbihhKXsiRXNjYXBlIj09YS5rZXkmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsCm0se2NhcHR1cmU6ITB9KSxmKCkpfSxmPWE9PnthPWF8fCIiO3N3aXRjaChhKXtjYXNlICJjYW5jZWwiOiJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlQ2FuY2VsJiZiLm9uQmVmb3JlQ2FuY2VsLmNhbGwoKTticmVhaztjYXNlICJva2F5IjoiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZVNhdmUmJmIub25CZWZvcmVTYXZlLmNhbGwoKX0iZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZUNsb3NlJiZiLm9uQmVmb3JlQ2xvc2UuY2FsbChhKTtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93WT0iYXV0byI7Yy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1hY3RpdmUiLCExKTtlLnBhcmVudE5vZGUmJihlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksay5mb2N1cygpKX07Yj1PYmplY3QuYXNzaWduKG4sYik7KGZ1bmN0aW9uKCl7Y29uc3QgYT0rbmV3IERhdGU7dmFyIGQ9IiI7c3dpdGNoKGIuY29udGVudFR5cGUpe2Nhc2UgIm5vZGUiOmQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYi5jb250ZW50U3JjKTsKZC5oaWRkZW49ITE7YnJlYWs7Y2FzZSAiaWZyYW1lIjpkPWh0bWxUb05vZGUoYDxkaXYgY2xhc3M9ImlmcmFtZS13cmFwcGVyIj4KCQkJCQkJCQk8aWZyYW1lCgkJCQkJCQkJCXNyYz0iJHtiLmNvbnRlbnRTcmN9IgoJCQkJCQkJCQlmcmFtZWJvcmRlcj0iMCIKCQkJCQkJCQkJYWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCQl3ZWJraXRhbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJCW1vemFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQk+PC9pZnJhbWU+CgkJCQkJCQk8L2Rpdj5gKX1sZXQgZz0iIjtiLnNob3dZZXNOb0J1dHRvbnMmJihnPWA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIgLXAgLS1zNSBmbGV4LWJldHdlZW4iPgoJCQkJPGRpdj4KCQkJCQk8c3BhbiBjbGFzcz0iIC1tdDIgbWFpblRleHQgLWJvbGQiPiR7Yi5idXR0b25UZXh0fHwiIn08L3NwYW4+CgkJCQk8L2Rpdj4KCQkJCTxkaXY+CgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gY2FuY2VsIiBkYXRhLWRpc21pc3M9Im1vZGFsIj4ke2Iubm9CdXR0b258fCJObyJ9PC9idXR0b24+CgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLW1haW4yIG9rYXkiIGRhdGEtZGlzbWlzcz0ibW9kYWwiPiR7Yi55ZXNCdXR0b258fCJZZXMifTwvYnV0dG9uPgoJCQkJPC9kaXY+YCk7Yz1odG1sVG9Ob2RlKGAKCQkJPGJveC1sYyBjbGFzcz0ibW9kYWwtd3JhcHBlciAtYmctd2hpdGUgLS1zMCI+CgkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczAiPgoJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciBmbGV4LWJldHdlZW4gLXAgLS1zNSI+CgkJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLXRpdGxlIHR4dC11cHBlciAtZnMtbCAtYm9sZCI+CgkJCQkJCQkke2IudGl0bGV9CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1jb250cm9sIj4KCQkJCQkJCTxidXR0b24gdGl0bGU9ImNsb3NlIiBjbGFzcz0ieC1jbG9zZSBjYW5jZWwiPjwvYnV0dG9uPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IiBpZD0icS0ke2F9Ij4KCgkJCQkJPC9kaXY+CgkJCQkJJHtnfQoJCQkJPC9zdGFjay1sYz4KCQkJPC9ib3gtbGM+CgkJYCk7Yy5pZD1gbW9kYWwke2h9YDtjLnNldEF0dHJpYnV0ZSgicm9sZSIsImRpYWxvZyIpO2Muc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLGBxLSR7YX1gKTtjLnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1ib2R5IikuYXBwZW5kQ2hpbGQoZCk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIjtiLmFmdGVySW5pdCgpO3AoKX0pKCk7cmV0dXJue2Rpc3BsYXk6ZnVuY3Rpb24oKXtrPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbSx7Y2FwdHVyZTohMH0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsITApfSwxKX0sY2xvc2U6Zn19OwovKiogL20vanMvdmFuaWxsYWpzL2xlYWQuanMgKiovCnZhciBfX19kMmNfbGVhZGpzX2Nfb249IjIwMjYtMDQtMDIgMTM6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYixhLGMpe2lmKGI9PUFycmF5LnByb3RvdHlwZXx8Yj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYjtiW2FdPWMudmFsdWU7cmV0dXJuIGJ9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihiKXtiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYiwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGE9MDthPGIubGVuZ3RoOysrYSl7dmFyIGM9YlthXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihiLGEpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2FdO2lmKG51bGw9PWMpcmV0dXJuIGJbYV07Yz1iW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YlthXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihiLGEsYyxlKXthJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYixhLGMsZSk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYixhLGMsZSkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYixhLGMsZSl7Yz0kanNjb21wLmdsb2JhbDtiPWIuc3BsaXQoIi4iKTtmb3IoZT0wO2U8Yi5sZW5ndGgtMTtlKyspe3ZhciBoPWJbZV07aWYoIShoIGluIGMpKXJldHVybjtjPWNbaF19Yj1iW2IubGVuZ3RoLTFdO2U9Y1tiXTthPWEoZSk7YSE9ZSYmbnVsbCE9YSYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYixhLGMsZSl7dmFyIGg9Yi5zcGxpdCgiLiIpO2I9MT09PWgubGVuZ3RoO2U9aFswXTtlPSFiJiZlIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgcT0wO3E8aC5sZW5ndGgtMTtxKyspe3ZhciByPWhbcV07aWYoIShyIGluIGUpKXJldHVybjtlPWVbcl19aD1oW2gubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZVtoXTpudWxsO2E9YShjKTtudWxsIT1hJiYoYj8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSk6YSE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGgpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2gpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZSwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGI9e2E6ITB9LGE9e307dHJ5e3JldHVybiBhLl9fcHJvdG9fXz1iLGEuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGIsYSl7Yi5fX3Byb3RvX189YTtpZihiLl9fcHJvdG9fXyE9PWEpdGhyb3cgbmV3IFR5cGVFcnJvcihiKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYn06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGIpe3ZhciBhPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGE8Yi5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YlthKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYil7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChiKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihiKXt2YXIgYT0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGE\/YS5jYWxsKGIpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihiKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYil7aWYoIShiIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitiKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLnlpZWxkUmVzdWx0PWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246Yixpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYixhKXt0aGlzLm5leHRBZGRyZXNzPWE7cmV0dXJue3ZhbHVlOmJ9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihiLGEpe2I9JGpzY29tcC5tYWtlSXRlcmF0b3IoYik7dmFyIGM9Yi5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWE7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1iLHRoaXMueWllbGQoYy52YWx1ZSxhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihiKXt0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIsYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWI7dm9pZCAwIT1hJiYodGhpcy5maW5hbGx5QWRkcmVzc189YSl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGIsYSl7dGhpcy5uZXh0QWRkcmVzcz1iO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO2I9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGEsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGEpe2E9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShhfHwwKVswXTtpZihhPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8YSl7aWYoYS5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1hLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188YS5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9YS5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihiKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihiKXt0aGlzLm9iamVjdF89Yjt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYSBpbiBiKXRoaXMucHJvcGVydGllc18ucHVzaChhKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGI9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihiIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYn1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89Yn07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGE9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihhKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBhP2FbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxiLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGIsYSxjKXt0cnl7dmFyIGU9Yi5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYSk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZSk7aWYoIWUuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGU7dmFyIGg9ZS52YWx1ZX1jYXRjaChxKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKHEpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGgpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGI9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihiKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goYSl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYSl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2I9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYi5pc0V4Y2VwdGlvbil0aHJvdyBiLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6Yi5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWZ1bmN0aW9uKGEpe3JldHVybiBiLm5leHRfKGEpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGEpe3JldHVybiBiLnRocm93XyhhKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYSl7cmV0dXJuIGIucmV0dXJuXyhhKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYixhKXthPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZiLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihhLGIucHJvdG90eXBlKTtyZXR1cm4gYX07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihiKXtmdW5jdGlvbiBhKGUpe3JldHVybiBiLm5leHQoZSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gYi50aHJvdyhlKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxoKXtmdW5jdGlvbiBxKHIpe3IuZG9uZT9lKHIudmFsdWUpOlByb21pc2UucmVzb2x2ZShyLnZhbHVlKS50aGVuKGEsYykudGhlbihxLGgpfXEoYi5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYigpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKSl9Owpjb25zdCBMZWFkPWZ1bmN0aW9uKGIpe2NvbnN0IGE9T2JqZWN0LmFzc2lnbih7fSxiKSxjPWEubGVhZElkfHxhLm5hbWU7Yj1hLmxlYWROb2RlO2NvbnN0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iK2MpO2xldCBoPSExLHE9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLXN1YmplY3RdIikuaW5uZXJUZXh0LHI9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLWJvZHldIikuaW5uZXJIVE1MLHo9YS50cmlnZ2VyLGs9e307Y29uc3QgQT0oKT0+e0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO3N3aXRjaCghMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSAiZW1haWwiPT0KZi50b0xvd2VyQ2FzZSgpOmNhc2UgImRhdGEiPT1mOmJyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmNhc2UgInRlbCI9PWQudHlwZTpJTWFzayhkLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSl9fX0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO3N3aXRjaCghMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOnZhciBnO2Y9bnVsbCE9KGc9Y2xpZW50U3RvcmFnZS5nZXQoImZpcnN0bmFtZSIpKT9nOiIiO3ZhciBsO2c9bnVsbCE9KGw9Y2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIikpP2w6IiI7bD1mKygiIiE9Zz8iICIrY2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIik6CiIiKTtkLnZhbHVlPWw7YnJlYWs7Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bGV0IG07ZC52YWx1ZT1udWxsIT0obT1jbGllbnRTdG9yYWdlLmdldCgiZmlyc3RuYW1lIikpP206IiI7YnJlYWs7Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpsZXQgbjtkLnZhbHVlPW51bGwhPShuPWNsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpKT9uOiIiO2JyZWFrO2Nhc2UgImVtYWlsIj09Zi50b0xvd2VyQ2FzZSgpOmxldCBwO2QudmFsdWU9bnVsbCE9KHA9Y2xpZW50U3RvcmFnZS5nZXQoImVtYWlsIikpP3A6IiI7YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6bGV0IHU7ZC52YWx1ZT1udWxsIT0odT1jbGllbnRTdG9yYWdlLmdldCgicGhvbmUiKSk\/dToiIn19fSl9LEU9KCk9PntpZihoKXJldHVybiExO2g9ITA7QigpLnRoZW4oZD0+e2lmKCFkKXJldHVybiB2KCJwb3B1cC52YWxpZGF0aW9uRmFpbGVkIiksCmg9ITE7YS52YWxpZGF0ZWQ9ITA7QygpO0QoKX0pfSxDPSgpPT57QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7aWYoZilzd2l0Y2goa1tmXT1kLnZhbHVlLCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6ZD1kLnZhbHVlLnNwbGl0KCIgIik7ay51c2VyRmlyc3ROYW1lKz1kLnNoaWZ0KCk7ay51c2VyTGFzdE5hbWUrPWQuam9pbigiICIpO2JyZWFrO2Nhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmsudXNlckZpcnN0TmFtZSs9ZC52YWx1ZTticmVhaztjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmsudXNlckxhc3ROYW1lKz1kLnZhbHVlO2JyZWFrO2Nhc2UgImVtYWlsIj09Zi50b0xvd2VyQ2FzZSgpOmsudXNlckVtYWlsPQpkLnZhbHVlO2JyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmNhc2UgInRlbCI9PWQudHlwZTpJTWFzayhkLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSk7ay51c2VyUGhvbmU9ZC52YWx1ZTticmVhaztjYXNlICJkYXRhIj09Zjpmb3IobGV0IGcgaW4gZC5kYXRhc2V0KWtbZy5yZXBsYWNlKC8tLi9nLGw9PmxbMV0udG9VcHBlckNhc2UoKSldPWQuZGF0YXNldFtnXX19fSl9LEQ9KCk9PntpZighMT09PWEub25CZWZvcmVTdWJtaXQoYSkpcmV0dXJuIGEuY2xvc2VPblN1Ym1pdCYmdCgpLCExO3ZhciBkPXgod2luZG93LmxvY2F0aW9uLmhyZWYpO2lmKENvb2tpZXMuZ2V0KGEubGVhZElkK2QpKXJldHVybiBoPSExLHkoITApLCExO0YoKTt2KCJwb3B1cC5zdWJtaXQiKTtsZXQgZjtpZigiRGlnaXRhbFJldGFpbCI9PShudWxsPT0oZj1rKT92b2lkIDA6Zi5pbnZva2VyKSl7ZD1jbGllbnRTdG9yYWdlLmdldCgiY2xpZW50U3RvcmFnZSIpfHwKe307bGV0IG4scDtrLmxlYWRJbnZva2VyU0lEPUcoKG51bGw9PWQ\/dm9pZCAwOm51bGw9PShuPWQuY29udGFjdCk\/dm9pZCAwOm4uZW1haWwpKyhudWxsPT1kP3ZvaWQgMDpudWxsPT0ocD1kLmNvbnRhY3QpP3ZvaWQgMDpwLnBob25lKSk7ZW1haWxIYW5kbGVyLmxlYWRJbnZva2VyPSJEaWdpdGFsUmV0YWlsIjtlbWFpbEhhbmRsZXIuZGlnaXRhbFJldGFpbFNJRD1rLmxlYWRJbnZva2VyU0lEfXZhciBnO3E9KG51bGw9PShnPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1zdWJqZWN0XSIpKT92b2lkIDA6Zy5pbm5lclRleHQpfHxxO2xldCBsO3I9KG51bGw9PShsPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1ib2R5XSIpKT92b2lkIDA6bC5pbm5lckhUTUwpfHxyO2VtYWlsSGFuZGxlci5ib2R5PUgoKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1xO09iamVjdC5hc3NpZ24oZW1haWxIYW5kbGVyLGspOyJzdHJpbmciPT10eXBlb2YgZW1haWxIYW5kbGVyLnVzZXJOYW1lJiYKKGc9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zy5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zy5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD1mdW5jdGlvbihuKXtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkR1cGxpY2F0ZVNlbmQ9ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKX07ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKG4pe3ZhciBwPSExO2Euc2hvd0VtYWlsQ29uZmlybWF0aW9uJiYocD1nZXRNYWlsU2VudEhhbmRsZXIoIl8iK2EubmFtZSkscC50aW1lb3V0Q2FsbGJhY2s9ZnVuY3Rpb24oKXtlLnJlc2V0KCl9KTsKaWYobil2KCJwb3B1cC5sZWFkX3NlbnQiKSwiZnVuY3Rpb24iPT10eXBlb2Ygb3JpZ2luYWxDYWxsYmFjayYmb3JpZ2luYWxDYWxsYmFjay5jYWxsKCksIm9uU3VibWl0Ij09YS5jb29raWVDcmVhdGUmJkNvb2tpZXMuc2V0KGEuY29va2llTmFtZSwiMSIsYS5jb29raWVEdXJhdGlvbiwiLyIpLGEuc3VibWl0RmxhZyYmQ29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDEsIi8iKSxhLmNsb3NlT25TdWJtaXQmJnQoIkNPTlNFTlQiKSxwP3Auc2hvd1N1Y2Nlc3MoKTowPCQoYGZvcm0jZm9ybSR7YS5uYW1lfV9jb25maXJtYCkubGVuZ3RoJiYkKGBmb3JtI2Zvcm0ke2EubmFtZX1fY29uZmlybWApLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7cHx8KHA9Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtwLnNob3dGYWlsKCl9Y2F0Y2godSl7fX15KG4pO3coKTtzZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyk7biYmKG49eCh3aW5kb3cubG9jYXRpb24uaHJlZiksCkNvb2tpZXMuc2V0KGEubGVhZElkK24sIjEiLDEsIi8iKSl9O2Euc3VibWl0dGVkPSEwO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQmVmb3JlU2VuZE1haWwmJjA9PWEub25CZWZvcmVTZW5kTWFpbC5jYWxsKCkpcmV0dXJuITE7bGV0IG09e307ImZ1bmN0aW9uIj09dHlwZW9mIGEub25BREYmJihtPWEub25BREYuY2FsbCgpKTsibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpLmZvckVhY2gobj0+e2VtYWlsSGFuZGxlcltuXT1tW25dfHxlbWFpbEhhbmRsZXJbbl19KTthLnB1cmNoYXNlSW50ZW50UG9wdXB8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfSx3PSgpPT57az17dXNlckZpcnN0TmFtZToiIix1c2VyTGFzdE5hbWU6IiIsdXNlckVtYWlsOiIiLHVzZXJQaG9uZToiIn07aD0hMX0sQj1mdW5jdGlvbigpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtpZihhLnNraXBWYWxpZGF0aW9uKXJldHVybiEwOwpjb25zdCBkPW5ldyBQcmlzdGluZShlLHtjbGFzc1RvOiJmb3JtLWxhYmVsIixlcnJvckNsYXNzOiJpbnZhbGlkIn0sITEpO2xldCBmPWUucXVlcnlTZWxlY3RvcignW25hbWU9InBob25lbnVtIl0nKSxnPSEwLGw9ITA7aWYoZi5yZXF1aXJlZHx8Zi52YWx1ZSlnPW51bGwsZz15aWVsZCBJKGYudmFsdWUpO251bGw9PT1nPyhkLmFkZFZhbGlkYXRvcihmLGZ1bmN0aW9uKG0pe209bS5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKTsiMSI9PW1bMF0mJihtPW0uc3Vic3RyaW5nKDEpKTttPXBhcnNlSW50KG0uc3Vic3RyaW5nKDAsMykpO3JldHVybiBnPVs0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiw1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLDYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMl0uaW5jbHVkZXMobSl9LCJFbnRlciBhIHZhbGlkIHBob25lIG51bWJlciIsNSwhMSksbD1kLnZhbGlkYXRlKCkpOihsPWQudmFsaWRhdGUoKSYmZyxmLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW52YWxpZCIsCiFnKSk7Zi5yZXF1aXJlZCYmIWcmJiJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiYoZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKyssZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PSEwKTtyZXR1cm4gbH0pfSxJPWQ9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2xldCBmPW51bGw7ZD1kLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpO3lpZWxkIGF4aW9zLmdldCgiL3Byb3h5X3JkMmMvc2l0ZXMvc3ZjL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwIix7dGltZW91dDoyRTMsZGF0YVR5cGU6Impzb24iLHBhcmFtczp7cGhvbmU6ZH0scmVzcG9uc2VUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oZyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZy5kYXRhLmlzT2smJihmPWcuZGF0YS5waG9uZU51bWJlcklzVmFsaWQpfSkuY2F0Y2goZnVuY3Rpb24oZyl7fSk7cmV0dXJuIGZ9KSxGPSgpPT57Y29uc3QgZD0KZG9jdW1lbnQuZm9ybXMuZW1haWxtc2dmcm18fCExO2lmKCFkKXJldHVybiExO2QucXVlcnlTZWxlY3RvcignW25hbWU9ImxhYmVsIicpLnZhbHVlPWAke2EudHlwZX0gKCR7ay5jb25kaXRpb259KWA7ZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0ic2VjdGlvbiInKS52YWx1ZT1rLmNvbmRpdGlvbn0seD1kPT5bLi4uZF0ucmVkdWNlKChmLGcpPT5NYXRoLmltdWwoMzEsZikrZy5jaGFyQ29kZUF0KDApfDAsMCksSD1mdW5jdGlvbigpe2xldCBkPXIsZj17bmFtZTpbIk1OQU1FIl0scGhvbmVudW06WyJNUEhPTkUiLCJQSE9ORSJdLGVtYWlsOlsiTU1BSUwiXX07T2JqZWN0LmtleXMoaykuZm9yRWFjaChnPT57dmFyIGw9bmV3IFJlZ0V4cCgie1xcJCIrZy50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpO2Q9ZC5yZXBsYWNlKGwsa1tnXSk7ZltnXSYmKGw9bmV3IFJlZ0V4cCgie1xcJCgiK2ZbZ10uam9pbigifCIpKyIpfSIsImciKSxkPWQucmVwbGFjZShsLGtbZ10pKX0pO3JldHVybiBkfSx2PWZ1bmN0aW9uKGQpe3ZhciBmPQphLnR5cGU7aWYoIWQpcmV0dXJuITE7aWYoInBvcHVwLmxlYWRfc2VudCI9PWQpe3ZhciBnPSJjbGljayIucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihtKXtyZXR1cm4gbS50b1VwcGVyQ2FzZSgpfSksbD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZyxsLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGQsZixzZWxmKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGQsZikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsZCxmKX0sdD0oKT0+e2Eub25CZWZvcmVDbG9zZShhKTt3KCk7TW9kYWxzW2NdJiZNb2RhbHNbY10uY2xvc2UoKX0sCnk9ZD0+e2Eub25BZnRlclN1Ym1pdChhLGQpO2EuY2xvc2VPblN1Ym1pdCYmZCYmdCgpO2QmJmUucmVzZXQoKX0sRz1kPT57bGV0IGY9MDtpZigwPT1kLmxlbmd0aClyZXR1cm4gZjtmb3IobGV0IGc9MCxsPWQubGVuZ3RoO2c8bDtnKyspe2xldCBtPWQuY2hhckNvZGVBdChnKTtmPShmPDw1KS1mK207Znw9MH1yZXR1cm4gTWF0aC5hYnMoZil9OygoKT0+eyQoZSkudHJpZ2dlcigicG9wdXBpemVyLm9uT3BlbiIsJChlKSk7dygpO0EoKTtlLm9uc3VibWl0PWQ9PntkLnByZXZlbnREZWZhdWx0KCk7RSgpfTthLm9uQmVmb3JlT3BlbihhKX0pKCk7cmV0dXJue2xlYWRJZDpjLGxlYWROb2RlOmIsdHJpZ2dlcjp6LGRpc3BsYXk6KCk9PnthLmRpc3BsYXk\/YS5kaXNwbGF5KGEpOihhLmNvbnRlbnRTcmM9YGxlYWQke2N9YCxNb2RhbHNbY118fChNb2RhbHNbY109bmV3IE1vZGFsKGMsYSkpLE1vZGFsc1tjXS5kaXNwbGF5KCkpfSxjbG9zZTp0fX0sTGVhZEhhbmRsZXI9ZnVuY3Rpb24oKXtjb25zdCBiPQp7b25CZWZvcmVPcGVuOigpPT57fSxvbkJlZm9yZVZhbGlkYXRpb246KCk9Pnt9LG9uQmVmb3JlU3VibWl0OigpPT57fSxvbkFmdGVyU3VibWl0OigpPT57fSxvbkJlZm9yZUNhbmNlbDooKT0+e30sb25CZWZvcmVDbG9zZTooKT0+e30sb25DbG9zZTooKT0+e30sZm9ybTp7ZW1haWxpZDpudWxsLG9mZmVydHlwZTpudWxsLG5hbWU6bnVsbCxzZW5kVG86bnVsbCxzZW5kVG9BREY6bnVsbCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMSxmcm9tQUE6ITF9LGdldElkU3VmZml4OmE9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpEYXRlLm5vdygpKSxtb2RlOiJzdGF0aWMiLHRyaWdnZXI6ImF1dG8iLGRlbGF5OiExLGRpc3BsYXk6ITEsc3VibWl0dGVkOiExLGNsb3NlT25TdWJtaXQ6ITAsc3VibWl0RmxhZzohMSxieXBhc3NDb25zZW50OiExLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMCxwdXJjaGFzZUludGVudFBvcHVwOiExfTsKaW5pdD0oKT0+eyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3QmJihuZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJWaWV3RGlzY292ZXJCdG5IYW5kbGVyIn0pKS5hZGRVc2VkU3JwRXZlbnRPYnNlcnZlcigiY29udGVudCIsYWRkTGVhZEV2ZW50cykuaW5pdFVzZWRTcnBPYnNlcnZlcigpO2FkZExlYWRFdmVudHMoKX07YWRkTGVhZEV2ZW50cz0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWxlYWQtdHJpZ2dlcl0iKS5mb3JFYWNoKGE9Pnt0aGlzLmluaXRMZWFkVHJpZ2dlcihhKX0pfTt0aGlzLmluaXRMZWFkVHJpZ2dlcj1hPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYz0+e2Muc3RvcFByb3BhZ2F0aW9uKCk7Yz1hLmRhdGFzZXQubGVhZFRyaWdnZXI7bGV0IGU9YS5kYXRhc2V0LmxlYWRpZHx8ITE7TGVhZENvbmZpZ3NbY10udHJpZ2dlcj1hO2M9dGhpcy5nZXRMZWFkKGMsZSk7Yy5kaXNwbGF5KCk7CmEuZGF0YXNldC5sZWFkaWQ9Yy5sZWFkSWR9KX07dGhpcy5nZXRMZWFkPShhLGMpPT57aWYoIShjPUxlYWRzW2N8fGFdKSl7e2M9YTtsZXQgZT1PYmplY3QuYXNzaWduKHt9LGIpO09iamVjdC5hc3NpZ24oZSxMZWFkQ29uZmlnc1thXSk7Y29uc3QgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbGVhZCR7YX1gKTtoPyhhPWgsInN0YXRpYyIhPWUubW9kZSYmKGM9YCR7ZS5uYW1lfV8ke2UuZ2V0SWRTdWZmaXgoZSl9YCxhPWguY2xvbmVOb2RlKCEwKSxhLnNldEF0dHJpYnV0ZSgiaWQiLCJsZWFkIitjKSxhLnF1ZXJ5U2VsZWN0b3IoImZvcm0iKS5zZXRBdHRyaWJ1dGUoImlkIiwiZm9ybSIrYyksZG9jdW1lbnQuYm9keS5hcHBlbmQoYSkpLGUubGVhZElkPWMsZS5sZWFkTm9kZT1hLExlYWRzW2NdPW5ldyBMZWFkKGUpLGM9TGVhZHNbY10pOmM9ITF9fXJldHVybiBjfTtyZXR1cm57aW5pdCxpbml0TGVhZFRyaWdnZXIsZ2V0TGVhZH19O3ZhciBMZWFkcz1MZWFkc3x8e307ZG9jUmVhZHlBcnIucHVzaChMZWFkSGFuZGxlcigpLmluaXQpOwovKiogL20vanMvdmFuaWxsYWpzL2F4aW9zLm1pbi5qcyAqKi8KIWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuYXhpb3M9dCgpOmUuYXhpb3M9dCgpfSh0aGlzLChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD17fTtmdW5jdGlvbiBuKHIpe2lmKHRbcl0pcmV0dXJuIHRbcl0uZXhwb3J0czt2YXIgbz10W3JdPXtpOnIsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gZVtyXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxuKSxvLmw9ITAsby5leHBvcnRzfXJldHVybiBuLm09ZSxuLmM9dCxuLmQ9ZnVuY3Rpb24oZSx0LHIpe24ubyhlLHQpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpyfSl9LG4ucj1mdW5jdGlvbihlKXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxuLnQ9ZnVuY3Rpb24oZSx0KXtpZigxJnQmJihlPW4oZSkpLDgmdClyZXR1cm4gZTtpZig0JnQmJiJvYmplY3QiPT10eXBlb2YgZSYmZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciByPU9iamVjdC5jcmVhdGUobnVsbCk7aWYobi5yKHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSksMiZ0JiYic3RyaW5nIiE9dHlwZW9mIGUpZm9yKHZhciBvIGluIGUpbi5kKHIsbyxmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0uYmluZChudWxsLG8pKTtyZXR1cm4gcn0sbi5uPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBuLmQodCwiYSIsdCksdH0sbi5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxuLnA9IiIsbihuLnM9MTEpfShbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDMpLG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBpKGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1vLmNhbGwoZSl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gdm9pZCAwPT09ZX1mdW5jdGlvbiBhKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfWZ1bmN0aW9uIHUoZSl7aWYoIltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09dHx8dD09PU9iamVjdC5wcm90b3R5cGV9ZnVuY3Rpb24gYyhlKXtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT09by5jYWxsKGUpfWZ1bmN0aW9uIGYoZSx0KXtpZihudWxsIT1lKWlmKCJvYmplY3QiIT10eXBlb2YgZSYmKGU9W2VdKSxpKGUpKWZvcih2YXIgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0LmNhbGwobnVsbCxlW25dLG4sZSk7ZWxzZSBmb3IodmFyIG8gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSYmdC5jYWxsKG51bGwsZVtvXSxvLGUpfWUuZXhwb3J0cz17aXNBcnJheTppLGlzQXJyYXlCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQXJyYXlCdWZmZXJdIj09PW8uY2FsbChlKX0saXNCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYhcyhlKSYmbnVsbCE9PWUuY29uc3RydWN0b3ImJiFzKGUuY29uc3RydWN0b3IpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihlKX0saXNGb3JtRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZlIGluc3RhbmNlb2YgRm9ybURhdGF9LGlzQXJyYXlCdWZmZXJWaWV3OmZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZSYmZS5idWZmZXImJmUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9LGlzU3RyaW5nOmZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZX0saXNOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlfSxpc09iamVjdDphLGlzUGxhaW5PYmplY3Q6dSxpc1VuZGVmaW5lZDpzLGlzRGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBEYXRlXSI9PT1vLmNhbGwoZSl9LGlzRmlsZTpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBGaWxlXSI9PT1vLmNhbGwoZSl9LGlzQmxvYjpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBCbG9iXSI9PT1vLmNhbGwoZSl9LGlzRnVuY3Rpb246Yyxpc1N0cmVhbTpmdW5jdGlvbihlKXtyZXR1cm4gYShlKSYmYyhlLnBpcGUpfSxpc1VSTFNlYXJjaFBhcmFtczpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyYmZSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtc30saXNTdGFuZGFyZEJyb3dzZXJFbnY6ZnVuY3Rpb24oKXtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuYXZpZ2F0b3J8fCJSZWFjdE5hdGl2ZSIhPT1uYXZpZ2F0b3IucHJvZHVjdCYmIk5hdGl2ZVNjcmlwdCIhPT1uYXZpZ2F0b3IucHJvZHVjdCYmIk5TIiE9PW5hdmlnYXRvci5wcm9kdWN0KSYmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50KX0sZm9yRWFjaDpmLG1lcmdlOmZ1bmN0aW9uIGUoKXt2YXIgdD17fTtmdW5jdGlvbiBuKG4scil7dSh0W3JdKSYmdShuKT90W3JdPWUodFtyXSxuKTp1KG4pP3Rbcl09ZSh7fSxuKTppKG4pP3Rbcl09bi5zbGljZSgpOnRbcl09bn1mb3IodmFyIHI9MCxvPWFyZ3VtZW50cy5sZW5ndGg7cjxvO3IrKylmKGFyZ3VtZW50c1tyXSxuKTtyZXR1cm4gdH0sZXh0ZW5kOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZih0LChmdW5jdGlvbih0LG8pe2Vbb109biYmImZ1bmN0aW9uIj09dHlwZW9mIHQ\/cih0LG4pOnR9KSksZX0sdHJpbTpmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltP2UudHJpbSgpOmUucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSxzdHJpcEJPTTpmdW5jdGlvbihlKXtyZXR1cm4gNjUyNzk9PT1lLmNoYXJDb2RlQXQoMCkmJihlPWUuc2xpY2UoMSkpLGV9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxNyksaT1uKDUpLHM9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifTtmdW5jdGlvbiBhKGUsdCl7IXIuaXNVbmRlZmluZWQoZSkmJnIuaXNVbmRlZmluZWQoZVsiQ29udGVudC1UeXBlIl0pJiYoZVsiQ29udGVudC1UeXBlIl09dCl9dmFyIHUsYz17dHJhbnNpdGlvbmFsOntzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfSxhZGFwdGVyOigoInVuZGVmaW5lZCIhPXR5cGVvZiBYTUxIdHRwUmVxdWVzdHx8InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocHJvY2VzcykpJiYodT1uKDYpKSx1KSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe3JldHVybiBvKHQsIkFjY2VwdCIpLG8odCwiQ29udGVudC1UeXBlIiksci5pc0Zvcm1EYXRhKGUpfHxyLmlzQXJyYXlCdWZmZXIoZSl8fHIuaXNCdWZmZXIoZSl8fHIuaXNTdHJlYW0oZSl8fHIuaXNGaWxlKGUpfHxyLmlzQmxvYihlKT9lOnIuaXNBcnJheUJ1ZmZlclZpZXcoZSk\/ZS5idWZmZXI6ci5pc1VSTFNlYXJjaFBhcmFtcyhlKT8oYSh0LCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpLGUudG9TdHJpbmcoKSk6ci5pc09iamVjdChlKXx8dCYmImFwcGxpY2F0aW9uL2pzb24iPT09dFsiQ29udGVudC1UeXBlIl0\/KGEodCwiYXBwbGljYXRpb24vanNvbiIpLGZ1bmN0aW9uKGUsdCxuKXtpZihyLmlzU3RyaW5nKGUpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoZSksci50cmltKGUpfWNhdGNoKGUpe2lmKCJTeW50YXhFcnJvciIhPT1lLm5hbWUpdGhyb3cgZX1yZXR1cm4obnx8SlNPTi5zdHJpbmdpZnkpKGUpfShlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRyYW5zaXRpb25hbHx8Yy50cmFuc2l0aW9uYWwsbj10JiZ0LnNpbGVudEpTT05QYXJzaW5nLG89dCYmdC5mb3JjZWRKU09OUGFyc2luZyxzPSFuJiYianNvbiI9PT10aGlzLnJlc3BvbnNlVHlwZTtpZihzfHxvJiZyLmlzU3RyaW5nKGUpJiZlLmxlbmd0aCl0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7aWYocyl7aWYoIlN5bnRheEVycm9yIj09PWUubmFtZSl0aHJvdyBpKGUsdGhpcywiRV9KU09OX1BBUlNFIik7dGhyb3cgZX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiJ9fX07ci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCJdLChmdW5jdGlvbihlKXtjLmhlYWRlcnNbZV09e319KSksci5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sKGZ1bmN0aW9uKGUpe2MuaGVhZGVyc1tlXT1yLm1lcmdlKHMpfSkpLGUuZXhwb3J0cz1jfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7dGhpcy5tZXNzYWdlPWV9ci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQ2FuY2VsIisodGhpcy5tZXNzYWdlPyI6ICIrdGhpcy5tZXNzYWdlOiIiKX0sci5wcm90b3R5cGUuX19DQU5DRUxfXz0hMCxlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gZS5hcHBseSh0LG4pfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtmdW5jdGlvbiBvKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfWUuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7aWYoIXQpcmV0dXJuIGU7dmFyIGk7aWYobilpPW4odCk7ZWxzZSBpZihyLmlzVVJMU2VhcmNoUGFyYW1zKHQpKWk9dC50b1N0cmluZygpO2Vsc2V7dmFyIHM9W107ci5mb3JFYWNoKHQsKGZ1bmN0aW9uKGUsdCl7bnVsbCE9ZSYmKHIuaXNBcnJheShlKT90Kz0iW10iOmU9W2VdLHIuZm9yRWFjaChlLChmdW5jdGlvbihlKXtyLmlzRGF0ZShlKT9lPWUudG9JU09TdHJpbmcoKTpyLmlzT2JqZWN0KGUpJiYoZT1KU09OLnN0cmluZ2lmeShlKSkscy5wdXNoKG8odCkrIj0iK28oZSkpfSkpKX0pKSxpPXMuam9pbigiJiIpfWlmKGkpe3ZhciBhPWUuaW5kZXhPZigiIyIpOy0xIT09YSYmKGU9ZS5zbGljZSgwLGEpKSxlKz0oLTE9PT1lLmluZGV4T2YoIj8iKT8iPyI6IiYiKStpfXJldHVybiBlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gZS5jb25maWc9dCxuJiYoZS5jb2RlPW4pLGUucmVxdWVzdD1yLGUucmVzcG9uc2U9byxlLmlzQXhpb3NFcnJvcj0hMCxlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzp0aGlzLmNvbmZpZyxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5yZXNwb25zZSYmdGhpcy5yZXNwb25zZS5zdGF0dXM\/dGhpcy5yZXNwb25zZS5zdGF0dXM6bnVsbH19LGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDE4KSxpPW4oMTkpLHM9big0KSxhPW4oMjApLHU9bigyMyksYz1uKDI0KSxmPW4oNyksbD1uKDEpLHA9bigyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe3ZhciBkLGg9ZS5kYXRhLG09ZS5oZWFkZXJzLHY9ZS5yZXNwb25zZVR5cGU7ZnVuY3Rpb24geSgpe2UuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUoZCksZS5zaWduYWwmJmUuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixkKX1yLmlzRm9ybURhdGEoaCkmJmRlbGV0ZSBtWyJDb250ZW50LVR5cGUiXTt2YXIgZz1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZS5hdXRoKXt2YXIgYj1lLmF1dGgudXNlcm5hbWV8fCIiLHg9ZS5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlLmF1dGgucGFzc3dvcmQpKToiIjttLkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYShiKyI6Iit4KX12YXIgdz1hKGUuYmFzZVVSTCxlLnVybCk7ZnVuY3Rpb24gRSgpe2lmKGcpe3ZhciByPSJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gZz91KGcuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGwsaT17ZGF0YTp2JiYidGV4dCIhPT12JiYianNvbiIhPT12P2cucmVzcG9uc2U6Zy5yZXNwb25zZVRleHQsc3RhdHVzOmcuc3RhdHVzLHN0YXR1c1RleHQ6Zy5zdGF0dXNUZXh0LGhlYWRlcnM6cixjb25maWc6ZSxyZXF1ZXN0Omd9O28oKGZ1bmN0aW9uKGUpe3QoZSkseSgpfSksKGZ1bmN0aW9uKGUpe24oZSkseSgpfSksaSksZz1udWxsfX1pZihnLm9wZW4oZS5tZXRob2QudG9VcHBlckNhc2UoKSxzKHcsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKSwhMCksZy50aW1lb3V0PWUudGltZW91dCwib25sb2FkZW5kImluIGc\/Zy5vbmxvYWRlbmQ9RTpnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2cmJjQ9PT1nLnJlYWR5U3RhdGUmJigwIT09Zy5zdGF0dXN8fGcucmVzcG9uc2VVUkwmJjA9PT1nLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6IikpJiZzZXRUaW1lb3V0KEUpfSxnLm9uYWJvcnQ9ZnVuY3Rpb24oKXtnJiYobihmKCJSZXF1ZXN0IGFib3J0ZWQiLGUsIkVDT05OQUJPUlRFRCIsZykpLGc9bnVsbCl9LGcub25lcnJvcj1mdW5jdGlvbigpe24oZigiTmV0d29yayBFcnJvciIsZSxudWxsLGcpKSxnPW51bGx9LGcub250aW1lb3V0PWZ1bmN0aW9uKCl7dmFyIHQ9ZS50aW1lb3V0PyJ0aW1lb3V0IG9mICIrZS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLHI9ZS50cmFuc2l0aW9uYWx8fGwudHJhbnNpdGlvbmFsO2UudGltZW91dEVycm9yTWVzc2FnZSYmKHQ9ZS50aW1lb3V0RXJyb3JNZXNzYWdlKSxuKGYodCxlLHIuY2xhcmlmeVRpbWVvdXRFcnJvcj8iRVRJTUVET1VUIjoiRUNPTk5BQk9SVEVEIixnKSksZz1udWxsfSxyLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpe3ZhciBTPShlLndpdGhDcmVkZW50aWFsc3x8Yyh3KSkmJmUueHNyZkNvb2tpZU5hbWU\/aS5yZWFkKGUueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDtTJiYobVtlLnhzcmZIZWFkZXJOYW1lXT1TKX0ic2V0UmVxdWVzdEhlYWRlciJpbiBnJiZyLmZvckVhY2gobSwoZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT1oJiYiY29udGVudC10eXBlIj09PXQudG9Mb3dlckNhc2UoKT9kZWxldGUgbVt0XTpnLnNldFJlcXVlc3RIZWFkZXIodCxlKX0pKSxyLmlzVW5kZWZpbmVkKGUud2l0aENyZWRlbnRpYWxzKXx8KGcud2l0aENyZWRlbnRpYWxzPSEhZS53aXRoQ3JlZGVudGlhbHMpLHYmJiJqc29uIiE9PXYmJihnLnJlc3BvbnNlVHlwZT1lLnJlc3BvbnNlVHlwZSksImZ1bmN0aW9uIj09dHlwZW9mIGUub25Eb3dubG9hZFByb2dyZXNzJiZnLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixlLm9uRG93bmxvYWRQcm9ncmVzcyksImZ1bmN0aW9uIj09dHlwZW9mIGUub25VcGxvYWRQcm9ncmVzcyYmZy51cGxvYWQmJmcudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixlLm9uVXBsb2FkUHJvZ3Jlc3MpLChlLmNhbmNlbFRva2VufHxlLnNpZ25hbCkmJihkPWZ1bmN0aW9uKGUpe2cmJihuKCFlfHxlJiZlLnR5cGU\/bmV3IHAoImNhbmNlbGVkIik6ZSksZy5hYm9ydCgpLGc9bnVsbCl9LGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKGQpLGUuc2lnbmFsJiYoZS5zaWduYWwuYWJvcnRlZD9kKCk6ZS5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGQpKSksaHx8KGg9bnVsbCksZy5zZW5kKGgpfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixvLGkpe3ZhciBzPW5ldyBFcnJvcihlKTtyZXR1cm4gcihzLHQsbixvLGkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuISghZXx8IWUuX19DQU5DRUxfXyl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgbj17fTtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIHIuaXNQbGFpbk9iamVjdChlKSYmci5pc1BsYWluT2JqZWN0KHQpP3IubWVyZ2UoZSx0KTpyLmlzUGxhaW5PYmplY3QodCk\/ci5tZXJnZSh7fSx0KTpyLmlzQXJyYXkodCk\/dC5zbGljZSgpOnR9ZnVuY3Rpb24gaShuKXtyZXR1cm4gci5pc1VuZGVmaW5lZCh0W25dKT9yLmlzVW5kZWZpbmVkKGVbbl0pP3ZvaWQgMDpvKHZvaWQgMCxlW25dKTpvKGVbbl0sdFtuXSl9ZnVuY3Rpb24gcyhlKXtpZighci5pc1VuZGVmaW5lZCh0W2VdKSlyZXR1cm4gbyh2b2lkIDAsdFtlXSl9ZnVuY3Rpb24gYShuKXtyZXR1cm4gci5pc1VuZGVmaW5lZCh0W25dKT9yLmlzVW5kZWZpbmVkKGVbbl0pP3ZvaWQgMDpvKHZvaWQgMCxlW25dKTpvKHZvaWQgMCx0W25dKX1mdW5jdGlvbiB1KG4pe3JldHVybiBuIGluIHQ\/byhlW25dLHRbbl0pOm4gaW4gZT9vKHZvaWQgMCxlW25dKTp2b2lkIDB9dmFyIGM9e3VybDpzLG1ldGhvZDpzLGRhdGE6cyxiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLGFkYXB0ZXI6YSxyZXNwb25zZVR5cGU6YSx4c3JmQ29va2llTmFtZTphLHhzcmZIZWFkZXJOYW1lOmEsb25VcGxvYWRQcm9ncmVzczphLG9uRG93bmxvYWRQcm9ncmVzczphLGRlY29tcHJlc3M6YSxtYXhDb250ZW50TGVuZ3RoOmEsbWF4Qm9keUxlbmd0aDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6dX07cmV0dXJuIHIuZm9yRWFjaChPYmplY3Qua2V5cyhlKS5jb25jYXQoT2JqZWN0LmtleXModCkpLChmdW5jdGlvbihlKXt2YXIgdD1jW2VdfHxpLG89dChlKTtyLmlzVW5kZWZpbmVkKG8pJiZ0IT09dXx8KG5bZV09byl9KSksbn19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPXt2ZXJzaW9uOiIwLjI0LjAifX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKDEyKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigzKSxpPW4oMTMpLHM9big5KTt2YXIgYT1mdW5jdGlvbiBlKHQpe3ZhciBuPW5ldyBpKHQpLGE9byhpLnByb3RvdHlwZS5yZXF1ZXN0LG4pO3JldHVybiByLmV4dGVuZChhLGkucHJvdG90eXBlLG4pLHIuZXh0ZW5kKGEsbiksYS5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGUocyh0LG4pKX0sYX0obigxKSk7YS5BeGlvcz1pLGEuQ2FuY2VsPW4oMiksYS5DYW5jZWxUb2tlbj1uKDI2KSxhLmlzQ2FuY2VsPW4oOCksYS5WRVJTSU9OPW4oMTApLnZlcnNpb24sYS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfSxhLnNwcmVhZD1uKDI3KSxhLmlzQXhpb3NFcnJvcj1uKDI4KSxlLmV4cG9ydHM9YSxlLmV4cG9ydHMuZGVmYXVsdD1hfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDQpLGk9bigxNCkscz1uKDE1KSxhPW4oOSksdT1uKDI1KSxjPXUudmFsaWRhdG9ycztmdW5jdGlvbiBmKGUpe3RoaXMuZGVmYXVsdHM9ZSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgaSxyZXNwb25zZTpuZXcgaX19Zi5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGU\/KGU9YXJndW1lbnRzWzFdfHx7fSkudXJsPWFyZ3VtZW50c1swXTplPWV8fHt9LChlPWEodGhpcy5kZWZhdWx0cyxlKSkubWV0aG9kP2UubWV0aG9kPWUubWV0aG9kLnRvTG93ZXJDYXNlKCk6dGhpcy5kZWZhdWx0cy5tZXRob2Q\/ZS5tZXRob2Q9dGhpcy5kZWZhdWx0cy5tZXRob2QudG9Mb3dlckNhc2UoKTplLm1ldGhvZD0iZ2V0Ijt2YXIgdD1lLnRyYW5zaXRpb25hbDt2b2lkIDAhPT10JiZ1LmFzc2VydE9wdGlvbnModCx7c2lsZW50SlNPTlBhcnNpbmc6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpjLnRyYW5zaXRpb25hbChjLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKX0sITEpO3ZhciBuPVtdLHI9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKChmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgdC5ydW5XaGVuJiYhMT09PXQucnVuV2hlbihlKXx8KHI9ciYmdC5zeW5jaHJvbm91cyxuLnVuc2hpZnQodC5mdWxmaWxsZWQsdC5yZWplY3RlZCkpfSkpO3ZhciBvLGk9W107aWYodGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aS5wdXNoKGUuZnVsZmlsbGVkLGUucmVqZWN0ZWQpfSkpLCFyKXt2YXIgZj1bcyx2b2lkIDBdO2ZvcihBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShmLG4pLGY9Zi5jb25jYXQoaSksbz1Qcm9taXNlLnJlc29sdmUoZSk7Zi5sZW5ndGg7KW89by50aGVuKGYuc2hpZnQoKSxmLnNoaWZ0KCkpO3JldHVybiBvfWZvcih2YXIgbD1lO24ubGVuZ3RoOyl7dmFyIHA9bi5zaGlmdCgpLGQ9bi5zaGlmdCgpO3RyeXtsPXAobCl9Y2F0Y2goZSl7ZChlKTticmVha319dHJ5e289cyhsKX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9Zm9yKDtpLmxlbmd0aDspbz1vLnRoZW4oaS5zaGlmdCgpLGkuc2hpZnQoKSk7cmV0dXJuIG99LGYucHJvdG90eXBlLmdldFVyaT1mdW5jdGlvbihlKXtyZXR1cm4gZT1hKHRoaXMuZGVmYXVsdHMsZSksbyhlLnVybCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cPy8sIiIpfSxyLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLChmdW5jdGlvbihlKXtmLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLnJlcXVlc3QoYShufHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YToobnx8e30pLmRhdGF9KSl9fSkpLHIuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbihlKXtmLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRoaXMucmVxdWVzdChhKHJ8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOm59KSl9fSkpLGUuZXhwb3J0cz1mfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZnVuY3Rpb24gbygpe3RoaXMuaGFuZGxlcnM9W119by5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOiEhbiYmbi5zeW5jaHJvbm91cyxydW5XaGVuOm4\/bi5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfSxvLnByb3RvdHlwZS5lamVjdD1mdW5jdGlvbihlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX0sby5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlKXtyLmZvckVhY2godGhpcy5oYW5kbGVycywoZnVuY3Rpb24odCl7bnVsbCE9PXQmJmUodCl9KSl9LGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDE2KSxpPW4oOCkscz1uKDEpLGE9bigyKTtmdW5jdGlvbiB1KGUpe2lmKGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLGUuc2lnbmFsJiZlLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBhKCJjYW5jZWxlZCIpfWUuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdShlKSxlLmhlYWRlcnM9ZS5oZWFkZXJzfHx7fSxlLmRhdGE9by5jYWxsKGUsZS5kYXRhLGUuaGVhZGVycyxlLnRyYW5zZm9ybVJlcXVlc3QpLGUuaGVhZGVycz1yLm1lcmdlKGUuaGVhZGVycy5jb21tb258fHt9LGUuaGVhZGVyc1tlLm1ldGhvZF18fHt9LGUuaGVhZGVycyksci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLChmdW5jdGlvbih0KXtkZWxldGUgZS5oZWFkZXJzW3RdfSkpLChlLmFkYXB0ZXJ8fHMuYWRhcHRlcikoZSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHUoZSksdC5kYXRhPW8uY2FsbChlLHQuZGF0YSx0LmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSksdH0pLChmdW5jdGlvbih0KXtyZXR1cm4gaSh0KXx8KHUoZSksdCYmdC5yZXNwb25zZSYmKHQucmVzcG9uc2UuZGF0YT1vLmNhbGwoZSx0LnJlc3BvbnNlLmRhdGEsdC5yZXNwb25zZS5oZWFkZXJzLGUudHJhbnNmb3JtUmVzcG9uc2UpKSksUHJvbWlzZS5yZWplY3QodCl9KSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpc3x8bztyZXR1cm4gci5mb3JFYWNoKG4sKGZ1bmN0aW9uKG4pe2U9bi5jYWxsKGksZSx0KX0pKSxlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3IuZm9yRWFjaChlLChmdW5jdGlvbihuLHIpe3IhPT10JiZyLnRvVXBwZXJDYXNlKCk9PT10LnRvVXBwZXJDYXNlKCkmJihlW3RdPW4sZGVsZXRlIGVbcl0pfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIG89bi5jb25maWcudmFsaWRhdGVTdGF0dXM7bi5zdGF0dXMmJm8mJiFvKG4uc3RhdHVzKT90KHIoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIituLnN0YXR1cyxuLmNvbmZpZyxudWxsLG4ucmVxdWVzdCxuKSk6ZShuKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP3t3cml0ZTpmdW5jdGlvbihlLHQsbixvLGkscyl7dmFyIGE9W107YS5wdXNoKGUrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KSksci5pc051bWJlcihuKSYmYS5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUobikudG9HTVRTdHJpbmcoKSksci5pc1N0cmluZyhvKSYmYS5wdXNoKCJwYXRoPSIrbyksci5pc1N0cmluZyhpKSYmYS5wdXNoKCJkb21haW49IitpKSwhMD09PXMmJmEucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWEuam9pbigiOyAiKX0scmVhZDpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrZSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dGhpcy53cml0ZShlLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlOmZ1bmN0aW9uKCl7fSxyZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHJlbW92ZTpmdW5jdGlvbigpe319fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMjEpLG89bigyMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiFyKHQpP28oZSx0KTp0fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuL14oW2Etel1bYS16XGRcK1wtXC5dKjopP1wvXC8vaS50ZXN0KGUpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1wvKyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXC8rLywiIik6ZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPVsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXt9O3JldHVybiBlPyhyLmZvckVhY2goZS5zcGxpdCgiXG4iKSwoZnVuY3Rpb24oZSl7aWYoaT1lLmluZGV4T2YoIjoiKSx0PXIudHJpbShlLnN1YnN0cigwLGkpKS50b0xvd2VyQ2FzZSgpLG49ci50cmltKGUuc3Vic3RyKGkrMSkpLHQpe2lmKHNbdF0mJm8uaW5kZXhPZih0KT49MClyZXR1cm47c1t0XT0ic2V0LWNvb2tpZSI9PT10PyhzW3RdP3NbdF06W10pLmNvbmNhdChbbl0pOnNbdF0\/c1t0XSsiLCAiK246bn19KSkscyk6c319LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGUsdD0vKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2Z1bmN0aW9uIG8oZSl7dmFyIHI9ZTtyZXR1cm4gdCYmKG4uc2V0QXR0cmlidXRlKCJocmVmIixyKSxyPW4uaHJlZiksbi5zZXRBdHRyaWJ1dGUoImhyZWYiLHIpLHtocmVmOm4uaHJlZixwcm90b2NvbDpuLnByb3RvY29sP24ucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0Om4uaG9zdCxzZWFyY2g6bi5zZWFyY2g\/bi5zZWFyY2gucmVwbGFjZSgvXlw\/LywiIik6IiIsaGFzaDpuLmhhc2g\/bi5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6bi5ob3N0bmFtZSxwb3J0Om4ucG9ydCxwYXRobmFtZToiLyI9PT1uLnBhdGhuYW1lLmNoYXJBdCgwKT9uLnBhdGhuYW1lOiIvIituLnBhdGhuYW1lfX1yZXR1cm4gZT1vKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbih0KXt2YXIgbj1yLmlzU3RyaW5nKHQpP28odCk6dDtyZXR1cm4gbi5wcm90b2NvbD09PWUucHJvdG9jb2wmJm4uaG9zdD09PWUuaG9zdH19KCk6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMCkudmVyc2lvbixvPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtvW2VdPWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbj09PWV8fCJhIisodDwxPyJuICI6IiAiKStlfX0pKTt2YXIgaT17fTtvLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiJbQXhpb3MgdiIrcisiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2UrIiciK3QrKG4\/Ii4gIituOiIiKX1yZXR1cm4gZnVuY3Rpb24obixyLHMpe2lmKCExPT09ZSl0aHJvdyBuZXcgRXJyb3IobyhyLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ\/IiBpbiAiK3Q6IiIpKSk7cmV0dXJuIHQmJiFpW3JdJiYoaVtyXT0hMCxjb25zb2xlLndhcm4obyhyLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLCFlfHxlKG4scixzKX19LGUuZXhwb3J0cz17YXNzZXJ0T3B0aW9uczpmdW5jdGlvbihlLHQsbil7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtmb3IodmFyIHI9T2JqZWN0LmtleXMoZSksbz1yLmxlbmd0aDtvLS0gPjA7KXt2YXIgaT1yW29dLHM9dFtpXTtpZihzKXt2YXIgYT1lW2ldLHU9dm9pZCAwPT09YXx8cyhhLGksZSk7aWYoITAhPT11KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiAiK2krIiBtdXN0IGJlICIrdSl9ZWxzZSBpZighMCE9PW4pdGhyb3cgRXJyb3IoIlVua25vd24gb3B0aW9uICIraSl9fSx2YWxpZGF0b3JzOm99fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMik7ZnVuY3Rpb24gbyhlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7dmFyIHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihlKXt0PWV9KSk7dmFyIG49dGhpczt0aGlzLnByb21pc2UudGhlbigoZnVuY3Rpb24oZSl7aWYobi5fbGlzdGVuZXJzKXt2YXIgdCxyPW4uX2xpc3RlbmVycy5sZW5ndGg7Zm9yKHQ9MDt0PHI7dCsrKW4uX2xpc3RlbmVyc1t0XShlKTtuLl9saXN0ZW5lcnM9bnVsbH19KSksdGhpcy5wcm9taXNlLnRoZW49ZnVuY3Rpb24oZSl7dmFyIHQscj1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7bi5zdWJzY3JpYmUoZSksdD1lfSkpLnRoZW4oZSk7cmV0dXJuIHIuY2FuY2VsPWZ1bmN0aW9uKCl7bi51bnN1YnNjcmliZSh0KX0scn0sZSgoZnVuY3Rpb24oZSl7bi5yZWFzb258fChuLnJlYXNvbj1uZXcgcihlKSx0KG4ucmVhc29uKSl9KSl9by5wcm90b3R5cGUudGhyb3dJZlJlcXVlc3RlZD1mdW5jdGlvbigpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufSxvLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dGhpcy5yZWFzb24\/ZSh0aGlzLnJlYXNvbik6dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19LG8ucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX2xpc3RlbmVycyl7dmFyIHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7LTEhPT10JiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9fSxvLnNvdXJjZT1mdW5jdGlvbigpe3ZhciBlO3JldHVybnt0b2tlbjpuZXcgbygoZnVuY3Rpb24odCl7ZT10fSkpLGNhbmNlbDplfX0sZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseShudWxsLHQpfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmITA9PT1lLmlzQXhpb3NFcnJvcn19XSl9KSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWF4aW9zLm1pbi5tYXA7Ci8qKiAvbS9qcy92YW5pbGxhanMvcHJpc3RpbmUubWluLmpzICoqLwohZnVuY3Rpb24oZSxyKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXIoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShyKTooZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczplfHxzZWxmKS5QcmlzdGluZT1yKCl9KHRoaXMsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXtlbjp7cmVxdWlyZWQ6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiLGVtYWlsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MiLG51bWJlcjoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIG51bWJlciIsaW50ZWdlcjoiVGhpcyBmaWVsZCByZXF1aXJlcyBhbiBpbnRlZ2VyIHZhbHVlIix1cmw6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSB2YWxpZCB3ZWJzaXRlIFVSTCIsdGVsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgdGVsZXBob25lIG51bWJlciIsbWF4bGVuZ3RoOiJUaGlzIGZpZWxkcyBsZW5ndGggbXVzdCBiZSA8ICR7MX0iLG1pbmxlbmd0aDoiVGhpcyBmaWVsZHMgbGVuZ3RoIG11c3QgYmUgPiAkezF9IixtaW46Ik1pbmltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQgaXMgJHsxfSIsbWF4OiJNYXhpbXVtIHZhbHVlIGZvciB0aGlzIGZpZWxkIGlzICR7MX0iLHBhdHRlcm46IlBsZWFzZSBtYXRjaCB0aGUgcmVxdWVzdGVkIGZvcm1hdCIsZXF1YWxzOiJUaGUgdHdvIGZpZWxkcyBkbyBub3QgbWF0Y2gifX07ZnVuY3Rpb24gcihlKXt2YXIgcj1hcmd1bWVudHM7cmV0dXJuIHRoaXMucmVwbGFjZSgvXCR7KFtee31dKil9L2csKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHJbdF19KSl9ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5wcmlzdGluZS5zZWxmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iJytlLmdldEF0dHJpYnV0ZSgibmFtZSIpKyciXTpjaGVja2VkJykubGVuZ3RofXZhciBuPXtjbGFzc1RvOiJmb3JtLWdyb3VwIixlcnJvckNsYXNzOiJoYXMtZGFuZ2VyIixzdWNjZXNzQ2xhc3M6Imhhcy1zdWNjZXNzIixlcnJvclRleHRQYXJlbnQ6ImZvcm0tZ3JvdXAiLGVycm9yVGV4dFRhZzoiZGl2IixlcnJvclRleHRDbGFzczoidGV4dC1oZWxwIn0saT1bInJlcXVpcmVkIiwibWluIiwibWF4IiwibWlubGVuZ3RoIiwibWF4bGVuZ3RoIiwicGF0dGVybiJdLHM9L14oKFtePD4oKVxbXF1cXC4sOzpcc0AiXSsoXC5bXjw+KClcW1xdXFwuLDs6XHNAIl0rKSopfCgiLisiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31dKXwoKFthLXpBLVpcLTAtOV0rXC4pK1thLXpBLVpdezIsfSkpJC8sYT0vLW1lc3NhZ2UoPzotKFthLXpdezJ9KD86X1tBLVpdezJ9KT8pKT8vLG89ImVuIixsPXt9LHU9ZnVuY3Rpb24oZSxyKXtyLm5hbWU9ZSx2b2lkIDA9PT1yLnByaW9yaXR5JiYoci5wcmlvcml0eT0xKSxsW2VdPXJ9O2Z1bmN0aW9uIGYodCxzLHUpe3ZhciBmPXRoaXM7ZnVuY3Rpb24gYyhlLHIsdCxuKXt2YXIgaT1sW3RdO2lmKGkmJihlLnB1c2goaSksbikpe3ZhciBzPSJwYXR0ZXJuIj09PXQ\/W25dOm4uc3BsaXQoIiwiKTtzLnVuc2hpZnQobnVsbCksclt0XT1zfX1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgbj1bXSxpPSEwLHM9MDt0LnZhbGlkYXRvcnNbc107cysrKXt2YXIgYT10LnZhbGlkYXRvcnNbc10sbD10LnBhcmFtc1thLm5hbWVdP3QucGFyYW1zW2EubmFtZV06W107aWYobFswXT10LmlucHV0LnZhbHVlLCFhLmZuLmFwcGx5KHQuaW5wdXQsbCkmJihpPSExLCJmdW5jdGlvbiI9PXR5cGVvZiBhLm1zZz9uLnB1c2goYS5tc2codC5pbnB1dC52YWx1ZSxsKSk6InN0cmluZyI9PXR5cGVvZiBhLm1zZz9uLnB1c2goci5hcHBseShhLm1zZyxsKSk6YS5tc2c9PT1PYmplY3QoYS5tc2cpJiZhLm1zZ1tvXT9uLnB1c2goci5hcHBseShhLm1zZ1tvXSxsKSk6dC5tZXNzYWdlc1tvXSYmdC5tZXNzYWdlc1tvXVthLm5hbWVdP24ucHVzaChyLmFwcGx5KHQubWVzc2FnZXNbb11bYS5uYW1lXSxsKSk6ZVtvXSYmZVtvXVthLm5hbWVdJiZuLnB1c2goci5hcHBseShlW29dW2EubmFtZV0sbCkpLCEwPT09YS5oYWx0KSlicmVha31yZXR1cm4gdC5lcnJvcnM9bixpfWZ1bmN0aW9uIG0oZSl7aWYoZS5lcnJvckVsZW1lbnRzKXJldHVybiBlLmVycm9yRWxlbWVudHM7dmFyIHI9ZnVuY3Rpb24oZSxyKXtmb3IoOyhlPWUucGFyZW50RWxlbWVudCkmJiFlLmNsYXNzTGlzdC5jb250YWlucyhyKTspO3JldHVybiBlfShlLmlucHV0LGYuY29uZmlnLmNsYXNzVG8pLHQ9bnVsbCxuPW51bGw7cmV0dXJuKHQ9Zi5jb25maWcuY2xhc3NUbz09PWYuY29uZmlnLmVycm9yVGV4dFBhcmVudD9yOnIucXVlcnlTZWxlY3RvcigiLiIrZi5jb25maWcuZXJyb3JUZXh0UGFyZW50KSkmJigobj10LnF1ZXJ5U2VsZWN0b3IoIi5wcmlzdGluZS1lcnJvciIpKXx8KChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZi5jb25maWcuZXJyb3JUZXh0VGFnKSkuY2xhc3NOYW1lPSJwcmlzdGluZS1lcnJvciAiK2YuY29uZmlnLmVycm9yVGV4dENsYXNzLHQuYXBwZW5kQ2hpbGQobiksbi5wcmlzdGluZURpc3BsYXk9bi5zdHlsZS5kaXNwbGF5KSksZS5lcnJvckVsZW1lbnRzPVtyLG5dfWZ1bmN0aW9uIGQoZSl7dmFyIHI9bShlKSx0PXJbMF0sbj1yWzFdO3QmJih0LmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuc3VjY2Vzc0NsYXNzKSx0LmNsYXNzTGlzdC5hZGQoZi5jb25maWcuZXJyb3JDbGFzcykpLG4mJihuLmlubmVySFRNTD1lLmVycm9ycy5qb2luKCI8YnIvPiIpLG4uc3R5bGUuZGlzcGxheT1uLnByaXN0aW5lRGlzcGxheXx8IiIpfWZ1bmN0aW9uIGgoZSl7dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHI9bShlKSx0PXJbMF0sbj1yWzFdO3JldHVybiB0JiYodC5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLmVycm9yQ2xhc3MpLHQuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpKSxuJiYobi5pbm5lckhUTUw9IiIsbi5zdHlsZS5kaXNwbGF5PSJub25lIikscn0oZSlbMF07ciYmci5jbGFzc0xpc3QuYWRkKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyl9cmV0dXJuIGZ1bmN0aW9uKGUscix0KXtlLnNldEF0dHJpYnV0ZSgibm92YWxpZGF0ZSIsInRydWUiKSxmLmZvcm09ZSxmLmNvbmZpZz1mdW5jdGlvbihlLHIpe2Zvcih2YXIgdCBpbiByKXQgaW4gZXx8KGVbdF09clt0XSk7cmV0dXJuIGV9KHJ8fHt9LG4pLGYubGl2ZT0hKCExPT09dCksZi5maWVsZHM9QXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0Om5vdChbdHlwZV49aGlkZGVuXSk6bm90KFt0eXBlXj1zdWJtaXRdKSwgc2VsZWN0LCB0ZXh0YXJlYSIpKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHI9W10sdD17fSxuPXt9O3JldHVybltdLmZvckVhY2guY2FsbChlLmF0dHJpYnV0ZXMsKGZ1bmN0aW9uKGUpe2lmKC9eZGF0YS1wcmlzdGluZS0vLnRlc3QoZS5uYW1lKSl7dmFyIHM9ZS5uYW1lLnN1YnN0cigxNCksbz1zLm1hdGNoKGEpO2lmKG51bGwhPT1vKXt2YXIgbD12b2lkIDA9PT1vWzFdPyJlbiI6b1sxXTtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eShsKXx8KG5bbF09e30pLHZvaWQobltsXVtzLnNsaWNlKDAscy5sZW5ndGgtb1swXS5sZW5ndGgpXT1lLnZhbHVlKX0idHlwZSI9PT1zJiYocz1lLnZhbHVlKSxjKHIsdCxzLGUudmFsdWUpfWVsc2V+aS5pbmRleE9mKGUubmFtZSk\/YyhyLHQsZS5uYW1lLGUudmFsdWUpOiJ0eXBlIj09PWUubmFtZSYmYyhyLHQsZS52YWx1ZSl9KSksci5zb3J0KChmdW5jdGlvbihlLHIpe3JldHVybiByLnByaW9yaXR5LWUucHJpb3JpdHl9KSksZi5saXZlJiZlLmFkZEV2ZW50TGlzdGVuZXIoflsicmFkaW8iLCJjaGVja2JveCJdLmluZGV4T2YoZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSk\/ImNoYW5nZSI6ImlucHV0IixmdW5jdGlvbihlKXtmLnZhbGlkYXRlKGUudGFyZ2V0KX0uYmluZChmKSksZS5wcmlzdGluZT17aW5wdXQ6ZSx2YWxpZGF0b3JzOnIscGFyYW1zOnQsbWVzc2FnZXM6bixzZWxmOmZ9fS5iaW5kKGYpKX0odCxzLHUpLGYudmFsaWRhdGU9ZnVuY3Rpb24oZSxyKXtyPWUmJiEwPT09cnx8ITA9PT1lO3ZhciB0PWYuZmllbGRzOyEwIT09ZSYmITEhPT1lJiYoZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P3Q9W2UucHJpc3RpbmVdOihlIGluc3RhbmNlb2YgTm9kZUxpc3R8fGUgaW5zdGFuY2VvZih3aW5kb3cuJHx8QXJyYXkpfHxlIGluc3RhbmNlb2YgQXJyYXkpJiYodD1BcnJheS5mcm9tKGUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJpc3RpbmV9KSkpKTtmb3IodmFyIG49ITAsaT0wO3RbaV07aSsrKXt2YXIgcz10W2ldO3Aocyk\/IXImJmgocyk6KG49ITEsIXImJmQocykpfXJldHVybiBufSxmLmdldEVycm9ycz1mdW5jdGlvbihlKXtpZighZSl7Zm9yKHZhciByPVtdLHQ9MDt0PGYuZmllbGRzLmxlbmd0aDt0Kyspe3ZhciBuPWYuZmllbGRzW3RdO24uZXJyb3JzLmxlbmd0aCYmci5wdXNoKHtpbnB1dDpuLmlucHV0LGVycm9yczpuLmVycm9yc30pfXJldHVybiByfXJldHVybiBlLnRhZ05hbWUmJiJzZWxlY3QiPT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCk\/ZS5wcmlzdGluZS5lcnJvcnM6ZS5sZW5ndGg\/ZVswXS5wcmlzdGluZS5lcnJvcnM6ZS5wcmlzdGluZS5lcnJvcnN9LGYuYWRkVmFsaWRhdG9yPWZ1bmN0aW9uKGUscix0LG4saSl7ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50PyhlLnByaXN0aW5lLnZhbGlkYXRvcnMucHVzaCh7Zm46cixtc2c6dCxwcmlvcml0eTpuLGhhbHQ6aX0pLGUucHJpc3RpbmUudmFsaWRhdG9ycy5zb3J0KChmdW5jdGlvbihlLHIpe3JldHVybiByLnByaW9yaXR5LWUucHJpb3JpdHl9KSkpOmNvbnNvbGUud2FybigiVGhlIHBhcmFtZXRlciBlbGVtIG11c3QgYmUgYSBkb20gZWxlbWVudCIpfSxmLmFkZEVycm9yPWZ1bmN0aW9uKGUscil7KGU9ZS5sZW5ndGg\/ZVswXTplKS5wcmlzdGluZS5lcnJvcnMucHVzaChyKSxkKGUucHJpc3RpbmUpfSxmLnJlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7Zi5maWVsZHNbZV07ZSsrKWYuZmllbGRzW2VdLmVycm9yRWxlbWVudHM9bnVsbDtBcnJheS5mcm9tKGYuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIucHJpc3RpbmUtZXJyb3IiKSkubWFwKChmdW5jdGlvbihlKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KSksQXJyYXkuZnJvbShmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgiLiIrZi5jb25maWcuY2xhc3NUbykpLm1hcCgoZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyksZS5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLmVycm9yQ2xhc3MpfSkpfSxmLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmLnJlc2V0KCksZi5maWVsZHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZGVsZXRlIGUuaW5wdXQucHJpc3RpbmV9KSksZi5maWVsZHM9W119LGYuc2V0R2xvYmFsQ29uZmlnPWZ1bmN0aW9uKGUpe249ZX0sZn1yZXR1cm4gdSgidGV4dCIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiEwfSxwcmlvcml0eTowfSksdSgicmVxdWlyZWQiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4icmFkaW8iPT09dGhpcy50eXBlfHwiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk6dm9pZCAwIT09ZSYmIiIhPT1lfSxwcmlvcml0eTo5OSxoYWx0OiEwfSksdSgiZW1haWwiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8cy50ZXN0KGUpfX0pLHUoIm51bWJlciIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiFlfHwhaXNOYU4ocGFyc2VGbG9hdChlKSl9LHByaW9yaXR5OjJ9KSx1KCJpbnRlZ2VyIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fC9eXGQrJC8udGVzdChlKX19KSx1KCJtaW5sZW5ndGgiLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHxlLmxlbmd0aD49cGFyc2VJbnQocil9fSksdSgibWF4bGVuZ3RoIix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8ZS5sZW5ndGg8PXBhcnNlSW50KHIpfX0pLHUoIm1pbiIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fCgiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk+PXBhcnNlSW50KHIpOnBhcnNlRmxvYXQoZSk+PXBhcnNlRmxvYXQocikpfX0pLHUoIm1heCIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fCgiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk8PXBhcnNlSW50KHIpOnBhcnNlRmxvYXQoZSk8PXBhcnNlRmxvYXQocikpfX0pLHUoInBhdHRlcm4iLHtmbjpmdW5jdGlvbihlLHIpe3ZhciB0PXIubWF0Y2gobmV3IFJlZ0V4cCgiXi8oLio\/KS8oW2dpbXldKikkIikpO3JldHVybiFlfHxuZXcgUmVnRXhwKHRbMV0sdFsyXSkudGVzdChlKX19KSx1KCJlcXVhbHMiLHtmbjpmdW5jdGlvbihlLHIpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocik7cmV0dXJuIHQmJighZSYmIXQudmFsdWV8fHQudmFsdWU9PT1lKX19KSxmLmFkZFZhbGlkYXRvcj1mdW5jdGlvbihlLHIsdCxuLGkpe3UoZSx7Zm46cixtc2c6dCxwcmlvcml0eTpuLGhhbHQ6aX0pfSxmLmFkZE1lc3NhZ2VzPWZ1bmN0aW9uKHIsdCl7dmFyIG49ZS5oYXNPd25Qcm9wZXJ0eShyKT9lW3JdOmVbcl09e307T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtuW2VdPXRbZV19KSl9LGYuc2V0TG9jYWxlPWZ1bmN0aW9uKGUpe289ZX0sZn0pKTsKCi8vRXh0ZW5zaW9uCi8vIEEgdmFsaWRhdG9yIHRvIGNoZWNrIGlmIHRoZSBpbnB1dCB2YWx1ZSBpcyB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UKLy8gVGhlIGdsb2JhbCB2YWxpZGF0b3IgbXVzdCBiZSBhZGRlZCBiZWZvcmUgY3JlYXRpbmcgdGhlIHByaXN0aW5lIGluc3RhbmNlCgovLyBQcmlzdGluZS5hZGRWYWxpZGF0b3IoInBob25lIiwgZnVuY3Rpb24ocGhvbmUpIHsKCi8vIAl2YXIgVmFsaWRBcmVhQ29kZXMgPSBbCi8vIAkJNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsCi8vIAkJNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0MywKLy8gCQk2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDIKLy8gCV07CgovLyAJcGhvbmUgPSBwaG9uZS5yZXBsYWNlKC9bXjAtOV0rL2dpLCAnJyk7Ci8vIAlpZih0eXBlb2YgZW1haWxIYW5kbGVyIT0ndW5kZWZpbmVkJyAmJiB0aGlzLmhhc0NsYXNzKCdyZXF1aXJlZCcpKSB7Ci8vIAkJZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PXRydWU7Ci8vIAl9Ci8vIAlpZiggcGhvbmVbMF0gPT0gJzEnICl7Ci8vIAkJcGhvbmUgPSBwaG9uZS5zdWJzdHJpbmcoIDEgKTsKLy8gCX0KCi8vIAl2YXIgYXJlYUNvZGUgPSBwYXJzZUludCggcGhvbmUuc3Vic3RyaW5nKDAsMykgKTsKCi8vIAlheGlvcy5nZXQoJ2h0dHBzOi8vYXV0b2F1YmFpbmUuY29tL3NlcnZpY2VzL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwJyx7Ci8vIAkJdGltZW91dDoyMDAwLAovLyAJCWRhdGFUeXBlOiAnanNvbicsCi8vIAkJcGFyYW1zOiB7cGhvbmU6IHBob25lfSwKLy8gCQlyZXNwb25zZVR5cGU6ICdqc29uJwovLyAJfSkKLy8gCS50aGVuKGZ1bmN0aW9uKHJlcykgewoKLy8gCQlpZiAodHlwZW9mIHJlcy5pc09rICE9PSAndW5kZWZpbmVkJyl7Ci8vIAkJCWlmIChyZXMucGhvbmVOdW1iZXJJc1ZhbGlkID09PSBmYWxzZSkgewovLyAJCQkJLy9jb25zb2xlLmxvZygncGhvbmUgJytwaG9uZSsnIGlzIGludmFsaWQnKTsKLy8gCQkJCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnICYmIGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSApIHsKLy8gCQkJCQllbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKzsKLy8gCQkJCX0KLy8gCQkJCXJldHVybiB0cnVlOwovLyAJCQl9Ci8vIAkJCX0gZWxzZSB7Ci8vIAkJCS8vdmFsaWRhdGUgYXJlYWNvZGUgYXQgbGVhc3QKLy8gCQkJaWYoIHR5cGVvZiBWYWxpZEFyZWFDb2Rlcy5pbmRleE9mICE9ICd1bmRlZmluZWQnICYmCVZhbGlkQXJlYUNvZGVzLmluZGV4T2YoIGFyZWFDb2RlICkgPT0gLTEgKXsKLy8gCQkJCXJldHVybiBmYWxzZTsKLy8gCQkJfQovLyAJCX0KCi8vIAl9KQovLyAJLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7Ci8vIAkJLy8gdmFsaWRhdGUgYXJlYWNvZGUgYXQgbGVhc3QKLy8gCQlpZiggdHlwZW9mIFZhbGlkQXJlYUNvZGVzLmluZGV4T2YgIT0gJ3VuZGVmaW5lZCcgJiYJVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiggYXJlYUNvZGUgKSA9PSAtMSApewovLyAJCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnCSYmIGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSkgZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKys7Ci8vIAkJCXJldHVybiBmYWxzZTsKLy8gCQl9Ci8vIAkJLy9jb25zb2xlLmxvZygidmFsaWRpdHkgdmFsaWRhdGVQaG9uZU51bWJlciBuZXR3b3JrIGVycm9yIik7CgovLyAJCXJldHVybiBmYWxzZTsKLy8gCX0pOwoKCgovLyB9LCAiVGhlIHZhbHVlICgkezB9KSBtdXN0IGJlIGJldHdlZW4gJHsxfSBhbmQgJHsyfSIsIDUsIGZhbHNlKTsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9mbGF0cGlja3IubWluLmpzICoqLwovKiBmbGF0cGlja3IgdjQuNi45LCwgQGxpY2Vuc2UgTUlUICovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKHQpOihlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLmZsYXRwaWNrcj10KCl9KHRoaXMsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuKGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxhPWFyZ3VtZW50cy5sZW5ndGg7bjxhO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiB0KCl7Zm9yKHZhciBlPTAsdD0wLG49YXJndW1lbnRzLmxlbmd0aDt0PG47dCsrKWUrPWFyZ3VtZW50c1t0XS5sZW5ndGg7dmFyIGE9QXJyYXkoZSksaT0wO2Zvcih0PTA7dDxuO3QrKylmb3IodmFyIG89YXJndW1lbnRzW3RdLHI9MCxsPW8ubGVuZ3RoO3I8bDtyKyssaSsrKWFbaV09b1tyXTtyZXR1cm4gYX12YXIgbj1bIm9uQ2hhbmdlIiwib25DbG9zZSIsIm9uRGF5Q3JlYXRlIiwib25EZXN0cm95Iiwib25LZXlEb3duIiwib25Nb250aENoYW5nZSIsIm9uT3BlbiIsIm9uUGFyc2VDb25maWciLCJvblJlYWR5Iiwib25WYWx1ZVVwZGF0ZSIsIm9uWWVhckNoYW5nZSIsIm9uUHJlQ2FsZW5kYXJQb3NpdGlvbiJdLGE9e19kaXNhYmxlOltdLGFsbG93SW5wdXQ6ITEsYWxsb3dJbnZhbGlkUHJlbG9hZDohMSxhbHRGb3JtYXQ6IkYgaiwgWSIsYWx0SW5wdXQ6ITEsYWx0SW5wdXRDbGFzczoiZm9ybS1jb250cm9sIGlucHV0IixhbmltYXRlOiJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYtMT09PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUiKSxhcmlhRGF0ZUZvcm1hdDoiRiBqLCBZIixhdXRvRmlsbERlZmF1bHRUaW1lOiEwLGNsaWNrT3BlbnM6ITAsY2xvc2VPblNlbGVjdDohMCxjb25qdW5jdGlvbjoiLCAiLGRhdGVGb3JtYXQ6IlktbS1kIixkZWZhdWx0SG91cjoxMixkZWZhdWx0TWludXRlOjAsZGVmYXVsdFNlY29uZHM6MCxkaXNhYmxlOltdLGRpc2FibGVNb2JpbGU6ITEsZW5hYmxlU2Vjb25kczohMSxlbmFibGVUaW1lOiExLGVycm9ySGFuZGxlcjpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybihlKX0sZ2V0V2VlazpmdW5jdGlvbihlKXt2YXIgdD1uZXcgRGF0ZShlLmdldFRpbWUoKSk7dC5zZXRIb3VycygwLDAsMCwwKSx0LnNldERhdGUodC5nZXREYXRlKCkrMy0odC5nZXREYXkoKSs2KSU3KTt2YXIgbj1uZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksMCw0KTtyZXR1cm4gMStNYXRoLnJvdW5kKCgodC5nZXRUaW1lKCktbi5nZXRUaW1lKCkpLzg2NGU1LTMrKG4uZ2V0RGF5KCkrNiklNykvNyl9LGhvdXJJbmNyZW1lbnQ6MSxpZ25vcmVkRm9jdXNFbGVtZW50czpbXSxpbmxpbmU6ITEsbG9jYWxlOiJkZWZhdWx0IixtaW51dGVJbmNyZW1lbnQ6NSxtb2RlOiJzaW5nbGUiLG1vbnRoU2VsZWN0b3JUeXBlOiJkcm9wZG93biIsbmV4dEFycm93OiI8c3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgdmlld0JveD0nMCAwIDE3IDE3Jz48Zz48L2c+PHBhdGggZD0nTTEzLjIwNyA4LjQ3MmwtNy44NTQgNy44NTQtMC43MDctMC43MDcgNy4xNDYtNy4xNDYtNy4xNDYtNy4xNDggMC43MDctMC43MDcgNy44NTQgNy44NTR6JyAvPjwvc3ZnPiIsbm9DYWxlbmRhcjohMSxub3c6bmV3IERhdGUsb25DaGFuZ2U6W10sb25DbG9zZTpbXSxvbkRheUNyZWF0ZTpbXSxvbkRlc3Ryb3k6W10sb25LZXlEb3duOltdLG9uTW9udGhDaGFuZ2U6W10sb25PcGVuOltdLG9uUGFyc2VDb25maWc6W10sb25SZWFkeTpbXSxvblZhbHVlVXBkYXRlOltdLG9uWWVhckNoYW5nZTpbXSxvblByZUNhbGVuZGFyUG9zaXRpb246W10scGx1Z2luczpbXSxwb3NpdGlvbjoiYXV0byIscG9zaXRpb25FbGVtZW50OnZvaWQgMCxwcmV2QXJyb3c6IjxzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2aWV3Qm94PScwIDAgMTcgMTcnPjxnPjwvZz48cGF0aCBkPSdNNS4yMDcgOC40NzFsNy4xNDYgNy4xNDctMC43MDcgMC43MDctNy44NTMtNy44NTQgNy44NTQtNy44NTMgMC43MDcgMC43MDctNy4xNDcgNy4xNDZ6JyAvPjwvc3ZnPiIsc2hvcnRoYW5kQ3VycmVudE1vbnRoOiExLHNob3dNb250aHM6MSxzdGF0aWM6ITEsdGltZV8yNGhyOiExLHdlZWtOdW1iZXJzOiExLHdyYXA6ITF9LGk9e3dlZWtkYXlzOntzaG9ydGhhbmQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxsb25naGFuZDpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LG1vbnRoczp7c2hvcnRoYW5kOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sbG9uZ2hhbmQ6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxkYXlzSW5Nb250aDpbMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGZpcnN0RGF5T2ZXZWVrOjAsb3JkaW5hbDpmdW5jdGlvbihlKXt2YXIgdD1lJTEwMDtpZih0PjMmJnQ8MjEpcmV0dXJuInRoIjtzd2l0Y2godCUxMCl7Y2FzZSAxOnJldHVybiJzdCI7Y2FzZSAyOnJldHVybiJuZCI7Y2FzZSAzOnJldHVybiJyZCI7ZGVmYXVsdDpyZXR1cm4idGgifX0scmFuZ2VTZXBhcmF0b3I6IiB0byAiLHdlZWtBYmJyZXZpYXRpb246IldrIixzY3JvbGxUaXRsZToiU2Nyb2xsIHRvIGluY3JlbWVudCIsdG9nZ2xlVGl0bGU6IkNsaWNrIHRvIHRvZ2dsZSIsYW1QTTpbIkFNIiwiUE0iXSx5ZWFyQXJpYUxhYmVsOiJZZWFyIixtb250aEFyaWFMYWJlbDoiTW9udGgiLGhvdXJBcmlhTGFiZWw6IkhvdXIiLG1pbnV0ZUFyaWFMYWJlbDoiTWludXRlIix0aW1lXzI0aHI6ITF9LG89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9MiksKCIwMDAiK2UpLnNsaWNlKC0xKnQpfSxyPWZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZT8xOjB9O2Z1bmN0aW9uIGwoZSx0KXt2YXIgbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dChuKSxuPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkoYSxhcmd1bWVudHMpfSksdCl9fXZhciBjPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgQXJyYXk\/ZTpbZV19O2Z1bmN0aW9uIGQoZSx0LG4pe2lmKCEwPT09bilyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKHQpO2UuY2xhc3NMaXN0LnJlbW92ZSh0KX1mdW5jdGlvbiBzKGUsdCxuKXt2YXIgYT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gdD10fHwiIixuPW58fCIiLGEuY2xhc3NOYW1lPXQsdm9pZCAwIT09biYmKGEudGV4dENvbnRlbnQ9biksYX1mdW5jdGlvbiB1KGUpe2Zvcig7ZS5maXJzdENoaWxkOyllLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gZihlLHQpe3JldHVybiB0KGUpP2U6ZS5wYXJlbnROb2RlP2YoZS5wYXJlbnROb2RlLHQpOnZvaWQgMH1mdW5jdGlvbiBtKGUsdCl7dmFyIG49cygiZGl2IiwibnVtSW5wdXRXcmFwcGVyIiksYT1zKCJpbnB1dCIsIm51bUlucHV0ICIrZSksaT1zKCJzcGFuIiwiYXJyb3dVcCIpLG89cygic3BhbiIsImFycm93RG93biIpO2lmKC0xPT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDkuMCIpP2EudHlwZT0ibnVtYmVyIjooYS50eXBlPSJ0ZXh0IixhLnBhdHRlcm49IlxcZCoiKSx2b2lkIDAhPT10KWZvcih2YXIgciBpbiB0KWEuc2V0QXR0cmlidXRlKHIsdFtyXSk7cmV0dXJuIG4uYXBwZW5kQ2hpbGQoYSksbi5hcHBlbmRDaGlsZChpKSxuLmFwcGVuZENoaWxkKG8pLG59ZnVuY3Rpb24gZyhlKXt0cnl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUuY29tcG9zZWRQYXRoP2UuY29tcG9zZWRQYXRoKClbMF06ZS50YXJnZXR9Y2F0Y2godCl7cmV0dXJuIGUudGFyZ2V0fX12YXIgcD1mdW5jdGlvbigpe30saD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4ubW9udGhzW3Q\/InNob3J0aGFuZCI6ImxvbmdoYW5kIl1bZV19LHY9e0Q6cCxGOmZ1bmN0aW9uKGUsdCxuKXtlLnNldE1vbnRoKG4ubW9udGhzLmxvbmdoYW5kLmluZGV4T2YodCkpfSxHOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0sSDpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LEo6ZnVuY3Rpb24oZSx0KXtlLnNldERhdGUocGFyc2VGbG9hdCh0KSl9LEs6ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0SG91cnMoZS5nZXRIb3VycygpJTEyKzEyKnIobmV3IFJlZ0V4cChuLmFtUE1bMV0sImkiKS50ZXN0KHQpKSl9LE06ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0TW9udGgobi5tb250aHMuc2hvcnRoYW5kLmluZGV4T2YodCkpfSxTOmZ1bmN0aW9uKGUsdCl7ZS5zZXRTZWNvbmRzKHBhcnNlRmxvYXQodCkpfSxVOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKDFlMypwYXJzZUZsb2F0KHQpKX0sVzpmdW5jdGlvbihlLHQsbil7dmFyIGE9cGFyc2VJbnQodCksaT1uZXcgRGF0ZShlLmdldEZ1bGxZZWFyKCksMCwyKzcqKGEtMSksMCwwLDAsMCk7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1pLmdldERheSgpK24uZmlyc3REYXlPZldlZWspLGl9LFk6ZnVuY3Rpb24oZSx0KXtlLnNldEZ1bGxZZWFyKHBhcnNlRmxvYXQodCkpfSxaOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKHQpfSxkOmZ1bmN0aW9uKGUsdCl7ZS5zZXREYXRlKHBhcnNlRmxvYXQodCkpfSxoOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0saTpmdW5jdGlvbihlLHQpe2Uuc2V0TWludXRlcyhwYXJzZUZsb2F0KHQpKX0sajpmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShwYXJzZUZsb2F0KHQpKX0sbDpwLG06ZnVuY3Rpb24oZSx0KXtlLnNldE1vbnRoKHBhcnNlRmxvYXQodCktMSl9LG46ZnVuY3Rpb24oZSx0KXtlLnNldE1vbnRoKHBhcnNlRmxvYXQodCktMSl9LHM6ZnVuY3Rpb24oZSx0KXtlLnNldFNlY29uZHMocGFyc2VGbG9hdCh0KSl9LHU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IERhdGUocGFyc2VGbG9hdCh0KSl9LHc6cCx5OmZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcigyZTMrcGFyc2VGbG9hdCh0KSl9fSxEPXtEOiIoXFx3KykiLEY6IihcXHcrKSIsRzoiKFxcZFxcZHxcXGQpIixIOiIoXFxkXFxkfFxcZCkiLEo6IihcXGRcXGR8XFxkKVxcdysiLEs6IiIsTToiKFxcdyspIixTOiIoXFxkXFxkfFxcZCkiLFU6IiguKykiLFc6IihcXGRcXGR8XFxkKSIsWToiKFxcZHs0fSkiLFo6IiguKykiLGQ6IihcXGRcXGR8XFxkKSIsaDoiKFxcZFxcZHxcXGQpIixpOiIoXFxkXFxkfFxcZCkiLGo6IihcXGRcXGR8XFxkKSIsbDoiKFxcdyspIixtOiIoXFxkXFxkfFxcZCkiLG46IihcXGRcXGR8XFxkKSIsczoiKFxcZFxcZHxcXGQpIix1OiIoLispIix3OiIoXFxkXFxkfFxcZCkiLHk6IihcXGR7Mn0pIn0sdz17WjpmdW5jdGlvbihlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfSxEOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdC53ZWVrZGF5cy5zaG9ydGhhbmRbdy53KGUsdCxuKV19LEY6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKHcubihlLHQsbiktMSwhMSx0KX0sRzpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG8ody5oKGUsdCxuKSl9LEg6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRIb3VycygpKX0sSjpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDAhPT10Lm9yZGluYWw\/ZS5nZXREYXRlKCkrdC5vcmRpbmFsKGUuZ2V0RGF0ZSgpKTplLmdldERhdGUoKX0sSzpmdW5jdGlvbihlLHQpe3JldHVybiB0LmFtUE1bcihlLmdldEhvdXJzKCk+MTEpXX0sTTpmdW5jdGlvbihlLHQpe3JldHVybiBoKGUuZ2V0TW9udGgoKSwhMCx0KX0sUzpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldFNlY29uZHMoKSl9LFU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VGltZSgpLzFlM30sVzpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG4uZ2V0V2VlayhlKX0sWTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldEZ1bGxZZWFyKCksNCl9LGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXREYXRlKCkpfSxoOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEhvdXJzKCklMTI\/ZS5nZXRIb3VycygpJTEyOjEyfSxpOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0TWludXRlcygpKX0sajpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXREYXRlKCl9LGw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC53ZWVrZGF5cy5sb25naGFuZFtlLmdldERheSgpXX0sbTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldE1vbnRoKCkrMSl9LG46ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0TW9udGgoKSsxfSxzOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFNlY29uZHMoKX0sdTpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRUaW1lKCl9LHc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0RGF5KCl9LHk6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlLmdldEZ1bGxZZWFyKCkpLnN1YnN0cmluZygyKX19LGI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb25maWcsbj12b2lkIDA9PT10P2E6dCxvPWUubDEwbixyPXZvaWQgMD09PW8\/aTpvLGw9ZS5pc01vYmlsZSxjPXZvaWQgMCE9PWwmJmw7cmV0dXJuIGZ1bmN0aW9uKGUsdCxhKXt2YXIgaT1hfHxyO3JldHVybiB2b2lkIDA9PT1uLmZvcm1hdERhdGV8fGM\/dC5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0LGEsbyl7cmV0dXJuIHdbdF0mJiJcXCIhPT1vW2EtMV0\/d1t0XShlLGksbik6IlxcIiE9PXQ\/dDoiIn0pKS5qb2luKCIiKTpuLmZvcm1hdERhdGUoZSx0LGkpfX0sQz1mdW5jdGlvbihlKXt2YXIgdD1lLmNvbmZpZyxuPXZvaWQgMD09PXQ\/YTp0LG89ZS5sMTBuLHI9dm9pZCAwPT09bz9pOm87cmV0dXJuIGZ1bmN0aW9uKGUsdCxpLG8pe2lmKDA9PT1lfHxlKXt2YXIgbCxjPW98fHIsZD1lO2lmKGUgaW5zdGFuY2VvZiBEYXRlKWw9bmV3IERhdGUoZS5nZXRUaW1lKCkpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBlJiZ2b2lkIDAhPT1lLnRvRml4ZWQpbD1uZXcgRGF0ZShlKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHM9dHx8KG58fGEpLmRhdGVGb3JtYXQsdT1TdHJpbmcoZSkudHJpbSgpO2lmKCJ0b2RheSI9PT11KWw9bmV3IERhdGUsaT0hMDtlbHNlIGlmKC9aJC8udGVzdCh1KXx8L0dNVCQvLnRlc3QodSkpbD1uZXcgRGF0ZShlKTtlbHNlIGlmKG4mJm4ucGFyc2VEYXRlKWw9bi5wYXJzZURhdGUoZSxzKTtlbHNle2w9biYmbi5ub0NhbGVuZGFyP25ldyBEYXRlKChuZXcgRGF0ZSkuc2V0SG91cnMoMCwwLDAsMCkpOm5ldyBEYXRlKChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSwwLDEsMCwwLDAsMCk7Zm9yKHZhciBmPXZvaWQgMCxtPVtdLGc9MCxwPTAsaD0iIjtnPHMubGVuZ3RoO2crKyl7dmFyIHc9c1tnXSxiPSJcXCI9PT13LEM9IlxcIj09PXNbZy0xXXx8YjtpZihEW3ddJiYhQyl7aCs9RFt3XTt2YXIgTT1uZXcgUmVnRXhwKGgpLmV4ZWMoZSk7TSYmKGY9ITApJiZtWyJZIiE9PXc\/InB1c2giOiJ1bnNoaWZ0Il0oe2ZuOnZbd10sdmFsOk1bKytwXX0pfWVsc2UgYnx8KGgrPSIuIik7bS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLmZuLG49ZS52YWw7cmV0dXJuIGw9dChsLG4sYyl8fGx9KSl9bD1mP2w6dm9pZCAwfX1pZihsIGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKGwuZ2V0VGltZSgpKSlyZXR1cm4hMD09PWkmJmwuc2V0SG91cnMoMCwwLDAsMCksbDtuLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgZGF0ZSBwcm92aWRlZDogIitkKSl9fX07ZnVuY3Rpb24gTShlLHQsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPSEwKSwhMSE9PW4\/bmV3IERhdGUoZS5nZXRUaW1lKCkpLnNldEhvdXJzKDAsMCwwLDApLW5ldyBEYXRlKHQuZ2V0VGltZSgpKS5zZXRIb3VycygwLDAsMCwwKTplLmdldFRpbWUoKS10LmdldFRpbWUoKX12YXIgeT04NjRlNTtmdW5jdGlvbiB4KGUpe3ZhciB0PWUuZGVmYXVsdEhvdXIsbj1lLmRlZmF1bHRNaW51dGUsYT1lLmRlZmF1bHRTZWNvbmRzO2lmKHZvaWQgMCE9PWUubWluRGF0ZSl7dmFyIGk9ZS5taW5EYXRlLmdldEhvdXJzKCksbz1lLm1pbkRhdGUuZ2V0TWludXRlcygpLHI9ZS5taW5EYXRlLmdldFNlY29uZHMoKTt0PGkmJih0PWkpLHQ9PT1pJiZuPG8mJihuPW8pLHQ9PT1pJiZuPT09byYmYTxyJiYoYT1lLm1pbkRhdGUuZ2V0U2Vjb25kcygpKX1pZih2b2lkIDAhPT1lLm1heERhdGUpe3ZhciBsPWUubWF4RGF0ZS5nZXRIb3VycygpLGM9ZS5tYXhEYXRlLmdldE1pbnV0ZXMoKTsodD1NYXRoLm1pbih0LGwpKT09PWwmJihuPU1hdGgubWluKGMsbikpLHQ9PT1sJiZuPT09YyYmKGE9ZS5tYXhEYXRlLmdldFNlY29uZHMoKSl9cmV0dXJue2hvdXJzOnQsbWludXRlczpuLHNlY29uZHM6YX19ImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5hc3NpZ24mJihPYmplY3QuYXNzaWduPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO2lmKCFlKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Iik7Zm9yKHZhciBhPWZ1bmN0aW9uKHQpe3QmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3JldHVybiBlW25dPXRbbl19KSl9LGk9MCxvPXQ7aTxvLmxlbmd0aDtpKyspe3ZhciByPW9baV07YShyKX1yZXR1cm4gZX0pO2Z1bmN0aW9uIEUocCx2KXt2YXIgdz17Y29uZmlnOmUoZSh7fSxhKSxULmRlZmF1bHRDb25maWcpLGwxMG46aX07ZnVuY3Rpb24gRShlKXtyZXR1cm4gZS5iaW5kKHcpfWZ1bmN0aW9uIGsoKXt2YXIgZT13LmNvbmZpZzshMT09PWUud2Vla051bWJlcnMmJjE9PT1lLnNob3dNb250aHN8fCEwIT09ZS5ub0NhbGVuZGFyJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe2lmKHZvaWQgMCE9PXcuY2FsZW5kYXJDb250YWluZXImJih3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJibG9jayIpLHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lcil7dmFyIHQ9KHcuZGF5cy5vZmZzZXRXaWR0aCsxKSplLnNob3dNb250aHM7dy5kYXlzQ29udGFpbmVyLnN0eWxlLndpZHRoPXQrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLndpZHRoPXQrKHZvaWQgMCE9PXcud2Vla1dyYXBwZXI\/dy53ZWVrV3JhcHBlci5vZmZzZXRXaWR0aDowKSsicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxpdHkiKSx3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJkaXNwbGF5Iil9fSkpfWZ1bmN0aW9uIEkoZSl7aWYoMD09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgpe3ZhciB0PXZvaWQgMD09PXcuY29uZmlnLm1pbkRhdGV8fE0obmV3IERhdGUsdy5jb25maWcubWluRGF0ZSk+PTA\/bmV3IERhdGU6bmV3IERhdGUody5jb25maWcubWluRGF0ZS5nZXRUaW1lKCkpLG49eCh3LmNvbmZpZyk7dC5zZXRIb3VycyhuLmhvdXJzLG4ubWludXRlcyxuLnNlY29uZHMsdC5nZXRNaWxsaXNlY29uZHMoKSksdy5zZWxlY3RlZERhdGVzPVt0XSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj10fXZvaWQgMCE9PWUmJiJibHVyIiE9PWUudHlwZSYmZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PSJrZXlkb3duIj09PWUudHlwZSxuPWcoZSksYT1uO3ZvaWQgMCE9PXcuYW1QTSYmbj09PXcuYW1QTSYmKHcuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVtyKHcuYW1QTS50ZXh0Q29udGVudD09PXcubDEwbi5hbVBNWzBdKV0pO3ZhciBpPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIm1pbiIpKSxsPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIm1heCIpKSxjPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoInN0ZXAiKSksZD1wYXJzZUludChhLnZhbHVlLDEwKSxzPWUuZGVsdGF8fCh0PzM4PT09ZS53aGljaD8xOi0xOjApLHU9ZCtjKnM7aWYodm9pZCAwIT09YS52YWx1ZSYmMj09PWEudmFsdWUubGVuZ3RoKXt2YXIgZj1hPT09dy5ob3VyRWxlbWVudCxtPWE9PT13Lm1pbnV0ZUVsZW1lbnQ7dTxpPyh1PWwrdStyKCFmKSsocihmKSYmcighdy5hbVBNKSksbSYmaih2b2lkIDAsLTEsdy5ob3VyRWxlbWVudCkpOnU+bCYmKHU9YT09PXcuaG91ckVsZW1lbnQ\/dS1sLXIoIXcuYW1QTSk6aSxtJiZqKHZvaWQgMCwxLHcuaG91ckVsZW1lbnQpKSx3LmFtUE0mJmYmJigxPT09Yz91K2Q9PT0yMzpNYXRoLmFicyh1LWQpPmMpJiYody5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNW3Iody5hbVBNLnRleHRDb250ZW50PT09dy5sMTBuLmFtUE1bMF0pXSksYS52YWx1ZT1vKHUpfX0oZSk7dmFyIGE9dy5faW5wdXQudmFsdWU7UygpLGJlKCksdy5faW5wdXQudmFsdWUhPT1hJiZ3Ll9kZWJvdW5jZWRDaGFuZ2UoKX1mdW5jdGlvbiBTKCl7aWYodm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50KXt2YXIgZSx0LG49KHBhcnNlSW50KHcuaG91ckVsZW1lbnQudmFsdWUuc2xpY2UoLTIpLDEwKXx8MCklMjQsYT0ocGFyc2VJbnQody5taW51dGVFbGVtZW50LnZhbHVlLDEwKXx8MCklNjAsaT12b2lkIDAhPT13LnNlY29uZEVsZW1lbnQ\/KHBhcnNlSW50KHcuc2Vjb25kRWxlbWVudC52YWx1ZSwxMCl8fDApJTYwOjA7dm9pZCAwIT09dy5hbVBNJiYoZT1uLHQ9dy5hbVBNLnRleHRDb250ZW50LG49ZSUxMisxMipyKHQ9PT13LmwxMG4uYW1QTVsxXSkpO3ZhciBvPXZvaWQgMCE9PXcuY29uZmlnLm1pblRpbWV8fHcuY29uZmlnLm1pbkRhdGUmJncubWluRGF0ZUhhc1RpbWUmJncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiYwPT09TSh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaix3LmNvbmZpZy5taW5EYXRlLCEwKTtpZih2b2lkIDAhPT13LmNvbmZpZy5tYXhUaW1lfHx3LmNvbmZpZy5tYXhEYXRlJiZ3Lm1heERhdGVIYXNUaW1lJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmMD09PU0ody5sYXRlc3RTZWxlY3RlZERhdGVPYmosdy5jb25maWcubWF4RGF0ZSwhMCkpe3ZhciBsPXZvaWQgMCE9PXcuY29uZmlnLm1heFRpbWU\/dy5jb25maWcubWF4VGltZTp3LmNvbmZpZy5tYXhEYXRlOyhuPU1hdGgubWluKG4sbC5nZXRIb3VycygpKSk9PT1sLmdldEhvdXJzKCkmJihhPU1hdGgubWluKGEsbC5nZXRNaW51dGVzKCkpKSxhPT09bC5nZXRNaW51dGVzKCkmJihpPU1hdGgubWluKGksbC5nZXRTZWNvbmRzKCkpKX1pZihvKXt2YXIgYz12b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lP3cuY29uZmlnLm1pblRpbWU6dy5jb25maWcubWluRGF0ZTsobj1NYXRoLm1heChuLGMuZ2V0SG91cnMoKSkpPT09Yy5nZXRIb3VycygpJiZhPGMuZ2V0TWludXRlcygpJiYoYT1jLmdldE1pbnV0ZXMoKSksYT09PWMuZ2V0TWludXRlcygpJiYoaT1NYXRoLm1heChpLGMuZ2V0U2Vjb25kcygpKSl9TyhuLGEsaSl9fWZ1bmN0aW9uIF8oZSl7dmFyIHQ9ZXx8dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo7dCYmTyh0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCkpfWZ1bmN0aW9uIE8oZSx0LG4pe3ZvaWQgMCE9PXcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5zZXRIb3VycyhlJTI0LHQsbnx8MCwwKSx3LmhvdXJFbGVtZW50JiZ3Lm1pbnV0ZUVsZW1lbnQmJiF3LmlzTW9iaWxlJiYody5ob3VyRWxlbWVudC52YWx1ZT1vKHcuY29uZmlnLnRpbWVfMjRocj9lOigxMitlKSUxMisxMipyKGUlMTI9PTApKSx3Lm1pbnV0ZUVsZW1lbnQudmFsdWU9byh0KSx2b2lkIDAhPT13LmFtUE0mJih3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bcihlPj0xMildKSx2b2lkIDAhPT13LnNlY29uZEVsZW1lbnQmJih3LnNlY29uZEVsZW1lbnQudmFsdWU9byhuKSkpfWZ1bmN0aW9uIEYoZSl7dmFyIHQ9ZyhlKSxuPXBhcnNlSW50KHQudmFsdWUpKyhlLmRlbHRhfHwwKTsobi8xZTM+MXx8IkVudGVyIj09PWUua2V5JiYhL1teXGRdLy50ZXN0KG4udG9TdHJpbmcoKSkpJiZRKG4pfWZ1bmN0aW9uIEEoZSx0LG4sYSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBBcnJheT90LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBBKGUsdCxuLGEpfSkpOmUgaW5zdGFuY2VvZiBBcnJheT9lLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBBKGUsdCxuLGEpfSkpOihlLmFkZEV2ZW50TGlzdGVuZXIodCxuLGEpLHZvaWQgdy5faGFuZGxlcnMucHVzaCh7cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfX0pKX1mdW5jdGlvbiBOKCl7cGUoIm9uQ2hhbmdlIil9ZnVuY3Rpb24gUChlLHQpe3ZhciBuPXZvaWQgMCE9PWU\/dy5wYXJzZURhdGUoZSk6dy5sYXRlc3RTZWxlY3RlZERhdGVPYmp8fCh3LmNvbmZpZy5taW5EYXRlJiZ3LmNvbmZpZy5taW5EYXRlPncubm93P3cuY29uZmlnLm1pbkRhdGU6dy5jb25maWcubWF4RGF0ZSYmdy5jb25maWcubWF4RGF0ZTx3Lm5vdz93LmNvbmZpZy5tYXhEYXRlOncubm93KSxhPXcuY3VycmVudFllYXIsaT13LmN1cnJlbnRNb250aDt0cnl7dm9pZCAwIT09biYmKHcuY3VycmVudFllYXI9bi5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPW4uZ2V0TW9udGgoKSl9Y2F0Y2goZSl7ZS5tZXNzYWdlPSJJbnZhbGlkIGRhdGUgc3VwcGxpZWQ6ICIrbix3LmNvbmZpZy5lcnJvckhhbmRsZXIoZSl9dCYmdy5jdXJyZW50WWVhciE9PWEmJihwZSgib25ZZWFyQ2hhbmdlIiksSygpKSwhdHx8dy5jdXJyZW50WWVhcj09PWEmJncuY3VycmVudE1vbnRoPT09aXx8cGUoIm9uTW9udGhDaGFuZ2UiKSx3LnJlZHJhdygpfWZ1bmN0aW9uIFkoZSl7dmFyIHQ9ZyhlKTt+dC5jbGFzc05hbWUuaW5kZXhPZigiYXJyb3ciKSYmaihlLHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd1VwIik\/MTotMSl9ZnVuY3Rpb24gaihlLHQsbil7dmFyIGE9ZSYmZyhlKSxpPW58fGEmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsbz1oZSgiaW5jcmVtZW50Iik7by5kZWx0YT10LGkmJmkuZGlzcGF0Y2hFdmVudChvKX1mdW5jdGlvbiBIKGUsdCxuLGEpe3ZhciBpPVgodCwhMCksbz1zKCJzcGFuIiwiZmxhdHBpY2tyLWRheSAiK2UsdC5nZXREYXRlKCkudG9TdHJpbmcoKSk7cmV0dXJuIG8uZGF0ZU9iaj10LG8uJGk9YSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5mb3JtYXREYXRlKHQsdy5jb25maWcuYXJpYURhdGVGb3JtYXQpKSwtMT09PWUuaW5kZXhPZigiaGlkZGVuIikmJjA9PT1NKHQsdy5ub3cpJiYody50b2RheURhdGVFbGVtPW8sby5jbGFzc0xpc3QuYWRkKCJ0b2RheSIpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWN1cnJlbnQiLCJkYXRlIikpLGk\/KG8udGFiSW5kZXg9LTEsdmUodCkmJihvLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIiksdy5zZWxlY3RlZERhdGVFbGVtPW8sInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJihkKG8sInN0YXJ0UmFuZ2UiLHcuc2VsZWN0ZWREYXRlc1swXSYmMD09PU0odCx3LnNlbGVjdGVkRGF0ZXNbMF0sITApKSxkKG8sImVuZFJhbmdlIix3LnNlbGVjdGVkRGF0ZXNbMV0mJjA9PT1NKHQsdy5zZWxlY3RlZERhdGVzWzFdLCEwKSksIm5leHRNb250aERheSI9PT1lJiZvLmNsYXNzTGlzdC5hZGQoImluUmFuZ2UiKSkpKTpvLmNsYXNzTGlzdC5hZGQoImZsYXRwaWNrci1kaXNhYmxlZCIpLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZmdW5jdGlvbihlKXtyZXR1cm4hKCJyYW5nZSIhPT13LmNvbmZpZy5tb2RlfHx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPDIpJiYoTShlLHcuc2VsZWN0ZWREYXRlc1swXSk+PTAmJk0oZSx3LnNlbGVjdGVkRGF0ZXNbMV0pPD0wKX0odCkmJiF2ZSh0KSYmby5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIiksdy53ZWVrTnVtYmVycyYmMT09PXcuY29uZmlnLnNob3dNb250aHMmJiJwcmV2TW9udGhEYXkiIT09ZSYmbiU3PT0xJiZ3LndlZWtOdW1iZXJzLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIiwiPHNwYW4gY2xhc3M9J2ZsYXRwaWNrci1kYXknPiIrdy5jb25maWcuZ2V0V2Vlayh0KSsiPC9zcGFuPiIpLHBlKCJvbkRheUNyZWF0ZSIsbyksb31mdW5jdGlvbiBMKGUpe2UuZm9jdXMoKSwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmYWUoZSl9ZnVuY3Rpb24gVyhlKXtmb3IodmFyIHQ9ZT4wPzA6dy5jb25maWcuc2hvd01vbnRocy0xLG49ZT4wP3cuY29uZmlnLnNob3dNb250aHM6LTEsYT10O2EhPW47YSs9ZSlmb3IodmFyIGk9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW2FdLG89ZT4wPzA6aS5jaGlsZHJlbi5sZW5ndGgtMSxyPWU+MD9pLmNoaWxkcmVuLmxlbmd0aDotMSxsPW87bCE9cjtsKz1lKXt2YXIgYz1pLmNoaWxkcmVuW2xdO2lmKC0xPT09Yy5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJlgoYy5kYXRlT2JqKSlyZXR1cm4gY319ZnVuY3Rpb24gUihlLHQpe3ZhciBuPWVlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fGRvY3VtZW50LmJvZHkpLGE9dm9pZCAwIT09ZT9lOm4\/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDp2b2lkIDAhPT13LnNlbGVjdGVkRGF0ZUVsZW0mJmVlKHcuc2VsZWN0ZWREYXRlRWxlbSk\/dy5zZWxlY3RlZERhdGVFbGVtOnZvaWQgMCE9PXcudG9kYXlEYXRlRWxlbSYmZWUody50b2RheURhdGVFbGVtKT93LnRvZGF5RGF0ZUVsZW06Vyh0PjA\/MTotMSk7dm9pZCAwPT09YT93Ll9pbnB1dC5mb2N1cygpOm4\/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49LTE9PT1lLmNsYXNzTmFtZS5pbmRleE9mKCJNb250aCIpP2UuZGF0ZU9iai5nZXRNb250aCgpOncuY3VycmVudE1vbnRoLGE9dD4wP3cuY29uZmlnLnNob3dNb250aHM6LTEsaT10PjA\/MTotMSxvPW4tdy5jdXJyZW50TW9udGg7byE9YTtvKz1pKWZvcih2YXIgcj13LmRheXNDb250YWluZXIuY2hpbGRyZW5bb10sbD1uLXcuY3VycmVudE1vbnRoPT09bz9lLiRpK3Q6dDwwP3IuY2hpbGRyZW4ubGVuZ3RoLTE6MCxjPXIuY2hpbGRyZW4ubGVuZ3RoLGQ9bDtkPj0wJiZkPGMmJmQhPSh0PjA\/YzotMSk7ZCs9aSl7dmFyIHM9ci5jaGlsZHJlbltkXTtpZigtMT09PXMuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiZYKHMuZGF0ZU9iaikmJk1hdGguYWJzKGUuJGktZCk+PU1hdGguYWJzKHQpKXJldHVybiBMKHMpfXcuY2hhbmdlTW9udGgoaSksUihXKGkpLDApfShhLHQpOkwoYSl9ZnVuY3Rpb24gQihlLHQpe2Zvcih2YXIgbj0obmV3IERhdGUoZSx0LDEpLmdldERheSgpLXcubDEwbi5maXJzdERheU9mV2Vlays3KSU3LGE9dy51dGlscy5nZXREYXlzSW5Nb250aCgodC0xKzEyKSUxMixlKSxpPXcudXRpbHMuZ2V0RGF5c0luTW9udGgodCxlKSxvPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscj13LmNvbmZpZy5zaG93TW9udGhzPjEsbD1yPyJwcmV2TW9udGhEYXkgaGlkZGVuIjoicHJldk1vbnRoRGF5IixjPXI\/Im5leHRNb250aERheSBoaWRkZW4iOiJuZXh0TW9udGhEYXkiLGQ9YSsxLW4sdT0wO2Q8PWE7ZCsrLHUrKylvLmFwcGVuZENoaWxkKEgobCxuZXcgRGF0ZShlLHQtMSxkKSxkLHUpKTtmb3IoZD0xO2Q8PWk7ZCsrLHUrKylvLmFwcGVuZENoaWxkKEgoIiIsbmV3IERhdGUoZSx0LGQpLGQsdSkpO2Zvcih2YXIgZj1pKzE7Zjw9NDItbiYmKDE9PT13LmNvbmZpZy5zaG93TW9udGhzfHx1JTchPTApO2YrKyx1Kyspby5hcHBlbmRDaGlsZChIKGMsbmV3IERhdGUoZSx0KzEsZiVpKSxmLHUpKTt2YXIgbT1zKCJkaXYiLCJkYXlDb250YWluZXIiKTtyZXR1cm4gbS5hcHBlbmRDaGlsZChvKSxtfWZ1bmN0aW9uIEooKXtpZih2b2lkIDAhPT13LmRheXNDb250YWluZXIpe3Uody5kYXlzQ29udGFpbmVyKSx3LndlZWtOdW1iZXJzJiZ1KHcud2Vla051bWJlcnMpO2Zvcih2YXIgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdD0wO3Q8dy5jb25maWcuc2hvd01vbnRoczt0Kyspe3ZhciBuPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdy5jdXJyZW50TW9udGgsMSk7bi5zZXRNb250aCh3LmN1cnJlbnRNb250aCt0KSxlLmFwcGVuZENoaWxkKEIobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSkpfXcuZGF5c0NvbnRhaW5lci5hcHBlbmRDaGlsZChlKSx3LmRheXM9dy5kYXlzQ29udGFpbmVyLmZpcnN0Q2hpbGQsInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJjE9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiZhZSgpfX1mdW5jdGlvbiBLKCl7aWYoISh3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJkcm9wZG93biIhPT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZSkpe3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiEodm9pZCAwIT09dy5jb25maWcubWluRGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSYmZTx3LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCkpJiYhKHZvaWQgMCE9PXcuY29uZmlnLm1heERhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkmJmU+dy5jb25maWcubWF4RGF0ZS5nZXRNb250aCgpKX07dy5tb250aHNEcm9wZG93bkNvbnRhaW5lci50YWJJbmRleD0tMSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLmlubmVySFRNTD0iIjtmb3IodmFyIHQ9MDt0PDEyO3QrKylpZihlKHQpKXt2YXIgbj1zKCJvcHRpb24iLCJmbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aCIpO24udmFsdWU9bmV3IERhdGUody5jdXJyZW50WWVhcix0KS5nZXRNb250aCgpLnRvU3RyaW5nKCksbi50ZXh0Q29udGVudD1oKHQsdy5jb25maWcuc2hvcnRoYW5kQ3VycmVudE1vbnRoLHcubDEwbiksbi50YWJJbmRleD0tMSx3LmN1cnJlbnRNb250aD09PXQmJihuLnNlbGVjdGVkPSEwKSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLmFwcGVuZENoaWxkKG4pfX19ZnVuY3Rpb24gVSgpe3ZhciBlLHQ9cygiZGl2IiwiZmxhdHBpY2tyLW1vbnRoIiksbj13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3cuY29uZmlnLnNob3dNb250aHM+MXx8InN0YXRpYyI9PT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZT9lPXMoInNwYW4iLCJjdXItbW9udGgiKToody5tb250aHNEcm9wZG93bkNvbnRhaW5lcj1zKCJzZWxlY3QiLCJmbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHMiKSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5sMTBuLm1vbnRoQXJpYUxhYmVsKSxBKHcubW9udGhzRHJvcGRvd25Db250YWluZXIsImNoYW5nZSIsKGZ1bmN0aW9uKGUpe3ZhciB0PWcoZSksbj1wYXJzZUludCh0LnZhbHVlLDEwKTt3LmNoYW5nZU1vbnRoKG4tdy5jdXJyZW50TW9udGgpLHBlKCJvbk1vbnRoQ2hhbmdlIil9KSksSygpLGU9dy5tb250aHNEcm9wZG93bkNvbnRhaW5lcik7dmFyIGE9bSgiY3VyLXllYXIiLHt0YWJpbmRleDoiLTEifSksaT1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO2kuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix3LmwxMG4ueWVhckFyaWFMYWJlbCksdy5jb25maWcubWluRGF0ZSYmaS5zZXRBdHRyaWJ1dGUoIm1pbiIsdy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkpLHcuY29uZmlnLm1heERhdGUmJihpLnNldEF0dHJpYnV0ZSgibWF4Iix3LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSksaS5kaXNhYmxlZD0hIXcuY29uZmlnLm1pbkRhdGUmJncuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKT09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSk7dmFyIG89cygiZGl2IiwiZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgiKTtyZXR1cm4gby5hcHBlbmRDaGlsZChlKSxvLmFwcGVuZENoaWxkKGEpLG4uYXBwZW5kQ2hpbGQobyksdC5hcHBlbmRDaGlsZChuKSx7Y29udGFpbmVyOnQseWVhckVsZW1lbnQ6aSxtb250aEVsZW1lbnQ6ZX19ZnVuY3Rpb24gcSgpe3Uody5tb250aE5hdiksdy5tb250aE5hdi5hcHBlbmRDaGlsZCh3LnByZXZNb250aE5hdiksdy5jb25maWcuc2hvd01vbnRocyYmKHcueWVhckVsZW1lbnRzPVtdLHcubW9udGhFbGVtZW50cz1bXSk7Zm9yKHZhciBlPXcuY29uZmlnLnNob3dNb250aHM7ZS0tOyl7dmFyIHQ9VSgpO3cueWVhckVsZW1lbnRzLnB1c2godC55ZWFyRWxlbWVudCksdy5tb250aEVsZW1lbnRzLnB1c2godC5tb250aEVsZW1lbnQpLHcubW9udGhOYXYuYXBwZW5kQ2hpbGQodC5jb250YWluZXIpfXcubW9udGhOYXYuYXBwZW5kQ2hpbGQody5uZXh0TW9udGhOYXYpfWZ1bmN0aW9uICQoKXt3LndlZWtkYXlDb250YWluZXI\/dSh3LndlZWtkYXlDb250YWluZXIpOncud2Vla2RheUNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla2RheXMiKTtmb3IodmFyIGU9dy5jb25maWcuc2hvd01vbnRocztlLS07KXt2YXIgdD1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla2RheWNvbnRhaW5lciIpO3cud2Vla2RheUNvbnRhaW5lci5hcHBlbmRDaGlsZCh0KX1yZXR1cm4geigpLHcud2Vla2RheUNvbnRhaW5lcn1mdW5jdGlvbiB6KCl7aWYody53ZWVrZGF5Q29udGFpbmVyKXt2YXIgZT13LmwxMG4uZmlyc3REYXlPZldlZWssbj10KHcubDEwbi53ZWVrZGF5cy5zaG9ydGhhbmQpO2U+MCYmZTxuLmxlbmd0aCYmKG49dChuLnNwbGljZShlLG4ubGVuZ3RoKSxuLnNwbGljZSgwLGUpKSk7Zm9yKHZhciBhPXcuY29uZmlnLnNob3dNb250aHM7YS0tOyl3LndlZWtkYXlDb250YWluZXIuY2hpbGRyZW5bYV0uaW5uZXJIVE1MPSJcbiAgICAgIDxzcGFuIGNsYXNzPSdmbGF0cGlja3Itd2Vla2RheSc+XG4gICAgICAgICIrbi5qb2luKCI8L3NwYW4+PHNwYW4gY2xhc3M9J2ZsYXRwaWNrci13ZWVrZGF5Jz4iKSsiXG4gICAgICA8L3NwYW4+XG4gICAgICAifX1mdW5jdGlvbiBHKGUsdCl7dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBuPXQ\/ZTplLXcuY3VycmVudE1vbnRoO248MCYmITA9PT13Ll9oaWRlUHJldk1vbnRoQXJyb3d8fG4+MCYmITA9PT13Ll9oaWRlTmV4dE1vbnRoQXJyb3d8fCh3LmN1cnJlbnRNb250aCs9biwody5jdXJyZW50TW9udGg8MHx8dy5jdXJyZW50TW9udGg+MTEpJiYody5jdXJyZW50WWVhcis9dy5jdXJyZW50TW9udGg+MTE\/MTotMSx3LmN1cnJlbnRNb250aD0ody5jdXJyZW50TW9udGgrMTIpJTEyLHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpLEooKSxwZSgib25Nb250aENoYW5nZSIpLERlKCkpfWZ1bmN0aW9uIFYoZSl7cmV0dXJuISghdy5jb25maWcuYXBwZW5kVG98fCF3LmNvbmZpZy5hcHBlbmRUby5jb250YWlucyhlKSl8fHcuY2FsZW5kYXJDb250YWluZXIuY29udGFpbnMoZSl9ZnVuY3Rpb24gWihlKXtpZih3LmlzT3BlbiYmIXcuY29uZmlnLmlubGluZSl7dmFyIHQ9ZyhlKSxuPVYodCksYT10PT09dy5pbnB1dHx8dD09PXcuYWx0SW5wdXR8fHcuZWxlbWVudC5jb250YWlucyh0KXx8ZS5wYXRoJiZlLnBhdGguaW5kZXhPZiYmKH5lLnBhdGguaW5kZXhPZih3LmlucHV0KXx8fmUucGF0aC5pbmRleE9mKHcuYWx0SW5wdXQpKSxpPSJibHVyIj09PWUudHlwZT9hJiZlLnJlbGF0ZWRUYXJnZXQmJiFWKGUucmVsYXRlZFRhcmdldCk6IWEmJiFuJiYhVihlLnJlbGF0ZWRUYXJnZXQpLG89IXcuY29uZmlnLmlnbm9yZWRGb2N1c0VsZW1lbnRzLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbnRhaW5zKHQpfSkpO2kmJm8mJih2b2lkIDAhPT13LnRpbWVDb250YWluZXImJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmIiIhPT13LmlucHV0LnZhbHVlJiZ2b2lkIDAhPT13LmlucHV0LnZhbHVlJiZJKCksdy5jbG9zZSgpLHcuY29uZmlnJiYicmFuZ2UiPT09dy5jb25maWcubW9kZSYmMT09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJih3LmNsZWFyKCExKSx3LnJlZHJhdygpKSl9fWZ1bmN0aW9uIFEoZSl7aWYoISghZXx8dy5jb25maWcubWluRGF0ZSYmZTx3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCl8fHcuY29uZmlnLm1heERhdGUmJmU+dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpKSl7dmFyIHQ9ZSxuPXcuY3VycmVudFllYXIhPT10O3cuY3VycmVudFllYXI9dHx8dy5jdXJyZW50WWVhcix3LmNvbmZpZy5tYXhEYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoPU1hdGgubWluKHcuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKSx3LmN1cnJlbnRNb250aCk6dy5jb25maWcubWluRGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSYmKHcuY3VycmVudE1vbnRoPU1hdGgubWF4KHcuY29uZmlnLm1pbkRhdGUuZ2V0TW9udGgoKSx3LmN1cnJlbnRNb250aCkpLG4mJih3LnJlZHJhdygpLHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpfX1mdW5jdGlvbiBYKGUsdCl7dmFyIG47dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBhPXcucGFyc2VEYXRlKGUsdm9pZCAwLHQpO2lmKHcuY29uZmlnLm1pbkRhdGUmJmEmJk0oYSx3LmNvbmZpZy5taW5EYXRlLHZvaWQgMCE9PXQ\/dDohdy5taW5EYXRlSGFzVGltZSk8MHx8dy5jb25maWcubWF4RGF0ZSYmYSYmTShhLHcuY29uZmlnLm1heERhdGUsdm9pZCAwIT09dD90OiF3Lm1heERhdGVIYXNUaW1lKT4wKXJldHVybiExO2lmKCF3LmNvbmZpZy5lbmFibGUmJjA9PT13LmNvbmZpZy5kaXNhYmxlLmxlbmd0aClyZXR1cm4hMDtpZih2b2lkIDA9PT1hKXJldHVybiExO2Zvcih2YXIgaT0hIXcuY29uZmlnLmVuYWJsZSxvPW51bGwhPT0obj13LmNvbmZpZy5lbmFibGUpJiZ2b2lkIDAhPT1uP246dy5jb25maWcuZGlzYWJsZSxyPTAsbD12b2lkIDA7cjxvLmxlbmd0aDtyKyspe2lmKCJmdW5jdGlvbiI9PXR5cGVvZihsPW9bcl0pJiZsKGEpKXJldHVybiBpO2lmKGwgaW5zdGFuY2VvZiBEYXRlJiZ2b2lkIDAhPT1hJiZsLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpKXJldHVybiBpO2lmKCJzdHJpbmciPT10eXBlb2YgbCl7dmFyIGM9dy5wYXJzZURhdGUobCx2b2lkIDAsITApO3JldHVybiBjJiZjLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpP2k6IWl9aWYoIm9iamVjdCI9PXR5cGVvZiBsJiZ2b2lkIDAhPT1hJiZsLmZyb20mJmwudG8mJmEuZ2V0VGltZSgpPj1sLmZyb20uZ2V0VGltZSgpJiZhLmdldFRpbWUoKTw9bC50by5nZXRUaW1lKCkpcmV0dXJuIGl9cmV0dXJuIWl9ZnVuY3Rpb24gZWUoZSl7cmV0dXJuIHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKC0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJi0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiZmxhdHBpY2tyLWRpc2FibGVkIikmJncuZGF5c0NvbnRhaW5lci5jb250YWlucyhlKSl9ZnVuY3Rpb24gdGUoZSl7IShlLnRhcmdldD09PXcuX2lucHV0KXx8ISh3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjB8fHcuX2lucHV0LnZhbHVlLmxlbmd0aD4wKXx8ZS5yZWxhdGVkVGFyZ2V0JiZWKGUucmVsYXRlZFRhcmdldCl8fHcuc2V0RGF0ZSh3Ll9pbnB1dC52YWx1ZSwhMCxlLnRhcmdldD09PXcuYWx0SW5wdXQ\/dy5jb25maWcuYWx0Rm9ybWF0OncuY29uZmlnLmRhdGVGb3JtYXQpfWZ1bmN0aW9uIG5lKGUpe3ZhciB0PWcoZSksbj13LmNvbmZpZy53cmFwP3AuY29udGFpbnModCk6dD09PXcuX2lucHV0LGE9dy5jb25maWcuYWxsb3dJbnB1dCxpPXcuaXNPcGVuJiYoIWF8fCFuKSxvPXcuY29uZmlnLmlubGluZSYmbiYmIWE7aWYoMTM9PT1lLmtleUNvZGUmJm4pe2lmKGEpcmV0dXJuIHcuc2V0RGF0ZSh3Ll9pbnB1dC52YWx1ZSwhMCx0PT09dy5hbHRJbnB1dD93LmNvbmZpZy5hbHRGb3JtYXQ6dy5jb25maWcuZGF0ZUZvcm1hdCksdC5ibHVyKCk7dy5vcGVuKCl9ZWxzZSBpZihWKHQpfHxpfHxvKXt2YXIgcj0hIXcudGltZUNvbnRhaW5lciYmdy50aW1lQ29udGFpbmVyLmNvbnRhaW5zKHQpO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgMTM6cj8oZS5wcmV2ZW50RGVmYXVsdCgpLEkoKSxzZSgpKTp1ZShlKTticmVhaztjYXNlIDI3OmUucHJldmVudERlZmF1bHQoKSxzZSgpO2JyZWFrO2Nhc2UgODpjYXNlIDQ2Om4mJiF3LmNvbmZpZy5hbGxvd0lucHV0JiYoZS5wcmV2ZW50RGVmYXVsdCgpLHcuY2xlYXIoKSk7YnJlYWs7Y2FzZSAzNzpjYXNlIDM5OmlmKHJ8fG4pdy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpO2Vsc2UgaWYoZS5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKCExPT09YXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZWUoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpKXt2YXIgbD0zOT09PWUua2V5Q29kZT8xOi0xO2UuY3RybEtleT8oZS5zdG9wUHJvcGFnYXRpb24oKSxHKGwpLFIoVygxKSwwKSk6Uih2b2lkIDAsbCl9YnJlYWs7Y2FzZSAzODpjYXNlIDQwOmUucHJldmVudERlZmF1bHQoKTt2YXIgYz00MD09PWUua2V5Q29kZT8xOi0xO3cuZGF5c0NvbnRhaW5lciYmdm9pZCAwIT09dC4kaXx8dD09PXcuaW5wdXR8fHQ9PT13LmFsdElucHV0P2UuY3RybEtleT8oZS5zdG9wUHJvcGFnYXRpb24oKSxRKHcuY3VycmVudFllYXItYyksUihXKDEpLDApKTpyfHxSKHZvaWQgMCw3KmMpOnQ9PT13LmN1cnJlbnRZZWFyRWxlbWVudD9RKHcuY3VycmVudFllYXItYyk6dy5jb25maWcuZW5hYmxlVGltZSYmKCFyJiZ3LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCksSShlKSx3Ll9kZWJvdW5jZWRDaGFuZ2UoKSk7YnJlYWs7Y2FzZSA5OmlmKHIpe3ZhciBkPVt3LmhvdXJFbGVtZW50LHcubWludXRlRWxlbWVudCx3LnNlY29uZEVsZW1lbnQsdy5hbVBNXS5jb25jYXQody5wbHVnaW5FbGVtZW50cykuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSxzPWQuaW5kZXhPZih0KTtpZigtMSE9PXMpe3ZhciB1PWRbcysoZS5zaGlmdEtleT8tMToxKV07ZS5wcmV2ZW50RGVmYXVsdCgpLCh1fHx3Ll9pbnB1dCkuZm9jdXMoKX19ZWxzZSF3LmNvbmZpZy5ub0NhbGVuZGFyJiZ3LmRheXNDb250YWluZXImJncuZGF5c0NvbnRhaW5lci5jb250YWlucyh0KSYmZS5zaGlmdEtleSYmKGUucHJldmVudERlZmF1bHQoKSx3Ll9pbnB1dC5mb2N1cygpKX19aWYodm9pZCAwIT09dy5hbVBNJiZ0PT09dy5hbVBNKXN3aXRjaChlLmtleSl7Y2FzZSB3LmwxMG4uYW1QTVswXS5jaGFyQXQoMCk6Y2FzZSB3LmwxMG4uYW1QTVswXS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTp3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bMF0sUygpLGJlKCk7YnJlYWs7Y2FzZSB3LmwxMG4uYW1QTVsxXS5jaGFyQXQoMCk6Y2FzZSB3LmwxMG4uYW1QTVsxXS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTp3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bMV0sUygpLGJlKCl9KG58fFYodCkpJiZwZSgib25LZXlEb3duIixlKX1mdW5jdGlvbiBhZShlKXtpZigxPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmKCFlfHxlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRheSIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kaXNhYmxlZCIpKSl7Zm9yKHZhciB0PWU\/ZS5kYXRlT2JqLmdldFRpbWUoKTp3LmRheXMuZmlyc3RFbGVtZW50Q2hpbGQuZGF0ZU9iai5nZXRUaW1lKCksbj13LnBhcnNlRGF0ZSh3LnNlbGVjdGVkRGF0ZXNbMF0sdm9pZCAwLCEwKS5nZXRUaW1lKCksYT1NYXRoLm1pbih0LHcuc2VsZWN0ZWREYXRlc1swXS5nZXRUaW1lKCkpLGk9TWF0aC5tYXgodCx3LnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpKSxvPSExLHI9MCxsPTAsYz1hO2M8aTtjKz15KVgobmV3IERhdGUoYyksITApfHwobz1vfHxjPmEmJmM8aSxjPG4mJighcnx8Yz5yKT9yPWM6Yz5uJiYoIWx8fGM8bCkmJihsPWMpKTtmb3IodmFyIGQ9MDtkPHcuY29uZmlnLnNob3dNb250aHM7ZCsrKWZvcih2YXIgcz13LmRheXNDb250YWluZXIuY2hpbGRyZW5bZF0sdT1mdW5jdGlvbihhLGkpe3ZhciBjLGQsdSxmPXMuY2hpbGRyZW5bYV0sbT1mLmRhdGVPYmouZ2V0VGltZSgpLGc9cj4wJiZtPHJ8fGw+MCYmbT5sO3JldHVybiBnPyhmLmNsYXNzTGlzdC5hZGQoIm5vdEFsbG93ZWQiKSxbImluUmFuZ2UiLCJzdGFydFJhbmdlIiwiZW5kUmFuZ2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmLmNsYXNzTGlzdC5yZW1vdmUoZSl9KSksImNvbnRpbnVlIik6byYmIWc\/ImNvbnRpbnVlIjooWyJzdGFydFJhbmdlIiwiaW5SYW5nZSIsImVuZFJhbmdlIiwibm90QWxsb3dlZCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YuY2xhc3NMaXN0LnJlbW92ZShlKX0pKSx2b2lkKHZvaWQgMCE9PWUmJihlLmNsYXNzTGlzdC5hZGQodDw9dy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKT8ic3RhcnRSYW5nZSI6ImVuZFJhbmdlIiksbjx0JiZtPT09bj9mLmNsYXNzTGlzdC5hZGQoInN0YXJ0UmFuZ2UiKTpuPnQmJm09PT1uJiZmLmNsYXNzTGlzdC5hZGQoImVuZFJhbmdlIiksbT49ciYmKDA9PT1sfHxtPD1sKSYmKGQ9bix1PXQsKGM9bSk+TWF0aC5taW4oZCx1KSYmYzxNYXRoLm1heChkLHUpKSYmZi5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIikpKSl9LGY9MCxtPXMuY2hpbGRyZW4ubGVuZ3RoO2Y8bTtmKyspdShmKX19ZnVuY3Rpb24gaWUoKXshdy5pc09wZW58fHcuY29uZmlnLnN0YXRpY3x8dy5jb25maWcuaW5saW5lfHxjZSgpfWZ1bmN0aW9uIG9lKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj13LmNvbmZpZ1siXyIrZSsiRGF0ZSJdPXcucGFyc2VEYXRlKHQsdy5jb25maWcuZGF0ZUZvcm1hdCksYT13LmNvbmZpZ1siXyIrKCJtaW4iPT09ZT8ibWF4IjoibWluIikrIkRhdGUiXTt2b2lkIDAhPT1uJiYod1sibWluIj09PWU\/Im1pbkRhdGVIYXNUaW1lIjoibWF4RGF0ZUhhc1RpbWUiXT1uLmdldEhvdXJzKCk+MHx8bi5nZXRNaW51dGVzKCk+MHx8bi5nZXRTZWNvbmRzKCk+MCksdy5zZWxlY3RlZERhdGVzJiYody5zZWxlY3RlZERhdGVzPXcuc2VsZWN0ZWREYXRlcy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBYKGUpfSkpLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGh8fCJtaW4iIT09ZXx8XyhuKSxiZSgpKSx3LmRheXNDb250YWluZXImJihkZSgpLHZvaWQgMCE9PW4\/dy5jdXJyZW50WWVhckVsZW1lbnRbZV09bi5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk6dy5jdXJyZW50WWVhckVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGUpLHcuY3VycmVudFllYXJFbGVtZW50LmRpc2FibGVkPSEhYSYmdm9pZCAwIT09biYmYS5nZXRGdWxsWWVhcigpPT09bi5nZXRGdWxsWWVhcigpKX19ZnVuY3Rpb24gcmUoKXtyZXR1cm4gdy5jb25maWcud3JhcD9wLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLWlucHV0XSIpOnB9ZnVuY3Rpb24gbGUoKXsib2JqZWN0IiE9dHlwZW9mIHcuY29uZmlnLmxvY2FsZSYmdm9pZCAwPT09VC5sMTBuc1t3LmNvbmZpZy5sb2NhbGVdJiZ3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJmbGF0cGlja3I6IGludmFsaWQgbG9jYWxlICIrdy5jb25maWcubG9jYWxlKSksdy5sMTBuPWUoZSh7fSxULmwxMG5zLmRlZmF1bHQpLCJvYmplY3QiPT10eXBlb2Ygdy5jb25maWcubG9jYWxlP3cuY29uZmlnLmxvY2FsZToiZGVmYXVsdCIhPT13LmNvbmZpZy5sb2NhbGU\/VC5sMTBuc1t3LmNvbmZpZy5sb2NhbGVdOnZvaWQgMCksRC5LPSIoIit3LmwxMG4uYW1QTVswXSsifCIrdy5sMTBuLmFtUE1bMV0rInwiK3cubDEwbi5hbVBNWzBdLnRvTG93ZXJDYXNlKCkrInwiK3cubDEwbi5hbVBNWzFdLnRvTG93ZXJDYXNlKCkrIikiLHZvaWQgMD09PWUoZSh7fSx2KSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHAuZGF0YXNldHx8e30pKSkudGltZV8yNGhyJiZ2b2lkIDA9PT1ULmRlZmF1bHRDb25maWcudGltZV8yNGhyJiYody5jb25maWcudGltZV8yNGhyPXcubDEwbi50aW1lXzI0aHIpLHcuZm9ybWF0RGF0ZT1iKHcpLHcucGFyc2VEYXRlPUMoe2NvbmZpZzp3LmNvbmZpZyxsMTBuOncubDEwbn0pfWZ1bmN0aW9uIGNlKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbmZpZy5wb3NpdGlvbil7aWYodm9pZCAwIT09dy5jYWxlbmRhckNvbnRhaW5lcil7cGUoIm9uUHJlQ2FsZW5kYXJQb3NpdGlvbiIpO3ZhciB0PWV8fHcuX3Bvc2l0aW9uRWxlbWVudCxuPUFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbCh3LmNhbGVuZGFyQ29udGFpbmVyLmNoaWxkcmVuLChmdW5jdGlvbihlLHQpe3JldHVybiBlK3Qub2Zmc2V0SGVpZ2h0fSksMCksYT13LmNhbGVuZGFyQ29udGFpbmVyLm9mZnNldFdpZHRoLGk9dy5jb25maWcucG9zaXRpb24uc3BsaXQoIiAiKSxvPWlbMF0scj1pLmxlbmd0aD4xP2lbMV06bnVsbCxsPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz13aW5kb3cuaW5uZXJIZWlnaHQtbC5ib3R0b20scz0iYWJvdmUiPT09b3x8ImJlbG93IiE9PW8mJmM8biYmbC50b3A+bix1PXdpbmRvdy5wYWdlWU9mZnNldCtsLnRvcCsocz8tbi0yOnQub2Zmc2V0SGVpZ2h0KzIpO2lmKGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dUb3AiLCFzKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93Qm90dG9tIixzKSwhdy5jb25maWcuaW5saW5lKXt2YXIgZj13aW5kb3cucGFnZVhPZmZzZXQrbC5sZWZ0LG09ITEsZz0hMTsiY2VudGVyIj09PXI\/KGYtPShhLWwud2lkdGgpLzIsbT0hMCk6InJpZ2h0Ij09PXImJihmLT1hLWwud2lkdGgsZz0hMCksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0xlZnQiLCFtJiYhZyksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0NlbnRlciIsbSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd1JpZ2h0IixnKTt2YXIgcD13aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aC0od2luZG93LnBhZ2VYT2Zmc2V0K2wucmlnaHQpLGg9ZithPndpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLHY9cCthPndpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO2lmKGQody5jYWxlbmRhckNvbnRhaW5lciwicmlnaHRNb3N0IixoKSwhdy5jb25maWcuc3RhdGljKWlmKHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUudG9wPXUrInB4IixoKWlmKHYpe3ZhciBEPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPW51bGwsdD0wO3Q8ZG9jdW1lbnQuc3R5bGVTaGVldHMubGVuZ3RoO3QrKyl7dmFyIG49ZG9jdW1lbnQuc3R5bGVTaGVldHNbdF07dHJ5e24uY3NzUnVsZXN9Y2F0Y2goZSl7Y29udGludWV9ZT1uO2JyZWFrfXJldHVybiBudWxsIT1lP2U6KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpLGEuc2hlZXQpO3ZhciBhfSgpO2lmKHZvaWQgMD09PUQpcmV0dXJuO3ZhciBiPXdpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLEM9TWF0aC5tYXgoMCxiLzItYS8yKSxNPUQuY3NzUnVsZXMubGVuZ3RoLHk9IntsZWZ0OiIrbC5sZWZ0KyJweDtyaWdodDphdXRvO30iO2Qody5jYWxlbmRhckNvbnRhaW5lciwicmlnaHRNb3N0IiwhMSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJjZW50ZXJNb3N0IiwhMCksRC5pbnNlcnRSdWxlKCIuZmxhdHBpY2tyLWNhbGVuZGFyLmNlbnRlck1vc3Q6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuY2VudGVyTW9zdDphZnRlciIreSxNKSx3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmxlZnQ9QysicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmlnaHQ9ImF1dG8ifWVsc2Ugdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5sZWZ0PSJhdXRvIix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJpZ2h0PXArInB4IjtlbHNlIHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUubGVmdD1mKyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yaWdodD0iYXV0byJ9fX1lbHNlIHcuY29uZmlnLnBvc2l0aW9uKHcsZSl9ZnVuY3Rpb24gZGUoKXt3LmNvbmZpZy5ub0NhbGVuZGFyfHx3LmlzTW9iaWxlfHwoSygpLERlKCksSigpKX1mdW5jdGlvbiBzZSgpe3cuX2lucHV0LmZvY3VzKCksLTEhPT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIil8fHZvaWQgMCE9PW5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRzP3NldFRpbWVvdXQody5jbG9zZSwwKTp3LmNsb3NlKCl9ZnVuY3Rpb24gdWUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHQ9ZihnKGUpLChmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc0xpc3QmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGF5IikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRpc2FibGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygibm90QWxsb3dlZCIpfSkpO2lmKHZvaWQgMCE9PXQpe3ZhciBuPXQsYT13LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj1uZXcgRGF0ZShuLmRhdGVPYmouZ2V0VGltZSgpKSxpPShhLmdldE1vbnRoKCk8dy5jdXJyZW50TW9udGh8fGEuZ2V0TW9udGgoKT53LmN1cnJlbnRNb250aCt3LmNvbmZpZy5zaG93TW9udGhzLTEpJiYicmFuZ2UiIT09dy5jb25maWcubW9kZTtpZih3LnNlbGVjdGVkRGF0ZUVsZW09biwic2luZ2xlIj09PXcuY29uZmlnLm1vZGUpdy5zZWxlY3RlZERhdGVzPVthXTtlbHNlIGlmKCJtdWx0aXBsZSI9PT13LmNvbmZpZy5tb2RlKXt2YXIgbz12ZShhKTtvP3cuc2VsZWN0ZWREYXRlcy5zcGxpY2UocGFyc2VJbnQobyksMSk6dy5zZWxlY3RlZERhdGVzLnB1c2goYSl9ZWxzZSJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYoMj09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJncuY2xlYXIoITEsITEpLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPWEsdy5zZWxlY3RlZERhdGVzLnB1c2goYSksMCE9PU0oYSx3LnNlbGVjdGVkRGF0ZXNbMF0sITApJiZ3LnNlbGVjdGVkRGF0ZXMuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9KSkpO2lmKFMoKSxpKXt2YXIgcj13LmN1cnJlbnRZZWFyIT09YS5nZXRGdWxsWWVhcigpO3cuY3VycmVudFllYXI9YS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPWEuZ2V0TW9udGgoKSxyJiYocGUoIm9uWWVhckNoYW5nZSIpLEsoKSkscGUoIm9uTW9udGhDaGFuZ2UiKX1pZihEZSgpLEooKSxiZSgpLGl8fCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlfHwxIT09dy5jb25maWcuc2hvd01vbnRocz92b2lkIDAhPT13LnNlbGVjdGVkRGF0ZUVsZW0mJnZvaWQgMD09PXcuaG91ckVsZW1lbnQmJncuc2VsZWN0ZWREYXRlRWxlbSYmdy5zZWxlY3RlZERhdGVFbGVtLmZvY3VzKCk6TChuKSx2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCksdy5jb25maWcuY2xvc2VPblNlbGVjdCl7dmFyIGw9InNpbmdsZSI9PT13LmNvbmZpZy5tb2RlJiYhdy5jb25maWcuZW5hYmxlVGltZSxjPSJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYyPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmIXcuY29uZmlnLmVuYWJsZVRpbWU7KGx8fGMpJiZzZSgpfU4oKX19dy5wYXJzZURhdGU9Qyh7Y29uZmlnOncuY29uZmlnLGwxMG46dy5sMTBufSksdy5faGFuZGxlcnM9W10sdy5wbHVnaW5FbGVtZW50cz1bXSx3LmxvYWRlZFBsdWdpbnM9W10sdy5fYmluZD1BLHcuX3NldEhvdXJzRnJvbURhdGU9Xyx3Ll9wb3NpdGlvbkNhbGVuZGFyPWNlLHcuY2hhbmdlTW9udGg9Ryx3LmNoYW5nZVllYXI9USx3LmNsZWFyPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09ZSYmKGU9ITApO3ZvaWQgMD09PXQmJih0PSEwKTt3LmlucHV0LnZhbHVlPSIiLHZvaWQgMCE9PXcuYWx0SW5wdXQmJih3LmFsdElucHV0LnZhbHVlPSIiKTt2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiYody5tb2JpbGVJbnB1dC52YWx1ZT0iIik7dy5zZWxlY3RlZERhdGVzPVtdLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXZvaWQgMCwhMD09PXQmJih3LmN1cnJlbnRZZWFyPXcuX2luaXRpYWxEYXRlLmdldEZ1bGxZZWFyKCksdy5jdXJyZW50TW9udGg9dy5faW5pdGlhbERhdGUuZ2V0TW9udGgoKSk7aWYoITA9PT13LmNvbmZpZy5lbmFibGVUaW1lKXt2YXIgbj14KHcuY29uZmlnKSxhPW4uaG91cnMsaT1uLm1pbnV0ZXMsbz1uLnNlY29uZHM7TyhhLGksbyl9dy5yZWRyYXcoKSxlJiZwZSgib25DaGFuZ2UiKX0sdy5jbG9zZT1mdW5jdGlvbigpe3cuaXNPcGVuPSExLHcuaXNNb2JpbGV8fCh2b2lkIDAhPT13LmNhbGVuZGFyQ29udGFpbmVyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKSx2b2lkIDAhPT13Ll9pbnB1dCYmdy5faW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIikpO3BlKCJvbkNsb3NlIil9LHcuX2NyZWF0ZUVsZW1lbnQ9cyx3LmRlc3Ryb3k9ZnVuY3Rpb24oKXt2b2lkIDAhPT13LmNvbmZpZyYmcGUoIm9uRGVzdHJveSIpO2Zvcih2YXIgZT13Ll9oYW5kbGVycy5sZW5ndGg7ZS0tOyl3Ll9oYW5kbGVyc1tlXS5yZW1vdmUoKTtpZih3Ll9oYW5kbGVycz1bXSx3Lm1vYmlsZUlucHV0KXcubW9iaWxlSW5wdXQucGFyZW50Tm9kZSYmdy5tb2JpbGVJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcubW9iaWxlSW5wdXQpLHcubW9iaWxlSW5wdXQ9dm9pZCAwO2Vsc2UgaWYody5jYWxlbmRhckNvbnRhaW5lciYmdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlKWlmKHcuY29uZmlnLnN0YXRpYyYmdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlKXt2YXIgdD13LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGU7aWYodC5sYXN0Q2hpbGQmJnQucmVtb3ZlQ2hpbGQodC5sYXN0Q2hpbGQpLHQucGFyZW50Tm9kZSl7Zm9yKDt0LmZpcnN0Q2hpbGQ7KXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodC5maXJzdENoaWxkLHQpO3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX19ZWxzZSB3LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcik7dy5hbHRJbnB1dCYmKHcuaW5wdXQudHlwZT0idGV4dCIsdy5hbHRJbnB1dC5wYXJlbnROb2RlJiZ3LmFsdElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5hbHRJbnB1dCksZGVsZXRlIHcuYWx0SW5wdXQpO3cuaW5wdXQmJih3LmlucHV0LnR5cGU9dy5pbnB1dC5fdHlwZSx3LmlucHV0LmNsYXNzTGlzdC5yZW1vdmUoImZsYXRwaWNrci1pbnB1dCIpLHcuaW5wdXQucmVtb3ZlQXR0cmlidXRlKCJyZWFkb25seSIpKTtbIl9zaG93VGltZUlucHV0IiwibGF0ZXN0U2VsZWN0ZWREYXRlT2JqIiwiX2hpZGVOZXh0TW9udGhBcnJvdyIsIl9oaWRlUHJldk1vbnRoQXJyb3ciLCJfX2hpZGVOZXh0TW9udGhBcnJvdyIsIl9faGlkZVByZXZNb250aEFycm93IiwiaXNNb2JpbGUiLCJpc09wZW4iLCJzZWxlY3RlZERhdGVFbGVtIiwibWluRGF0ZUhhc1RpbWUiLCJtYXhEYXRlSGFzVGltZSIsImRheXMiLCJkYXlzQ29udGFpbmVyIiwiX2lucHV0IiwiX3Bvc2l0aW9uRWxlbWVudCIsImlubmVyQ29udGFpbmVyIiwickNvbnRhaW5lciIsIm1vbnRoTmF2IiwidG9kYXlEYXRlRWxlbSIsImNhbGVuZGFyQ29udGFpbmVyIiwid2Vla2RheUNvbnRhaW5lciIsInByZXZNb250aE5hdiIsIm5leHRNb250aE5hdiIsIm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyIiwiY3VycmVudE1vbnRoRWxlbWVudCIsImN1cnJlbnRZZWFyRWxlbWVudCIsIm5hdmlnYXRpb25DdXJyZW50TW9udGgiLCJzZWxlY3RlZERhdGVFbGVtIiwiY29uZmlnIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dHJ5e2RlbGV0ZSB3W2VdfWNhdGNoKGUpe319KSl9LHcuaXNFbmFibGVkPVgsdy5qdW1wVG9EYXRlPVAsdy5vcGVuPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9dy5fcG9zaXRpb25FbGVtZW50KTtpZighMD09PXcuaXNNb2JpbGUpe2lmKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbj1nKGUpO24mJm4uYmx1cigpfXJldHVybiB2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiYody5tb2JpbGVJbnB1dC5mb2N1cygpLHcubW9iaWxlSW5wdXQuY2xpY2soKSksdm9pZCBwZSgib25PcGVuIil9aWYody5faW5wdXQuZGlzYWJsZWR8fHcuY29uZmlnLmlubGluZSlyZXR1cm47dmFyIGE9dy5pc09wZW47dy5pc09wZW49ITAsYXx8KHcuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgib3BlbiIpLHcuX2lucHV0LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHBlKCJvbk9wZW4iKSxjZSh0KSk7ITA9PT13LmNvbmZpZy5lbmFibGVUaW1lJiYhMD09PXcuY29uZmlnLm5vQ2FsZW5kYXImJighMSE9PXcuY29uZmlnLmFsbG93SW5wdXR8fHZvaWQgMCE9PWUmJncudGltZUNvbnRhaW5lci5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB3LmhvdXJFbGVtZW50LnNlbGVjdCgpfSksNTApKX0sdy5yZWRyYXc9ZGUsdy5zZXQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlKWZvcih2YXIgYSBpbiBPYmplY3QuYXNzaWduKHcuY29uZmlnLGUpLGUpdm9pZCAwIT09ZmVbYV0mJmZlW2FdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSk7ZWxzZSB3LmNvbmZpZ1tlXT10LHZvaWQgMCE9PWZlW2VdP2ZlW2VdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSk6bi5pbmRleE9mKGUpPi0xJiYody5jb25maWdbZV09Yyh0KSk7dy5yZWRyYXcoKSxiZSghMCl9LHcuc2V0RGF0ZT1mdW5jdGlvbihlLHQsbil7dm9pZCAwPT09dCYmKHQ9ITEpO3ZvaWQgMD09PW4mJihuPXcuY29uZmlnLmRhdGVGb3JtYXQpO2lmKDAhPT1lJiYhZXx8ZSBpbnN0YW5jZW9mIEFycmF5JiYwPT09ZS5sZW5ndGgpcmV0dXJuIHcuY2xlYXIodCk7bWUoZSxuKSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj13LnNlbGVjdGVkRGF0ZXNbdy5zZWxlY3RlZERhdGVzLmxlbmd0aC0xXSx3LnJlZHJhdygpLFAodm9pZCAwLHQpLF8oKSwwPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmdy5jbGVhcighMSk7YmUodCksdCYmcGUoIm9uQ2hhbmdlIil9LHcudG9nZ2xlPWZ1bmN0aW9uKGUpe2lmKCEwPT09dy5pc09wZW4pcmV0dXJuIHcuY2xvc2UoKTt3Lm9wZW4oZSl9O3ZhciBmZT17bG9jYWxlOltsZSx6XSxzaG93TW9udGhzOltxLGssJF0sbWluRGF0ZTpbUF0sbWF4RGF0ZTpbUF0sY2xpY2tPcGVuczpbZnVuY3Rpb24oKXshMD09PXcuY29uZmlnLmNsaWNrT3BlbnM\/KEEody5faW5wdXQsImZvY3VzIix3Lm9wZW4pLEEody5faW5wdXQsImNsaWNrIix3Lm9wZW4pKToody5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHcub3Blbiksdy5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHcub3BlbikpfV19O2Z1bmN0aW9uIG1lKGUsdCl7dmFyIG49W107aWYoZSBpbnN0YW5jZW9mIEFycmF5KW49ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIERhdGV8fCJudW1iZXIiPT10eXBlb2YgZSluPVt3LnBhcnNlRGF0ZShlLHQpXTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSlzd2l0Y2gody5jb25maWcubW9kZSl7Y2FzZSJzaW5nbGUiOmNhc2UidGltZSI6bj1bdy5wYXJzZURhdGUoZSx0KV07YnJlYWs7Y2FzZSJtdWx0aXBsZSI6bj1lLnNwbGl0KHcuY29uZmlnLmNvbmp1bmN0aW9uKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpO2JyZWFrO2Nhc2UicmFuZ2UiOm49ZS5zcGxpdCh3LmwxMG4ucmFuZ2VTZXBhcmF0b3IpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHcucGFyc2VEYXRlKGUsdCl9KSl9ZWxzZSB3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgc3VwcGxpZWQ6ICIrSlNPTi5zdHJpbmdpZnkoZSkpKTt3LnNlbGVjdGVkRGF0ZXM9dy5jb25maWcuYWxsb3dJbnZhbGlkUHJlbG9hZD9uOm4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGUmJlgoZSwhMSl9KSksInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJncuc2VsZWN0ZWREYXRlcy5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmdldFRpbWUoKS10LmdldFRpbWUoKX0pKX1mdW5jdGlvbiBnZShlKXtyZXR1cm4gZS5zbGljZSgpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwibnVtYmVyIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBEYXRlP3cucGFyc2VEYXRlKGUsdm9pZCAwLCEwKTplJiYib2JqZWN0Ij09dHlwZW9mIGUmJmUuZnJvbSYmZS50bz97ZnJvbTp3LnBhcnNlRGF0ZShlLmZyb20sdm9pZCAwKSx0bzp3LnBhcnNlRGF0ZShlLnRvLHZvaWQgMCl9OmV9KSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX1mdW5jdGlvbiBwZShlLHQpe2lmKHZvaWQgMCE9PXcuY29uZmlnKXt2YXIgbj13LmNvbmZpZ1tlXTtpZih2b2lkIDAhPT1uJiZuLmxlbmd0aD4wKWZvcih2YXIgYT0wO25bYV0mJmE8bi5sZW5ndGg7YSsrKW5bYV0ody5zZWxlY3RlZERhdGVzLHcuaW5wdXQudmFsdWUsdyx0KTsib25DaGFuZ2UiPT09ZSYmKHcuaW5wdXQuZGlzcGF0Y2hFdmVudChoZSgiY2hhbmdlIikpLHcuaW5wdXQuZGlzcGF0Y2hFdmVudChoZSgiaW5wdXQiKSkpfX1mdW5jdGlvbiBoZShlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoZSwhMCwhMCksdH1mdW5jdGlvbiB2ZShlKXtmb3IodmFyIHQ9MDt0PHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg7dCsrKWlmKDA9PT1NKHcuc2VsZWN0ZWREYXRlc1t0XSxlKSlyZXR1cm4iIit0O3JldHVybiExfWZ1bmN0aW9uIERlKCl7dy5jb25maWcubm9DYWxlbmRhcnx8dy5pc01vYmlsZXx8IXcubW9udGhOYXZ8fCh3LnllYXJFbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbihlLHQpe3ZhciBuPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdy5jdXJyZW50TW9udGgsMSk7bi5zZXRNb250aCh3LmN1cnJlbnRNb250aCt0KSx3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJzdGF0aWMiPT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGU\/dy5tb250aEVsZW1lbnRzW3RdLnRleHRDb250ZW50PWgobi5nZXRNb250aCgpLHcuY29uZmlnLnNob3J0aGFuZEN1cnJlbnRNb250aCx3LmwxMG4pKyIgIjp3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnZhbHVlPW4uZ2V0TW9udGgoKS50b1N0cmluZygpLGUudmFsdWU9bi5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCl9KSksdy5faGlkZVByZXZNb250aEFycm93PXZvaWQgMCE9PXcuY29uZmlnLm1pbkRhdGUmJih3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoPD13LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCk6dy5jdXJyZW50WWVhcjx3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkpLHcuX2hpZGVOZXh0TW9udGhBcnJvdz12b2lkIDAhPT13LmNvbmZpZy5tYXhEYXRlJiYody5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aCsxPncuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKTp3LmN1cnJlbnRZZWFyPncuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSkpfWZ1bmN0aW9uIHdlKGUpe3JldHVybiB3LnNlbGVjdGVkRGF0ZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdy5mb3JtYXREYXRlKHQsZSl9KSkuZmlsdGVyKChmdW5jdGlvbihlLHQsbil7cmV0dXJuInJhbmdlIiE9PXcuY29uZmlnLm1vZGV8fHcuY29uZmlnLmVuYWJsZVRpbWV8fG4uaW5kZXhPZihlKT09PXR9KSkuam9pbigicmFuZ2UiIT09dy5jb25maWcubW9kZT93LmNvbmZpZy5jb25qdW5jdGlvbjp3LmwxMG4ucmFuZ2VTZXBhcmF0b3IpfWZ1bmN0aW9uIGJlKGUpe3ZvaWQgMD09PWUmJihlPSEwKSx2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiZ3Lm1vYmlsZUZvcm1hdFN0ciYmKHcubW9iaWxlSW5wdXQudmFsdWU9dm9pZCAwIT09dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5mb3JtYXREYXRlKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLHcubW9iaWxlRm9ybWF0U3RyKToiIiksdy5pbnB1dC52YWx1ZT13ZSh3LmNvbmZpZy5kYXRlRm9ybWF0KSx2b2lkIDAhPT13LmFsdElucHV0JiYody5hbHRJbnB1dC52YWx1ZT13ZSh3LmNvbmZpZy5hbHRGb3JtYXQpKSwhMSE9PWUmJnBlKCJvblZhbHVlVXBkYXRlIil9ZnVuY3Rpb24gQ2UoZSl7dmFyIHQ9ZyhlKSxuPXcucHJldk1vbnRoTmF2LmNvbnRhaW5zKHQpLGE9dy5uZXh0TW9udGhOYXYuY29udGFpbnModCk7bnx8YT9HKG4\/LTE6MSk6dy55ZWFyRWxlbWVudHMuaW5kZXhPZih0KT49MD90LnNlbGVjdCgpOnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd1VwIik\/dy5jaGFuZ2VZZWFyKHcuY3VycmVudFllYXIrMSk6dC5jbGFzc0xpc3QuY29udGFpbnMoImFycm93RG93biIpJiZ3LmNoYW5nZVllYXIody5jdXJyZW50WWVhci0xKX1yZXR1cm4gZnVuY3Rpb24oKXt3LmVsZW1lbnQ9dy5pbnB1dD1wLHcuaXNPcGVuPSExLGZ1bmN0aW9uKCl7dmFyIHQ9WyJ3cmFwIiwid2Vla051bWJlcnMiLCJhbGxvd0lucHV0IiwiYWxsb3dJbnZhbGlkUHJlbG9hZCIsImNsaWNrT3BlbnMiLCJ0aW1lXzI0aHIiLCJlbmFibGVUaW1lIiwibm9DYWxlbmRhciIsImFsdElucHV0Iiwic2hvcnRoYW5kQ3VycmVudE1vbnRoIiwiaW5saW5lIiwic3RhdGljIiwiZW5hYmxlU2Vjb25kcyIsImRpc2FibGVNb2JpbGUiXSxpPWUoZSh7fSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHAuZGF0YXNldHx8e30pKSksdiksbz17fTt3LmNvbmZpZy5wYXJzZURhdGU9aS5wYXJzZURhdGUsdy5jb25maWcuZm9ybWF0RGF0ZT1pLmZvcm1hdERhdGUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJlbmFibGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX2VuYWJsZX0sc2V0OmZ1bmN0aW9uKGUpe3cuY29uZmlnLl9lbmFibGU9Z2UoZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJkaXNhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9kaXNhYmxlfSxzZXQ6ZnVuY3Rpb24oZSl7dy5jb25maWcuX2Rpc2FibGU9Z2UoZSl9fSk7dmFyIHI9InRpbWUiPT09aS5tb2RlO2lmKCFpLmRhdGVGb3JtYXQmJihpLmVuYWJsZVRpbWV8fHIpKXt2YXIgbD1ULmRlZmF1bHRDb25maWcuZGF0ZUZvcm1hdHx8YS5kYXRlRm9ybWF0O28uZGF0ZUZvcm1hdD1pLm5vQ2FsZW5kYXJ8fHI\/Ikg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKTpsKyIgSDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpfWlmKGkuYWx0SW5wdXQmJihpLmVuYWJsZVRpbWV8fHIpJiYhaS5hbHRGb3JtYXQpe3ZhciBkPVQuZGVmYXVsdENvbmZpZy5hbHRGb3JtYXR8fGEuYWx0Rm9ybWF0O28uYWx0Rm9ybWF0PWkubm9DYWxlbmRhcnx8cj8iaDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyBLIjoiIEsiKTpkKyIgaDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpKyIgSyJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtaW5EYXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9taW5EYXRlfSxzZXQ6b2UoIm1pbiIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtYXhEYXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9tYXhEYXRlfSxzZXQ6b2UoIm1heCIpfSk7dmFyIHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3cuY29uZmlnWyJtaW4iPT09ZT8iX21pblRpbWUiOiJfbWF4VGltZSJdPXcucGFyc2VEYXRlKHQsIkg6aTpTIil9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1pblRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21pblRpbWV9LHNldDpzKCJtaW4iKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWF4VGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWF4VGltZX0sc2V0OnMoIm1heCIpfSksInRpbWUiPT09aS5tb2RlJiYody5jb25maWcubm9DYWxlbmRhcj0hMCx3LmNvbmZpZy5lbmFibGVUaW1lPSEwKTtPYmplY3QuYXNzaWduKHcuY29uZmlnLG8saSk7Zm9yKHZhciB1PTA7dTx0Lmxlbmd0aDt1Kyspdy5jb25maWdbdFt1XV09ITA9PT13LmNvbmZpZ1t0W3VdXXx8InRydWUiPT09dy5jb25maWdbdFt1XV07bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT13LmNvbmZpZ1tlXX0pKS5mb3JFYWNoKChmdW5jdGlvbihlKXt3LmNvbmZpZ1tlXT1jKHcuY29uZmlnW2VdfHxbXSkubWFwKEUpfSkpLHcuaXNNb2JpbGU9IXcuY29uZmlnLmRpc2FibGVNb2JpbGUmJiF3LmNvbmZpZy5pbmxpbmUmJiJzaW5nbGUiPT09dy5jb25maWcubW9kZSYmIXcuY29uZmlnLmRpc2FibGUubGVuZ3RoJiYhdy5jb25maWcuZW5hYmxlJiYhdy5jb25maWcud2Vla051bWJlcnMmJi9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtmb3IodT0wO3U8dy5jb25maWcucGx1Z2lucy5sZW5ndGg7dSsrKXt2YXIgZj13LmNvbmZpZy5wbHVnaW5zW3VdKHcpfHx7fTtmb3IodmFyIG0gaW4gZiluLmluZGV4T2YobSk+LTE\/dy5jb25maWdbbV09YyhmW21dKS5tYXAoRSkuY29uY2F0KHcuY29uZmlnW21dKTp2b2lkIDA9PT1pW21dJiYody5jb25maWdbbV09ZlttXSl9aS5hbHRJbnB1dENsYXNzfHwody5jb25maWcuYWx0SW5wdXRDbGFzcz1yZSgpLmNsYXNzTmFtZSsiICIrdy5jb25maWcuYWx0SW5wdXRDbGFzcyk7cGUoIm9uUGFyc2VDb25maWciKX0oKSxsZSgpLGZ1bmN0aW9uKCl7aWYody5pbnB1dD1yZSgpLCF3LmlucHV0KXJldHVybiB2b2lkIHcuY29uZmlnLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQgZWxlbWVudCBzcGVjaWZpZWQiKSk7dy5pbnB1dC5fdHlwZT13LmlucHV0LnR5cGUsdy5pbnB1dC50eXBlPSJ0ZXh0Iix3LmlucHV0LmNsYXNzTGlzdC5hZGQoImZsYXRwaWNrci1pbnB1dCIpLHcuX2lucHV0PXcuaW5wdXQsdy5jb25maWcuYWx0SW5wdXQmJih3LmFsdElucHV0PXMody5pbnB1dC5ub2RlTmFtZSx3LmNvbmZpZy5hbHRJbnB1dENsYXNzKSx3Ll9pbnB1dD13LmFsdElucHV0LHcuYWx0SW5wdXQucGxhY2Vob2xkZXI9dy5pbnB1dC5wbGFjZWhvbGRlcix3LmFsdElucHV0LmRpc2FibGVkPXcuaW5wdXQuZGlzYWJsZWQsdy5hbHRJbnB1dC5yZXF1aXJlZD13LmlucHV0LnJlcXVpcmVkLHcuYWx0SW5wdXQudGFiSW5kZXg9dy5pbnB1dC50YWJJbmRleCx3LmFsdElucHV0LnR5cGU9InRleHQiLHcuaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksIXcuY29uZmlnLnN0YXRpYyYmdy5pbnB1dC5wYXJlbnROb2RlJiZ3LmlucHV0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHcuYWx0SW5wdXQsdy5pbnB1dC5uZXh0U2libGluZykpO3cuY29uZmlnLmFsbG93SW5wdXR8fHcuX2lucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCJyZWFkb25seSIpO3cuX3Bvc2l0aW9uRWxlbWVudD13LmNvbmZpZy5wb3NpdGlvbkVsZW1lbnR8fHcuX2lucHV0fSgpLGZ1bmN0aW9uKCl7dy5zZWxlY3RlZERhdGVzPVtdLHcubm93PXcucGFyc2VEYXRlKHcuY29uZmlnLm5vdyl8fG5ldyBEYXRlO3ZhciBlPXcuY29uZmlnLmRlZmF1bHREYXRlfHwoIklOUFVUIiE9PXcuaW5wdXQubm9kZU5hbWUmJiJURVhUQVJFQSIhPT13LmlucHV0Lm5vZGVOYW1lfHwhdy5pbnB1dC5wbGFjZWhvbGRlcnx8dy5pbnB1dC52YWx1ZSE9PXcuaW5wdXQucGxhY2Vob2xkZXI\/dy5pbnB1dC52YWx1ZTpudWxsKTtlJiZtZShlLHcuY29uZmlnLmRhdGVGb3JtYXQpO3cuX2luaXRpYWxEYXRlPXcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MD93LnNlbGVjdGVkRGF0ZXNbMF06dy5jb25maWcubWluRGF0ZSYmdy5jb25maWcubWluRGF0ZS5nZXRUaW1lKCk+dy5ub3cuZ2V0VGltZSgpP3cuY29uZmlnLm1pbkRhdGU6dy5jb25maWcubWF4RGF0ZSYmdy5jb25maWcubWF4RGF0ZS5nZXRUaW1lKCk8dy5ub3cuZ2V0VGltZSgpP3cuY29uZmlnLm1heERhdGU6dy5ub3csdy5jdXJyZW50WWVhcj13Ll9pbml0aWFsRGF0ZS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPXcuX2luaXRpYWxEYXRlLmdldE1vbnRoKCksdy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wJiYody5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dy5zZWxlY3RlZERhdGVzWzBdKTt2b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lJiYody5jb25maWcubWluVGltZT13LnBhcnNlRGF0ZSh3LmNvbmZpZy5taW5UaW1lLCJIOmkiKSk7dm9pZCAwIT09dy5jb25maWcubWF4VGltZSYmKHcuY29uZmlnLm1heFRpbWU9dy5wYXJzZURhdGUody5jb25maWcubWF4VGltZSwiSDppIikpO3cubWluRGF0ZUhhc1RpbWU9ISF3LmNvbmZpZy5taW5EYXRlJiYody5jb25maWcubWluRGF0ZS5nZXRIb3VycygpPjB8fHcuY29uZmlnLm1pbkRhdGUuZ2V0TWludXRlcygpPjB8fHcuY29uZmlnLm1pbkRhdGUuZ2V0U2Vjb25kcygpPjApLHcubWF4RGF0ZUhhc1RpbWU9ISF3LmNvbmZpZy5tYXhEYXRlJiYody5jb25maWcubWF4RGF0ZS5nZXRIb3VycygpPjB8fHcuY29uZmlnLm1heERhdGUuZ2V0TWludXRlcygpPjB8fHcuY29uZmlnLm1heERhdGUuZ2V0U2Vjb25kcygpPjApfSgpLHcudXRpbHM9e2dldERheXNJbk1vbnRoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXcuY3VycmVudE1vbnRoKSx2b2lkIDA9PT10JiYodD13LmN1cnJlbnRZZWFyKSwxPT09ZSYmKHQlND09MCYmdCUxMDAhPTB8fHQlNDAwPT0wKT8yOTp3LmwxMG4uZGF5c0luTW9udGhbZV19fSx3LmlzTW9iaWxlfHxmdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7aWYody5jYWxlbmRhckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItY2FsZW5kYXIiKSx3LmNhbGVuZGFyQ29udGFpbmVyLnRhYkluZGV4PS0xLCF3LmNvbmZpZy5ub0NhbGVuZGFyKXtpZihlLmFwcGVuZENoaWxkKCh3Lm1vbnRoTmF2PXMoImRpdiIsImZsYXRwaWNrci1tb250aHMiKSx3LnllYXJFbGVtZW50cz1bXSx3Lm1vbnRoRWxlbWVudHM9W10sdy5wcmV2TW9udGhOYXY9cygic3BhbiIsImZsYXRwaWNrci1wcmV2LW1vbnRoIiksdy5wcmV2TW9udGhOYXYuaW5uZXJIVE1MPXcuY29uZmlnLnByZXZBcnJvdyx3Lm5leHRNb250aE5hdj1zKCJzcGFuIiwiZmxhdHBpY2tyLW5leHQtbW9udGgiKSx3Lm5leHRNb250aE5hdi5pbm5lckhUTUw9dy5jb25maWcubmV4dEFycm93LHEoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodywiX2hpZGVQcmV2TW9udGhBcnJvdyIse2dldDpmdW5jdGlvbigpe3JldHVybiB3Ll9faGlkZVByZXZNb250aEFycm93fSxzZXQ6ZnVuY3Rpb24oZSl7dy5fX2hpZGVQcmV2TW9udGhBcnJvdyE9PWUmJihkKHcucHJldk1vbnRoTmF2LCJmbGF0cGlja3ItZGlzYWJsZWQiLGUpLHcuX19oaWRlUHJldk1vbnRoQXJyb3c9ZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsIl9oaWRlTmV4dE1vbnRoQXJyb3ciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5fX2hpZGVOZXh0TW9udGhBcnJvd30sc2V0OmZ1bmN0aW9uKGUpe3cuX19oaWRlTmV4dE1vbnRoQXJyb3chPT1lJiYoZCh3Lm5leHRNb250aE5hdiwiZmxhdHBpY2tyLWRpc2FibGVkIixlKSx3Ll9faGlkZU5leHRNb250aEFycm93PWUpfX0pLHcuY3VycmVudFllYXJFbGVtZW50PXcueWVhckVsZW1lbnRzWzBdLERlKCksdy5tb250aE5hdikpLHcuaW5uZXJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWlubmVyQ29udGFpbmVyIiksdy5jb25maWcud2Vla051bWJlcnMpe3ZhciB0PWZ1bmN0aW9uKCl7dy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNXZWVrcyIpO3ZhciBlPXMoImRpdiIsImZsYXRwaWNrci13ZWVrd3JhcHBlciIpO2UuYXBwZW5kQ2hpbGQocygic3BhbiIsImZsYXRwaWNrci13ZWVrZGF5Iix3LmwxMG4ud2Vla0FiYnJldmlhdGlvbikpO3ZhciB0PXMoImRpdiIsImZsYXRwaWNrci13ZWVrcyIpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLHt3ZWVrV3JhcHBlcjplLHdlZWtOdW1iZXJzOnR9fSgpLG49dC53ZWVrV3JhcHBlcixhPXQud2Vla051bWJlcnM7dy5pbm5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx3LndlZWtOdW1iZXJzPWEsdy53ZWVrV3JhcHBlcj1ufXcuckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItckNvbnRhaW5lciIpLHcuckNvbnRhaW5lci5hcHBlbmRDaGlsZCgkKCkpLHcuZGF5c0NvbnRhaW5lcnx8KHcuZGF5c0NvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItZGF5cyIpLHcuZGF5c0NvbnRhaW5lci50YWJJbmRleD0tMSksSigpLHcuckNvbnRhaW5lci5hcHBlbmRDaGlsZCh3LmRheXNDb250YWluZXIpLHcuaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQody5yQ29udGFpbmVyKSxlLmFwcGVuZENoaWxkKHcuaW5uZXJDb250YWluZXIpfXcuY29uZmlnLmVuYWJsZVRpbWUmJmUuYXBwZW5kQ2hpbGQoZnVuY3Rpb24oKXt3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1RpbWUiKSx3LmNvbmZpZy5ub0NhbGVuZGFyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm5vQ2FsZW5kYXIiKTt2YXIgZT14KHcuY29uZmlnKTt3LnRpbWVDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXRpbWUiKSx3LnRpbWVDb250YWluZXIudGFiSW5kZXg9LTE7dmFyIHQ9cygic3BhbiIsImZsYXRwaWNrci10aW1lLXNlcGFyYXRvciIsIjoiKSxuPW0oImZsYXRwaWNrci1ob3VyIix7ImFyaWEtbGFiZWwiOncubDEwbi5ob3VyQXJpYUxhYmVsfSk7dy5ob3VyRWxlbWVudD1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO3ZhciBhPW0oImZsYXRwaWNrci1taW51dGUiLHsiYXJpYS1sYWJlbCI6dy5sMTBuLm1pbnV0ZUFyaWFMYWJlbH0pO3cubWludXRlRWxlbWVudD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLHcuaG91ckVsZW1lbnQudGFiSW5kZXg9dy5taW51dGVFbGVtZW50LnRhYkluZGV4PS0xLHcuaG91ckVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRIb3VycygpOncuY29uZmlnLnRpbWVfMjRocj9lLmhvdXJzOmZ1bmN0aW9uKGUpe3N3aXRjaChlJTI0KXtjYXNlIDA6Y2FzZSAxMjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gZSUxMn19KGUuaG91cnMpKSx3Lm1pbnV0ZUVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRNaW51dGVzKCk6ZS5taW51dGVzKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5jb25maWcuaG91ckluY3JlbWVudC50b1N0cmluZygpKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdGVwIix3LmNvbmZpZy5taW51dGVJbmNyZW1lbnQudG9TdHJpbmcoKSksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1pbiIsdy5jb25maWcudGltZV8yNGhyPyIwIjoiMSIpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXgiLHcuY29uZmlnLnRpbWVfMjRocj8iMjMiOiIxMiIpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIiwiMCIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIjU5Iiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQodCksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGEpLHcuY29uZmlnLnRpbWVfMjRociYmdy50aW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInRpbWUyNGhyIik7aWYody5jb25maWcuZW5hYmxlU2Vjb25kcyl7dy50aW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1NlY29uZHMiKTt2YXIgaT1tKCJmbGF0cGlja3Itc2Vjb25kIik7dy5zZWNvbmRFbGVtZW50PWkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0sdy5zZWNvbmRFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0U2Vjb25kcygpOmUuc2Vjb25kcyksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5taW51dGVFbGVtZW50LmdldEF0dHJpYnV0ZSgic3RlcCIpKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLCIwIiksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4IiwiNTkiKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHMoInNwYW4iLCJmbGF0cGlja3ItdGltZS1zZXBhcmF0b3IiLCI6IikpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChpKX13LmNvbmZpZy50aW1lXzI0aHJ8fCh3LmFtUE09cygic3BhbiIsImZsYXRwaWNrci1hbS1wbSIsdy5sMTBuLmFtUE1bcigody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5ob3VyRWxlbWVudC52YWx1ZTp3LmNvbmZpZy5kZWZhdWx0SG91cik+MTEpXSksdy5hbVBNLnRpdGxlPXcubDEwbi50b2dnbGVUaXRsZSx3LmFtUE0udGFiSW5kZXg9LTEsdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHcuYW1QTSkpO3JldHVybiB3LnRpbWVDb250YWluZXJ9KCkpO2Qody5jYWxlbmRhckNvbnRhaW5lciwicmFuZ2VNb2RlIiwicmFuZ2UiPT09dy5jb25maWcubW9kZSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhbmltYXRlIiwhMD09PXcuY29uZmlnLmFuaW1hdGUpLGQody5jYWxlbmRhckNvbnRhaW5lciwibXVsdGlNb250aCIsdy5jb25maWcuc2hvd01vbnRocz4xKSx3LmNhbGVuZGFyQ29udGFpbmVyLmFwcGVuZENoaWxkKGUpO3ZhciBpPXZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvJiZ2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUby5ub2RlVHlwZTtpZigody5jb25maWcuaW5saW5lfHx3LmNvbmZpZy5zdGF0aWMpJiYody5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHcuY29uZmlnLmlubGluZT8iaW5saW5lIjoic3RhdGljIiksdy5jb25maWcuaW5saW5lJiYoIWkmJncuZWxlbWVudC5wYXJlbnROb2RlP3cuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3LmNhbGVuZGFyQ29udGFpbmVyLHcuX2lucHV0Lm5leHRTaWJsaW5nKTp2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbyYmdy5jb25maWcuYXBwZW5kVG8uYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcikpLHcuY29uZmlnLnN0YXRpYykpe3ZhciBsPXMoImRpdiIsImZsYXRwaWNrci13cmFwcGVyIik7dy5lbGVtZW50LnBhcmVudE5vZGUmJncuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsLHcuZWxlbWVudCksbC5hcHBlbmRDaGlsZCh3LmVsZW1lbnQpLHcuYWx0SW5wdXQmJmwuYXBwZW5kQ2hpbGQody5hbHRJbnB1dCksbC5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKX13LmNvbmZpZy5zdGF0aWN8fHcuY29uZmlnLmlubGluZXx8KHZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvP3cuY29uZmlnLmFwcGVuZFRvOndpbmRvdy5kb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKX0oKSxmdW5jdGlvbigpe3cuY29uZmlnLndyYXAmJlsib3BlbiIsImNsb3NlIiwidG9nZ2xlIiwiY2xlYXIiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHcuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS0iK2UrIl0iKSwoZnVuY3Rpb24odCl7cmV0dXJuIEEodCwiY2xpY2siLHdbZV0pfSkpfSkpO2lmKHcuaXNNb2JpbGUpcmV0dXJuIHZvaWQgZnVuY3Rpb24oKXt2YXIgZT13LmNvbmZpZy5lbmFibGVUaW1lP3cuY29uZmlnLm5vQ2FsZW5kYXI\/InRpbWUiOiJkYXRldGltZS1sb2NhbCI6ImRhdGUiO3cubW9iaWxlSW5wdXQ9cygiaW5wdXQiLHcuaW5wdXQuY2xhc3NOYW1lKyIgZmxhdHBpY2tyLW1vYmlsZSIpLHcubW9iaWxlSW5wdXQudGFiSW5kZXg9MSx3Lm1vYmlsZUlucHV0LnR5cGU9ZSx3Lm1vYmlsZUlucHV0LmRpc2FibGVkPXcuaW5wdXQuZGlzYWJsZWQsdy5tb2JpbGVJbnB1dC5yZXF1aXJlZD13LmlucHV0LnJlcXVpcmVkLHcubW9iaWxlSW5wdXQucGxhY2Vob2xkZXI9dy5pbnB1dC5wbGFjZWhvbGRlcix3Lm1vYmlsZUZvcm1hdFN0cj0iZGF0ZXRpbWUtbG9jYWwiPT09ZT8iWS1tLWRcXFRIOmk6UyI6ImRhdGUiPT09ZT8iWS1tLWQiOiJIOmk6UyIsdy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wJiYody5tb2JpbGVJbnB1dC5kZWZhdWx0VmFsdWU9dy5tb2JpbGVJbnB1dC52YWx1ZT13LmZvcm1hdERhdGUody5zZWxlY3RlZERhdGVzWzBdLHcubW9iaWxlRm9ybWF0U3RyKSk7dy5jb25maWcubWluRGF0ZSYmKHcubW9iaWxlSW5wdXQubWluPXcuZm9ybWF0RGF0ZSh3LmNvbmZpZy5taW5EYXRlLCJZLW0tZCIpKTt3LmNvbmZpZy5tYXhEYXRlJiYody5tb2JpbGVJbnB1dC5tYXg9dy5mb3JtYXREYXRlKHcuY29uZmlnLm1heERhdGUsIlktbS1kIikpO3cuaW5wdXQuZ2V0QXR0cmlidXRlKCJzdGVwIikmJih3Lm1vYmlsZUlucHV0LnN0ZXA9U3RyaW5nKHcuaW5wdXQuZ2V0QXR0cmlidXRlKCJzdGVwIikpKTt3LmlucHV0LnR5cGU9ImhpZGRlbiIsdm9pZCAwIT09dy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQudHlwZT0iaGlkZGVuIik7dHJ5e3cuaW5wdXQucGFyZW50Tm9kZSYmdy5pbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3Lm1vYmlsZUlucHV0LHcuaW5wdXQubmV4dFNpYmxpbmcpfWNhdGNoKGUpe31BKHcubW9iaWxlSW5wdXQsImNoYW5nZSIsKGZ1bmN0aW9uKGUpe3cuc2V0RGF0ZShnKGUpLnZhbHVlLCExLHcubW9iaWxlRm9ybWF0U3RyKSxwZSgib25DaGFuZ2UiKSxwZSgib25DbG9zZSIpfSkpfSgpO3ZhciBlPWwoaWUsNTApO3cuX2RlYm91bmNlZENoYW5nZT1sKE4sMzAwKSx3LmRheXNDb250YWluZXImJiEvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJkEody5kYXlzQ29udGFpbmVyLCJtb3VzZW92ZXIiLChmdW5jdGlvbihlKXsicmFuZ2UiPT09dy5jb25maWcubW9kZSYmYWUoZyhlKSl9KSk7QSh3aW5kb3cuZG9jdW1lbnQuYm9keSwia2V5ZG93biIsbmUpLHcuY29uZmlnLmlubGluZXx8dy5jb25maWcuc3RhdGljfHxBKHdpbmRvdywicmVzaXplIixlKTt2b2lkIDAhPT13aW5kb3cub250b3VjaHN0YXJ0P0Eod2luZG93LmRvY3VtZW50LCJ0b3VjaHN0YXJ0IixaKTpBKHdpbmRvdy5kb2N1bWVudCwibW91c2Vkb3duIixaKTtBKHdpbmRvdy5kb2N1bWVudCwiZm9jdXMiLFose2NhcHR1cmU6ITB9KSwhMD09PXcuY29uZmlnLmNsaWNrT3BlbnMmJihBKHcuX2lucHV0LCJmb2N1cyIsdy5vcGVuKSxBKHcuX2lucHV0LCJjbGljayIsdy5vcGVuKSk7dm9pZCAwIT09dy5kYXlzQ29udGFpbmVyJiYoQSh3Lm1vbnRoTmF2LCJjbGljayIsQ2UpLEEody5tb250aE5hdixbImtleXVwIiwiaW5jcmVtZW50Il0sRiksQSh3LmRheXNDb250YWluZXIsImNsaWNrIix1ZSkpO2lmKHZvaWQgMCE9PXcudGltZUNvbnRhaW5lciYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50KXt2YXIgdD1mdW5jdGlvbihlKXtyZXR1cm4gZyhlKS5zZWxlY3QoKX07QSh3LnRpbWVDb250YWluZXIsWyJpbmNyZW1lbnQiXSxJKSxBKHcudGltZUNvbnRhaW5lciwiYmx1ciIsSSx7Y2FwdHVyZTohMH0pLEEody50aW1lQ29udGFpbmVyLCJjbGljayIsWSksQShbdy5ob3VyRWxlbWVudCx3Lm1pbnV0ZUVsZW1lbnRdLFsiZm9jdXMiLCJjbGljayJdLHQpLHZvaWQgMCE9PXcuc2Vjb25kRWxlbWVudCYmQSh3LnNlY29uZEVsZW1lbnQsImZvY3VzIiwoZnVuY3Rpb24oKXtyZXR1cm4gdy5zZWNvbmRFbGVtZW50JiZ3LnNlY29uZEVsZW1lbnQuc2VsZWN0KCl9KSksdm9pZCAwIT09dy5hbVBNJiZBKHcuYW1QTSwiY2xpY2siLChmdW5jdGlvbihlKXtJKGUpLE4oKX0pKX13LmNvbmZpZy5hbGxvd0lucHV0JiZBKHcuX2lucHV0LCJibHVyIix0ZSl9KCksKHcuc2VsZWN0ZWREYXRlcy5sZW5ndGh8fHcuY29uZmlnLm5vQ2FsZW5kYXIpJiYody5jb25maWcuZW5hYmxlVGltZSYmXyh3LmNvbmZpZy5ub0NhbGVuZGFyP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqOnZvaWQgMCksYmUoITEpKSxrKCk7dmFyIHQ9L14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTshdy5pc01vYmlsZSYmdCYmY2UoKSxwZSgib25SZWFkeSIpfSgpLHd9ZnVuY3Rpb24gayhlLHQpe2Zvcih2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR9KSksYT1bXSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBvPW5baV07dHJ5e2lmKG51bGwhPT1vLmdldEF0dHJpYnV0ZSgiZGF0YS1mcC1vbWl0IikpY29udGludWU7dm9pZCAwIT09by5fZmxhdHBpY2tyJiYoby5fZmxhdHBpY2tyLmRlc3Ryb3koKSxvLl9mbGF0cGlja3I9dm9pZCAwKSxvLl9mbGF0cGlja3I9RShvLHR8fHt9KSxhLnB1c2goby5fZmxhdHBpY2tyKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX1yZXR1cm4gMT09PWEubGVuZ3RoP2FbMF06YX0idW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxFbGVtZW50JiYidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDb2xsZWN0aW9uJiYidW5kZWZpbmVkIiE9dHlwZW9mIE5vZGVMaXN0JiYoSFRNTENvbGxlY3Rpb24ucHJvdG90eXBlLmZsYXRwaWNrcj1Ob2RlTGlzdC5wcm90b3R5cGUuZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKHRoaXMsZSl9LEhUTUxFbGVtZW50LnByb3RvdHlwZS5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsoW3RoaXNdLGUpfSk7dmFyIFQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU\/ayh3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKSx0KTplIGluc3RhbmNlb2YgTm9kZT9rKFtlXSx0KTprKGUsdCl9O3JldHVybiBULmRlZmF1bHRDb25maWc9e30sVC5sMTBucz17ZW46ZSh7fSxpKSxkZWZhdWx0OmUoe30saSl9LFQubG9jYWxpemU9ZnVuY3Rpb24odCl7VC5sMTBucy5kZWZhdWx0PWUoZSh7fSxULmwxMG5zLmRlZmF1bHQpLHQpfSxULnNldERlZmF1bHRzPWZ1bmN0aW9uKHQpe1QuZGVmYXVsdENvbmZpZz1lKGUoe30sVC5kZWZhdWx0Q29uZmlnKSx0KX0sVC5wYXJzZURhdGU9Qyh7fSksVC5mb3JtYXREYXRlPWIoe30pLFQuY29tcGFyZURhdGVzPU0sInVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnkmJnZvaWQgMCE9PWpRdWVyeS5mbiYmKGpRdWVyeS5mbi5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsodGhpcyxlKX0pLERhdGUucHJvdG90eXBlLmZwX2luY3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSx0aGlzLmdldE1vbnRoKCksdGhpcy5nZXREYXRlKCkrKCJzdHJpbmciPT10eXBlb2YgZT9wYXJzZUludChlLDEwKTplKSl9LCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LmZsYXRwaWNrcj1UKSxUfSkpOwovKiogL20vanMvdmFuaWxsYWpzL2ZsYXRwaWNrci5mci5qcyAqKi8KdmFyIF9fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MTciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMjo0NiI7InVzZSBzdHJpY3QiO19fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDE6NDYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDIzLTAxLTEyIDEwOjUxOjMwIjsidXNlIHN0cmljdCI7X19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyMS0xMi0yMSAxMzozMDo1MiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYixhKXsib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2R1bGU\/YShleHBvcnRzKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sYSk6KGI9InVuZGVmaW5lZCIhPT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmJ8fHNlbGYsYShiLmZyPXt9KSl9KSh0aGlzLGZ1bmN0aW9uKGIpe3ZhciBhPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmZsYXRwaWNrcj93aW5kb3cuZmxhdHBpY2tyOntsMTBuczp7fX0sYz17Zmlyc3REYXlPZldlZWs6MSx3ZWVrZGF5czp7c2hvcnRoYW5kOiJkaW0gbHVuIG1hciBtZXIgamV1IHZlbiBzYW0iLnNwbGl0KCIgIiksbG9uZ2hhbmQ6ImRpbWFuY2hlIGx1bmRpIG1hcmRpIG1lcmNyZWRpIGpldWRpIHZlbmRyZWRpIHNhbWVkaSIuc3BsaXQoIiAiKX0sbW9udGhzOntzaG9ydGhhbmQ6ImphbnYgZsOpdnIgbWFycyBhdnIgbWFpIGp1aW4ganVpbCBhb8O7dCBzZXB0IG9jdCBub3YgZMOpYyIuc3BsaXQoIiAiKSwKbG9uZ2hhbmQ6ImphbnZpZXIgZsOpdnJpZXIgbWFycyBhdnJpbCBtYWkganVpbiBqdWlsbGV0IGFvw7t0IHNlcHRlbWJyZSBvY3RvYnJlIG5vdmVtYnJlIGTDqWNlbWJyZSIuc3BsaXQoIiAiKX0sb3JkaW5hbDpmdW5jdGlvbihkKXtyZXR1cm4gMTxkPyIiOiJlciJ9LHJhbmdlU2VwYXJhdG9yOiIgYXUgIix3ZWVrQWJicmV2aWF0aW9uOiJTZW0iLHNjcm9sbFRpdGxlOiJEw6lmaWxlciBwb3VyIGF1Z21lbnRlciBsYSB2YWxldXIiLHRvZ2dsZVRpdGxlOiJDbGlxdWVyIHBvdXIgYmFzY3VsZXIiLHRpbWVfMjRocjohMH07YS5sMTBucy5mcj1jO2E9YS5sMTBucztiLkZyZW5jaD1jO2IuZGVmYXVsdD1hO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pOwovKiogL20vanMvZnIubmV3Y2Fycy5pbmxpbmUuanMgKiovCnZhciBqc19kMmNfZ2V0X3ZhbD0oanNfZDJjX2dldF92YWx8fGZ1bmN0aW9uKGlkKXt0cnl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWx1ZTt9Y2F0Y2goZXgpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKWNvbnNvbGUubG9nKCJTeXN0ZW0gZmFpbGVkIHdoaWxlIHJldHJpZXZpbmcgcmVwbGFjZW1lbnQgdmFsdWU6ICIraWQsZXgpO3JldHVybicnO319KTt2YXIgaWRlbnRfNDg5NjQwNDljNTNjYjQyYzE2ZmVkMWU4ZGUwZDMzNjY7dHJ5e2Z1bmN0aW9uIE9wdGFub25XcmFwcGVyKCl7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMTA0YTU5ODgxMjVjYjI1NTQ3N2U4ODVhN2I2NGVlMWY7dHJ5e0QyRlQoeyJsaXZlIjoiXC9cL2Fzc2V0cy5hZG9iZWR0bS5jb21cLzI0OGQ2M2MyZmY2YlwvMTgxYWRkMTUyZDAwXC9sYXVuY2gtY2Y1ZmU0ZWIyYjcyLm1pbi5qcyIsInN0YWdpbmciOiJcL1wvYXNzZXRzLmFkb2JlZHRtLmNvbVwvMjQ4ZDYzYzJmZjZiXC8xODFhZGQxNTJkMDBcL2xhdW5jaC05OGJhMTFkMTI0Y2Qtc3RhZ2luZy5taW4uanMifSx7InVzZXJMYW5ndWFnZSI6ImZyZSIsInBhQ29kZSI6IkIyNTQ5IiwiY2xpZW50IjoiZm9yZCIsInNpdGUiOiJkYzpkMmM6Y2EiLCJwYWdlSWQiOiJzaG93cm9vbSJ9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzNkZDg1ZWE0ZjQ2YzI0ODU5NmExYTllOTA4MjdiMTQxO3RyeXtEMkFTQyh7InVzZXJMYW5ndWFnZSI6ImZyZSIsInBhQ29kZSI6IkIyNTQ5IiwiY2xpZW50IjoiZm9yZCIsInBhZ2VJZCI6InNob3dyb29tIiwib2VtSW5mbyI6eyJvZW1EZWFsZXJDb2RlIjoiQjI1NDkiLCIwIjoiQjI1NDkiLCJvZW0iOiJGb3JkIERpcmVjdCIsIjEiOiJGb3JkIERpcmVjdCJ9LCJkZWFsZXJfbmFtZSI6IiIsImZvcm1NYXAiOnsiQURGQnVybGluZ3Rvbl9DZW50cmVfLV9FVl9Ub3VyXy1fRHJpdmVmZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIEJ1cmxpbmd0b24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIEJ1cmxpbmd0b24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGY2FtcGJlbGxyaXZlcmNhcnMuY2FfKEQyQ19NZWRpYSlfLV9MZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhbXBiZWxscml2ZXJjYXJzLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIFVzZWQgICBMb2NfcGh5c2ljYWw9OTAwMTYxM10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhbXBiZWxscml2ZXJjYXJzLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIFVzZWQgICBMb2NfcGh5c2ljYWw9OTAwMTYxM10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X0FwcCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBBcHBvaW50bWVudCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9DYXIiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9PZmYiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1BERiI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9SZXEiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1NlciI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgW0ZhY2Vib29rIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgW0ZhY2Vib29rIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1RyYSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9WZWgiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYV8tX09yZ2FuaWMpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbT3JnYW5pY10ifSwiQURGZGFuaWVscGFyZWRvZGdlLmNvbV8ocGFyX0QyQ19NZWRpYSlfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGRhbmllbHBhcmVkb2RnZS5jb20gKHBhciBEMkMgTWVkaWEpIC0gRDJDIE1lZGlhIC0gTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIFtHb29nbGUgLSBOZXVmLXZsYV0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGRhbmllbHBhcmVkb2RnZS5jb20gKHBhciBEMkMgTWVkaWEpIC0gRDJDIE1lZGlhIC0gTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIFtHb29nbGUgLSBOZXVmLXZsYV0ifSwiQURGZGVtb2NybS5kMmNtZWRpYS5jYV8oRDJDX01lZGlhXy1fT3JnYSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGRlbW9jcm0uZDJjbWVkaWEuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBkZW1vY3JtLmQyY21lZGlhLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIFtPcmdhbmljXSJ9LCJBREZNb25fc2l0ZV8tX0QyQ19NZWRpYV8tX0xlYWRfOl9EZW1hbmRlIjp7IkZSRU5DSCI6IkxlYWQgRnJvbSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UgKFNNUykgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UgKFNNUykgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19NZWRpYSlfLV8iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIFVzZWQtdmxhICAgTG9jX3BoeXNpY2FsPTkwMDExNDFdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIFVzZWQtdmxhICAgTG9jX3BoeXNpY2FsPTkwMDExNDFdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19NZWRpYSlfXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpICAtIExlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgW0ZhY2Vib29rIC0gVXNlZCBbIEtleXdvcmQ6IFVzZWQrVHJ1Y2tdICBMb2NfIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpICAtIExlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgW0ZhY2Vib29rIC0gVXNlZCBbIEtleXdvcmQ6IFVzZWQrVHJ1Y2tdICBMb2NfcCJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tXyhEMkNfX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDICBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTE4XSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDICBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTE4XSJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tX18oRDJDX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTMzXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTMzXSJ9LCJBREZwYWxsYWRpbm9zdWJhcnUuY2FfKHBhcl9EMkNfTWVkaWFfLV9PIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vc3ViYXJ1LmNhIChwYXIgRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBEMkMgTWVkaWEgLSBMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub3N1YmFydS5jYSAocGFyIEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gRDJDIE1lZGlhIC0gTGVhZDogUERGIGJyb2NodXJlIHJlcXVlc3QgW09yZ2FuaWNdIn0sIkFERlNjYXJib3JvdWdoX1Rvd25fQ2VudHJlXy1fRVZfVG91cl8tX0QiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTY2FyYm9yb3VnaCBUb3duIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTY2FyYm9yb3VnaCBUb3duIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlNoZXJ3YXlfR2FyZGVuc18tX0VWX1RvdXJfLV9Ecml2ZWZlc3QiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTaGVyd2F5IEdhcmRlbnMgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU2hlcndheSBHYXJkZW5zIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU3F1YXJlX09uZV8tX0VWX1RvdXJfLV9Ecml2ZWZlc3RfK19LaSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlNxdWFyZV9PbmVfLV9FVl9Ub3VyXy1fS2lhX1NpZ25fVXBfSG8iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIEtpYSBTaWduIFVwIEhvdCBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBLaWEgU2lnbiBVcCBIb3QgTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGVXBwZXJfQ2FuYWRhX01hbGxfLV9FVl9Ub3VyXy1fRHJpdmVmZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFVwcGVyIENhbmFkYSBNYWxsIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFVwcGVyIENhbmFkYSBNYWxsIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQUlDaGF0Ym90TGVhZCI6eyJGUkVOQ0giOiJMZWFkIDogQ2hhdEJvdCBJQSIsIkVOR0xJU0giOiJMZWFkOiBDaGF0Qm90IEFJIn0sIkF2YWlsYWJpbGl0eVVzZWQiOnsiRlJFTkNIIjoiTGVhZDogRGlzcG9uaWJpbGl0ZSBkJ3VuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5In0sIkJhbm5lckZvcm0iOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBmb3JtIGJhbm5lciIsIkVOR0xJU0giOiJMZWFkOiBCYW5uZXIgRm9ybSBSZXF1ZXN0In0sIkJlc3RQcmljZVJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgIG1laWxsZXVyIHByaXggKHZlaGljdWxlIG5ldWYpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgYmVzdCBwcmljZSAobmV3IHZlaGljbGUpIn0sIkJvZHlTaG9wIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGVuIGNhcm9zc2VyaWUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBib2R5IHNob3AgYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJCcm9jaHVyZXMiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgYnJvY2h1cmUiLCJFTkdMSVNIIjoiTGVhZCA6IEJyb2NodXJlIHJlcXVlc3QifSwiQnJvY2h1cmVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBicm9jaHVyZSIsIkVOR0xJU0giOiJMZWFkIDogQnJvY2h1cmUgcmVxdWVzdCJ9LCJCdWlsZEFuZFByaWNlX1NhdmUiOnsiRlJFTkNIIjoiTGVhZDogQ29uZmlndXJhdGlvbiBkJ3VuIHZlaGljdWxlIG5ldWYiLCJFTkdMSVNIIjoiTGVhZDogTmV3IFZlaGljbGUgQ29uZmlndXJhdGlvbiAoQnVpbGQgJiBQcmljZSkifSwiQnVpbGRBbmRQcmljZV9TdG9jayI6eyJGUkVOQ0giOiJMZWFkOiBEaXNwb25pYmlsaXRlIGQndW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkifSwiQ2FycHJvb2ZNYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIENhckZheCIsIkVOR0xJU0giOiJMZWFkOiBDYXJGYXggcmVxdWVzdCJ9LCJDb250YWN0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QifSwiQ29udGFjdFVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QifSwiQ29udGFjdFZpc2l0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFZlbnRlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU2FsZXMifSwiQ29udGFjdFZpc2l0UmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFZlbnRlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU2FsZXMifSwiQ3JlZGl0Qm9vc3RNdWx0aSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHByZXF1YWxpZmljYXRpb24gZGUgY3JlZGl0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIENyZWRpdCBQcmUtUXVhbGlmaWNhdGlvbiJ9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IChQbHVzaWV1cnMgZXRhcGVzKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1c2lldXJzIGV0YXBlcyAyZSBjaGFuY2UpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsaXN0ZXAgMm5kIGNoYW5jZSkifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiOnsiRlJFTkNIIjoiTGVhZDogQXBwcm9iYXRpb24gZGUgY3JlZGl0IGluc3RhbnRhbmVlIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgQ3JlZGl0IEFwcHJvdmFsIn0sIkNyZWRpdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RNb2JpbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RNb2JpbGVGdWxsIjp7IkZSRU5DSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcifSwiQ3JlZGl0UmVxdWVzdF9TaG9ydCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAodmVyc2lvbiBjb3VydGUpIiwiRU5HTElTSCI6IkxlYWQgOiBDcmVkaXQgYXBwbGljYXRpb24gKHNob3J0IHZlcnNpb24pIn0sIkRlYWxlckFwcG9pbnRtZW50Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIiwiRU5HTElTSCI6IkxlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QifSwiRGlzY292ZXJPZmZlciI6eyJGUkVOQ0giOiJMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAiLCJFTkdMSVNIIjoiTGVhZDogU2VlIE9mZmVyIENvdXBvbiBpbiBTUlAifSwiRXN0aGV0aWNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYSBsJ2VzdGhldHF1ZSBldCBsYXZlLWF1dG8iLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBlc3RoZXRpYyBhbmQgY2FyIHdhc2ggYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJmYWNlYm9va0Nvbm5lY3QiOnsiRlJFTkNIIjoiTGVhZDogUmFiYWlzIEZhY2Vib29rIiwiRU5HTElTSCI6IkxlYWQ6IEZhY2Vib29rIFJlYmF0ZSJ9LCJGaW5kVmVoaWNsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZWNoZXJjaGUgZGUgdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCB0byBmaW5kIGEgcHJlLW93bmVkIHZlaGljbGUifSwiaGVhZGVyU2VydmljZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IEV4cHJlc3MifSwiTWFrZU9mZmVyIjp7IkZSRU5DSCI6IkxlYWQgOiBPZmZyZSBkJ2FjaGF0IHN1ciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUifSwiTWFrZU9mZmVyTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBPZmZyZSBkJ2FjaGF0IHN1ciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUifSwibWVudVNlcnZpY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBFeHByZXNzIn0sIk1vbnRobHlQYXltZW50cyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMifSwiTW9udGhseVBheW1lbnRzX05FVyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMifSwiTW9udGhseVBheW1lbnRzX1NNUyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIC0gU01TIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMgLSBTTVMifSwiTW9udGhseVBheW1lbnRzX1NNU19ORVciOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyAtIFNNUyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIC0gU01TIn0sIlBhcnRzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb21tYW5kZSBwaSZlZ3JhdmU7Y2UiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgdmVoaWNsZSBwYXJ0cyJ9LCJQaG90b1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBwaG90b3MiLCJFTkdMSVNIIjoiTGVhZDogUGhvdG8gcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGUiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZTMiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZUFBIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQcmljZVJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcHJpeCIsIkVOR0xJU0giOiJMZWFkOiBQcmljZSByZXF1ZXN0In0sIlByaWNlUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwcml4IiwiRU5HTElTSCI6IkxlYWQ6IFByaWNlIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJQcmljZVZlaGljbGVBY2N1dHJhZGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkIDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJQcmljZVZlaGljbGVOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkOiBUcmFkZS1pbiByZXF1ZXN0In0sIlF1aWNrRW1haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBFeHByZXNzIHJlcXVlc3QifSwiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBFeHByZXNzIChpbnZlbnRhaXJlIG5ldWYpIiwiRU5HTElTSCI6IkxlYWQ6IEV4cHJlc3MgcmVxdWVzdCAobmV3IGludmVudG9yeSkifSwiUmViYXRlQ291cG9uIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKHZlaGljdWxlIGVuIGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIn0sIlJlYmF0ZUNvdXBvbkludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSkifSwiUmViYXRlQ291cG9uTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIn0sIlJlYmF0ZUNvdXBvbk5ld0JOUCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjb25maWd1cmF0ZXVyKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGNvbmZpZ3VyYXRvcikifSwiUmViYXRlQ291cG9uTmV3SW52ZW50b3J5Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5KSJ9LCJSZWJhdGVDb3Vwb25OZXdTbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWJhdGVDb3Vwb25Qcm9tbyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGJvdXRvbiAnUHJvbW90aW9ucycpIiwiRU5HTElTSCI6IkxlYWQ6IFJlYmF0ZSBDb3Vwb24gcmVxdWVzdCAoJ1Byb21vdGlvbnMnIGJ1dHRvbikifSwiUmViYXRlQ291cG9uU2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmViYXRlQ291cG9uVXNlZFNsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlY2FsbHMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkJ2luZm9ybWF0aW9uIHN1ciBsZXMgcmFwcGVscyIsIkVOR0xJU0giOiJSZWNhbGwgaW5mb3JtYXRpb24gcmVxdWVzdCJ9LCJSZXNlcnZlSXROb3ciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgcG91ciByZXNlcnZlciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBwcmUtb3JkZXIgYSB2ZWhpY2xlIn0sIlJlc2VydmVJdE5vd05ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBwb3VyIHJlc2VydmVyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIHByZS1vcmRlciBhIHZlaGljbGUifSwiU2VsbENhciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBWZW5kZXogVmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gYnV5IHlvdXIgY2FyIn0sIlNlbGxDYXJfU2hvcnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgVmVuZGV6LW5vdXMgdm90cmUgdmVoaWN1bGUgKHZlcnNpb24gY291cnRlKSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBidXkgeW91ciBjYXIgKFNob3J0IHZlcnNpb24pIn0sIlNlcnZpY2VSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0In0sIlNNU0xlYWQiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBTTVMgKFRleHRvKSIsIkVOR0xJU0giOiJMZWFkOiBTTVMgcmVxdWVzdCJ9LCJTTVNMZWFkX29sZCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBTTVMgKFRleHRvKSIsIkVOR0xJU0giOiJMZWFkIDogU01TIHJlcXVlc3QifSwiU3BlY3NSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgZmljaGUgUERGIC0gVmVoaWN1bGUgZW4gaW52ZW50YWlyZSIsIkVOR0xJU0giOiJMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5In0sIlNwZWNzUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGJyb2NodXJlIFBERiIsIkVOR0xJU0giOiJMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCJ9LCJTUlBDb250YWN0VXMiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBTUlAiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU1JQIn0sIlRlc3REcml2ZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2Vzc2FpIHJvdXRpZXIiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSB0ZXN0IGRyaXZlIn0sIlRlc3REcml2ZU5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2Vzc2FpIHJvdXRpZXIiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSB0ZXN0IGRyaXZlIn0sIlRpcmVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwbmV1cyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciB0aXJlcyJ9LCJQcm9tb01haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdpbnZpdGF0aW9uIGEgbGEgdmVudGUgcHJpdmVlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGludml0YXRpb24gdG8gcHJpdmF0ZSBzYWxlIn0sIlNsaWRlV2lkZ2V0Rm9ybSI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sIkNvbXBhcmVGb3JtIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifSwiU2VhcmNoRmlsdGVycyI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sImhlYWRlckdsb2JhbFNlYXJjaCI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn19LCJzdWJfZ2E0IjoiWSJ9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Y3M2ZhNmFiYmZiNGJhYjNmNDlkYWFmYjM4OTFlMjdmO3RyeXsoZnVuY3Rpb24odyxkLHQscix1KXt2YXIgZixuLGk7d1t1XT13W3VdfHxbXSxmPWZ1bmN0aW9uKCl7dmFyIG89e3RpOiI1MDc5MzkxIixlbmFibGVBdXRvU3BhVHJhY2tpbmc6dHJ1ZX07by5xPXdbdV0sd1t1XT1uZXcgVUVUKG8pLHdbdV0ucHVzaCgicGFnZUxvYWQiKX0sbj1kLmNyZWF0ZUVsZW1lbnQodCksbi5zcmM9cixuLmFzeW5jPTEsbi5zZXRBdHRyaWJ1dGUoImRhdGEtb3QtaWdub3JlIix0cnVlKSxuLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5yZWFkeVN0YXRlO3MmJnMhPT0ibG9hZGVkIiYmcyE9PSJjb21wbGV0ZSJ8fChmKCksbi5vbmxvYWQ9bi5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCl9LGk9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KVswXSxpLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4saSl9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsIi8vYmF0LmJpbmcuY29tL2JhdC5qcyIsInVldHEiKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzE1ZGJlMWVjNGJiODE5ZjNiZTlhZjBiYjkxNzMxZDlmO3RyeXt2YXIgZGVwbG95bWVudFR5cGU9JycranNfZDJjX2dldF92YWwoIjJlamhiYzB5eW9nMHd3dyIpKycnO2lmKGRlcGxveW1lbnRUeXBlPT0nbGl2ZScpe2dhVHJhY2soJ190cmFja0V2ZW50JywnUGFnZXMgdnVlcycsJ1NlY3Rpb24tTmV1Zi1Nb2JpbGUnLCcnLDEpO2dhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO31lbHNlIGlmKGRlcGxveW1lbnRUeXBlPT0nc3RhZ2luZycpe2dhVHJhY2soJ2IuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzZhMTZkMmNmNmQxNzU0ZmNjNzdlNjFmMjU0ODAxNDVhO3RyeXtmdW5jdGlvbiBzaG93UGhvbmVQb3B1cCgpe2dhVHJhY2soJ190cmFja0V2ZW50JywnVGVsZXBob25lcycsJ1NpdGUtTW9iaWxlJywnJywxKTt2YXIgaHRtbD1QaG9uZXNUb1JlcGxhY2UucmVwbGFjZShhdG9iKCJQR1JwZGlCamJHRnpjejBuYldWdWRTYytQSFZzSUdOc1lYTnpQU0p6ZEdGamF5MXNZeUkrUEd4cFBnb0pQR0VnSUdoeVpXWTlJblJsYkRwN0pGQklUMDVGZlNJZ2RHRnlaMlYwUFNKZmMyVnNaaUlnYzNSNWJHVTlJbVp2Ym5RdGMybDZaVG9nTWpKd2VEc2lJR1JoZEdFdFpHVndZWEowYldWdWREMGliM1JvWlhJaVBnb0pDVHhwSUdOc1lYTnpQU0ptWVNCbVlTMXdhRzl1WlNJZ2MzUjViR1U5SW0xaGNtZHBiam9nTTNCNElERXdjSGdnTUNBeE5YQjRPeUkrUEM5cFBnb0pDVlpsYm5SbGN3b0pQQzloUGdvSkNqd3ZiR2srUEM5MWJENDhMMlJwZGo0PSIpKTtpZigkKGh0bWwpLmZpbmQoJ2EnKS5sZW5ndGg9PTEpeyQoJyNwaG9uZU51bWJlckRpdicpLmh0bWwoaHRtbCkuZmluZCgnYScpWzBdLmNsaWNrKCk7cmV0dXJuO30KJCgnI3Bob25lTnVtYmVyRGl2JykuaHRtbChodG1sKS5yZXZlYWwoe2FuaW1hdGlvbjonZmFkZUFuZFBvcCcsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6dHJ1ZSxkaXNtaXNzbW9kYWxjbGFzczonY2xvc2UtcmV2ZWFsLW1vZGFsJ30pO30KZnVuY3Rpb24gY2hlY2tBdXRoKCl7Z2FwaS5hdXRoLmF1dGhvcml6ZSh7Y2xpZW50X2lkOmdhcGljbGllbnRJZCxzY29wZTpnYXBpc2NvcGVzLGltbWVkaWF0ZTpmYWxzZX0saGFuZGxlQXV0aFJlc3VsdCk7fQpmdW5jdGlvbiBoYW5kbGVBdXRoUmVzdWx0KGF1dGhSZXN1bHQpe2lmKGF1dGhSZXN1bHQmJiFhdXRoUmVzdWx0LmVycm9yKXtvcGVuR29vZ2xlTWFwKHRydWUpO31lbHNle29wZW5Hb29nbGVNYXAoZmFsc2UpO319CmZ1bmN0aW9uIG9wZW5Hb29nbGVNYXAoKXt2YXIgbWFwVG9Vc2U9IiIranNfZDJjX2dldF92YWwoIjE0MDRyYTA0Yndya280d2ciKSsiIjt2YXIgdXJsPSJodHRwOi8vbWFwcy4iK21hcFRvVXNlKyIuY29tLz9xPTIzMjUrcnVlK0xhcHJhZGUlMkMrU29yZWwtVHJhY3klMkMrUXVlYmVjJTJDK0ozUisyQzEmej0xMyI7d2luZG93Lm9wZW4odXJsKTt9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF80ZDI1YmEwNjQxNzEzODc4NWFjZmE1MDA2NWJiYmFhOTt0cnl7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9iMTQ0ZGMxN2E1MDE0MDVmYTFmZmQ5NmM3ZmYyZDg0Zjt0cnl7dmFyIGVzZkRlbGF5PTEwO2Z1bmN0aW9uIGVzY2FwZUZyYW1lKCl7aWYoKGRvY3VtZW50LmxvY2F0aW9uKycnKS5pbmRleE9mKCduZnI9MScpPT0tMSlyZXR1cm47JCgnYScpLm5vdCgnW3RhcmdldF0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGVsPSQodGhpcyk7dmFyIHRhcmdldD1lbC5hdHRyKCd0YXJnZXQnKTt2YXIgaHJlZj1lbC5hdHRyKCdocmVmJyk7aWYodGFyZ2V0JiZ0YXJnZXQubGVuZ3RoPjApe3JldHVybjt9CmlmKCFocmVmKXJldHVybjt2YXIgcHJvdG9jb2w9aHJlZi5tYXRjaCgvXihbYS16MC05XSspOi8pO2lmKHByb3RvY29sIT1udWxsJiYhcHJvdG9jb2xbMV0ubWF0Y2goL15odHRwLykpe3JldHVybjt9CmlmKGhyZWZbMF09PT0nIycpe3JldHVybjt9CmVsLmF0dHIoJ3RhcmdldCcsJ190b3AnKTt9KTtzZXRUaW1lb3V0KGVzY2FwZUZyYW1lLDEwMCplc2ZEZWxheSsrKTt9CmpRdWVyeShlc2NhcGVGcmFtZSk7ZnVuY3Rpb24gdG9nZ2xlU3VibWVudXMob2JqKXskKG9iaikuY2xvc2VzdCgnbGknKS5maW5kKCcuc3VibWVudUl0ZW1Db250YWluZXIsIC5zdWJtZW51SXRlbUNoaWxkQ29udGFpbmVyJykuZmlyc3QoKS5zbGlkZVRvZ2dsZSgnc2xvdycpO2lmKCQob2JqKS5oYXNDbGFzcygnbWVudUNvbGxwYXNlJykpeyQob2JqKS5yZW1vdmVDbGFzcygnbWVudUNvbGxwYXNlJyk7fWVsc2V7JChvYmopLmFkZENsYXNzKCdtZW51Q29sbHBhc2UnKTt9CnJldHVybiBmYWxzZTt9CmZ1bmN0aW9uIGdldFBhcmFtZXRlckJ5TmFtZShuYW1lKXtuYW1lPW5hbWUucmVwbGFjZSgvW1xbXS8sIlxbIikucmVwbGFjZSgvW1xdXS8sIlxdIik7dmFyIHJlZ2V4PW5ldyBSZWdFeHAoIltcPyZdIituYW1lKyI9KFteJiNdKikiKSxyZXN1bHRzPXJlZ2V4LmV4ZWMobG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gcmVzdWx0cz09bnVsbD8iIjpkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXS5yZXBsYWNlKC9cKy9nLCIgIikpO30KdmFyIHV0bV9zb3VyY2U9Z2V0UGFyYW1ldGVyQnlOYW1lKCd1dG1fc291cmNlJyk7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoJy5ub3RDbGlja2FibGUnKS5vbignY2xpY2snLGZ1bmN0aW9uKGV2ZW50KXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3RvZ2dsZVN1Ym1lbnVzKCQoJy5tZW51RXhwYW5kJyx0aGlzKSk7cmV0dXJuIGZhbHNlO30pOyQoJy5tZW51RXhwYW5kJykub24oJ2NsaWNrJyxmdW5jdGlvbihldmVudCl7ZXZlbnQucHJldmVudERlZmF1bHQoKTt0b2dnbGVTdWJtZW51cygkKCcubWVudUV4cGFuZCcsdGhpcy5jbG9zZXN0KCcubWVudS1pdGVtJykpKTtyZXR1cm4gZmFsc2U7fSk7aWYoJCgnLnVzZWRwaG9uZWZvcm1hdGVkJykubGVuZ3RoPjAmJiQoJyNhZ2VudHBob25lJykubGVuZ3RoPjAmJiQoJyNhZ2VudHBob25lJykudmFsKCkubGVuZ3RoPjUpeyQoJy51c2VkcGhvbmVmb3JtYXRlZCcpLmF0dHIoJ2hyZWYnLCd0ZWw6JyskKCcjYWdlbnRwaG9uZScpLnZhbCgpKTt9CnNldFRpbWVvdXQoZnVuY3Rpb24oKXskKHdpbmRvdykub24oJ29yaWVudGF0aW9uY2hhbmdlJyxmdW5jdGlvbihldmVudCl7aWYod2luZG93Lm9yaWVudGF0aW9uPT05MHx8d2luZG93Lm9yaWVudGF0aW9uPT0tOTB8fHdpbmRvdy5vcmllbnRhdGlvbj09MjcwKXskKCdtZXRhW25hbWU9InZpZXdwb3J0Il0nKS5hdHRyKCdjb250ZW50JywnaGVpZ2h0PWRldmljZS13aWR0aCx3aWR0aD1kZXZpY2UtaGVpZ2h0LGluaXRpYWwtc2NhbGU9MSxtYXhpbXVtLXNjYWxlPTMnKTskKHdpbmRvdykudHJpZ2dlcigncmVzaXplJyk7fWVsc2V7JCgnbWV0YVtuYW1lPSJ2aWV3cG9ydCJdJykuYXR0cignY29udGVudCcsJ2hlaWdodD1kZXZpY2UtaGVpZ2h0LHdpZHRoPWRldmljZS13aWR0aCxpbml0aWFsLXNjYWxlPTEsbWF4aW11bS1zY2FsZT0zJyk7JCh3aW5kb3cpLnRyaWdnZXIoJ3Jlc2l6ZScpO319KS50cmlnZ2VyKCdvcmllbnRhdGlvbmNoYW5nZScpO2lmKHV0bV9zb3VyY2UhPSIiKXtDb29raWVzLnNldCgndXRtX2xhbmRpbmdfZm9vdGVyJyxudWxsLG51bGwsIi8iKTt9CmlmKENvb2tpZXMuZ2V0KCJ1dG1fbGFuZGluZ19mb290ZXIiKT09bnVsbHx8Q29va2llcy5nZXQoInV0bV9sYW5kaW5nX2Zvb3RlciIpPT09J251bGwnKXtDb29raWVzLnNldCgndXRtX2xhbmRpbmdfZm9vdGVyJyx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsMTgwLCIvIik7fX0pO30sMTAwMDApO2Z1bmN0aW9uIHNob3dOb3JtYWxTaXRlKCl7dmFyIGRvbWFpbj0iIitqc19kMmNfZ2V0X3ZhbCgidTZ0aHJ3OW9sY2c4dzh3IikrIiI7Q29va2llcy5zZXQoJ1VzZUZ1bGxTaXRlJywnMScsbnVsbCwiLyIsZG9tYWluKTt3aW5kb3cubG9jYXRpb24uaHJlZj0nJytqc19kMmNfZ2V0X3ZhbCgiY291OWhtNDI5MWMwa29jIikrJyc7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMzE0Y2FhNWJmNTkwOTJjNmY3Y2Y2YTJmYzcyZTk1MTM7dHJ5e2lmKHR5cGVvZiBwYWdlIT09J3VuZGVmaW5lZCcmJnBhZ2U9PSJORVdDQVJERVRBSUxTIil7JChkb2N1bWVudCkub24oJ2NsaWNrJywnYScsZnVuY3Rpb24oKXt2YXIgb2JqPSQodGhpcyk7dmFyIGhyZWY9b2JqLmF0dHIoJ2hyZWYnKTt2YXIgdGV4dD1vYmoudGV4dCgpO2lmKHRleHQubGVuZ3RoPjAmJm9iai5maW5kKCdpbWcnKS5sZW5ndGg9PTAmJnR5cGVvZiBocmVmIT0ndW5kZWZpbmVkJyl7dmFyIHRpdGxlPSQoJy5icmFuZGVtYWlsW25hbWU9ImJyYW5kIl0nKS52YWwoKSsnLScrJCgnLm1vZGVsZW1haWxbbmFtZT0ibW9kZWwiXScpLnZhbCgpKyctJyskKCcueWVhcmVtYWlsJykudmFsKCk7aWYoaHJlZiE9IiMiJiZocmVmIT0iIiYmaHJlZi5pbmRleE9mKCJqYXZhc2NyaXB0Iik8MCYmaHJlZi5pbmRleE9mKCd7Jyk8MCl7dGl0bGU9aHJlZjt9CmdhVHJhY2soJ190cmFja0V2ZW50JywnTmV3LVZEUC1PdXRib3VuZC1jbGlja3MnLG9iai50ZXh0KCksdGl0bGUpO319KX19Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2MxY2RiY2I1MjUzODY3MzZiNzRjNzAzYmE0OWUzZjdhO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2QyY0Zvb3RlckNvb2tpZURlbGV0ZSIpLnBvcHVwaXplKHsiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjpudWxsLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6bnVsbCwic2VuZFRvQURGIjpudWxsLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjpmYWxzZSwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzg0MjYwODAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6InNvcmVsLXRyYWN5Zm9yZC5jYSJ9LHsibmFtZSI6InJlZmVycmVyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIn0seyJuYW1lIjoiaXNleHByZXNzIiwidmFsdWUiOiIwIiwiY2xhc3MiOiJpc2V4cHJlc3MifSx7Im5hbWUiOiJpc3Byb21vIiwidmFsdWUiOiIwIn0seyJuYW1lIjoiaXNob21lcGFnZSIsInZhbHVlIjoiMCJ9LHsibmFtZSI6InRleHRDYXJTZWN0aW9uVHlwZSIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrIiJ9LHsibmFtZSI6ImZyb21BQSIsInZhbHVlIjoiIn0seyJuYW1lIjoibGFuZyIsInZhbHVlIjoiRlJFTkNIIn1dfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9iZDM3NWVjZWMwOThiZDNiMTZiYzg0ZTVmYmRjODQ1ZDt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpe2lmKCQoJyNnZW5lcmljX2Zvcm1fY29uZmlybScpLmxlbmd0aDwxKXt2YXIgRm9ybT0kKCc8Zm9ybSBpZD0iZ2VuZXJpY19mb3JtX2NvbmZpcm0iIHRhcmdldD0iaWZyYW1lZ3RyYWNrIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj48L2Zvcm0+Jyk7dmFyIG1ha2VWYWw9IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIjt2YXIgbW9kZWxWYWw9IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiO3ZhciB5ZWFyVmFsPSIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIjt2YXIgcmVmZXJhbFZhbD0iIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiI7dmFyIHNlY3Rpb25WYWw9JycranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKycnO3ZhciBmcm9tQXV0b2F1YmFpbmU9JCgnI2F1dG9hdWJhaW5lX3BvcHVwJykubGVuZ3RoPjAmJigkKCcjYXV0b2F1YmFpbmVfcG9wdXAnKS52YWwoKSE9J2ZhbHNlJyk7dmFyIGlucHV0cz0oW3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOm1ha2VWYWwsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOm1vZGVsVmFsLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOnllYXJWYWwsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imd0YWdfY29udmVyc2lvbiIsInZhbHVlIjoiZ3RhZyJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsZWFkX2RlcGFydG1lbnQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxlYWRUeXBlIiwidmFsdWUiOiIifSx7Im5hbWUiOiJwYWdlSUQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImN1cnJlbnRVUkwiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoic29yZWwtdHJhY3lmb3JkLmNhIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6cmVmZXJhbFZhbH0seyJuYW1lIjoiaXNleHByZXNzIiwidmFsdWUiOiIiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6InRlc3Rtb2RlIiwidmFsdWUiOiIwIiwiY2xhc3MiOiJ0ZXN0bW9kZSJ9LHsibmFtZSI6InRleHRDYXJTZWN0aW9uVHlwZSIsInZhbHVlIjpzZWN0aW9uVmFsfSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifSx7Im5hbWUiOiJidXR0b25Qb3NpdGlvbiIsInZhbHVlIjoiIn0seyJuYW1lIjoiZGVhbGVyTmFtZSIsInZhbHVlIjoiIn0seyJuYW1lIjoiaXNGdWxsV2lkdGgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImlzTW9iaWxlTmV3VkRQIiwidmFsdWUiOiIifSx7Im5hbWUiOiJmcm9tQXV0b0F1YmFpbmUiLCJ2YWx1ZSI6MH1dKTtmb3IodmFyIGk9MDtpPGlucHV0cy5sZW5ndGg7aSsrKXskKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiAvPicpLmF0dHIoaW5wdXRzW2ldKS5hcHBlbmRUbyhGb3JtKTt9CkZvcm0uYXBwZW5kVG8oJ2JvZHknKTtGb3JtLm9uKCdzdWJtaXQnLG9uQ29uZmlybVN1Ym1pdCk7fQppZigkKCcjZ3RyYWNrRnJhbWUnKS5sZW5ndGg8MSl7JCgnPGlmcmFtZT48L2lmcmFtZT4nKS5hdHRyKHt3aWR0aDoxLGhlaWdodDoxLGZyYW1lQm9yZGVyOjAsaWQ6J2d0cmFja0ZyYW1lJyxuYW1lOidpZnJhbWVndHJhY2snLHN0eWxlOid3aWR0aDoxcHg7aGVpZ2h0OjFweDsnLHRpdGxlOidmcmFtZSd9KS5hcHBlbmRUbygnI2NvbmZpcm1fZm9ybXMnKTt9fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9jN2M5ZmVlMWUxMDc2MmQ0ZDM0NzUyNWM1ODcwODZhYjt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25CZWZvcmVPcGVuIjpmdW5jdGlvbigpe3ZhciAkJD0kKHRoaXMpO2lmKCFDb29raWVzLmdldCgicG9wdXBQYWdlVmlld3MiKSl7Q29va2llcy5nZXQoInBvcHVwUGFnZVZpZXdzIiwiMCIsbnVsbCwiLyIpO30KJCgiI211bHRpZm9ybVBvcHVwQ29udGFpbmVyIikuY3NzKHtwYWRkaW5nOjAsYmFja2dyb3VuZDoiI2ZmZiJ9KTtpZihDb29raWVzLmdldCgibXVsdGlGb3JtUG9wdXBGaWxsZWQiKSl7JCgiLm11bHRpZm9ybV9ib2R5IiwkJCkuaHRtbCgkKCIubXVsdGlmb3JtX2ZpbGxlZCIsJCQpLmh0bWwoKSk7JCgiLm11bHRpZm9ybV9mb290ZXIiLCQkKS5oaWRlKCk7JCgiI211bHRpZm9ybV9mb3JtVyIpLmNzcygiaGVpZ2h0IiwiMjQwcHgiKTskKCIjbXVsdGlmb3JtUG9wdXBDb250YWluZXIiKS5jc3MoImhlaWdodCIsIjI0MHB4Iik7fQokKGRvY3VtZW50KS5vbigicmV2ZWFsOm9wZW4iLCIjbXVsdGlmb3JtUG9wdXBDb250YWluZXIiLGZ1bmN0aW9uKCl7JCgibXVsdGlmb3JtUG9wdXBDb250YWluZXIgI211bHRpZm9ybV9wb3N0YWwiKS50cmlnZ2VyKCJmb2N1cyIpO30pO30sIm9uQmVmb3Jlc3VibWl0IjpmdW5jdGlvbihzZWxmKXt2YXIgJCQ9JCh0aGlzKTtDb29raWVzLnNldCgnbXVsdGlGb3JtUG9wdXBGaWxsZWQnLCcxJyxwYXJzZUludCgyMDI2LTA3LTEwKSwnLycpO2lmKCQoJyNtdWx0aWZvcm1fc21zJykudmFsKCkubGVuZ3RoPjMpeyQoJy5lbWFpbFN1YmplY3QnLCQkKS5odG1sKCQoJy5zbXNfZW1haWxTdWJqZWN0JywkJCkuaHRtbCgpKTskKCcuZW1haWxCb2R5JywkJCkuaHRtbCgkKCcuc21zX2VtYWlsQm9keScsJCQpLmh0bWwoKSk7c2VsZi5zZXR0aW5ncy5mb3JtLmVtYWlsaWQ9J011bHRpRm9ybV9TTVMnO3NlbGYuc2V0dGluZ3MuZ29vZ2xlVHJhY2tpbmcubGFiZWw9J01laWxsZXVyZSBvZmZyZSBTTVMgKE5ldWYpJztzZWxmLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsc2VjdGlvbj0nTmV1Zic7fQplbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD1lbWFpbEhhbmRsZXIuZ2V0RGVwKCk7aWYoZW1haWxIYW5kbGVyLmRlcGFydG1lbnQhPSdORVcnfHxlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCE9J1VTRUQnKXtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0nTkVXJzt9fSwib25CZWZvcmVWYWxpZGF0aW9uIjpmdW5jdGlvbigpeyQudmFsaWRpdHkuc3RhcnQoKTt2YXIgaXNTTVM9ZmFsc2U7aWYoJCgnI211bHRpZm9ybVBvcHVwQ29udGFpbmVyJykuZmluZCgnI211bHRpZm9ybV9zbXMnKS52YWwoKS5sZW5ndGg+M3x8JCgnI211bHRpZm9ybV9zbXMnKS5oYXNDbGFzcygncmVxdWlyZWQnKSl7aXNTTVM9dHJ1ZTskKCcjbXVsdGlmb3JtUG9wdXBDb250YWluZXInKS5maW5kKCcjbXVsdGlmb3JtX3NtcycpLnJlcXVpcmUoKS52YWxpZGF0ZVBob25lKCk7JCgnI211bHRpZm9ybVBvcHVwQ29udGFpbmVyJykuZmluZCgnI3VzZXJuYW1lJykucmVxdWlyZSgpO31lbHNleyQoJyNtdWx0aWZvcm1Qb3B1cENvbnRhaW5lcicpLmZpbmQoJyNtdWx0aWZvcm1fZW1haWwnKS5yZXF1aXJlKCkudmFsaWRFbWFpbEFkZHJlc3MoKTskKCcjbXVsdGlmb3JtUG9wdXBDb250YWluZXInKS5maW5kKCcjdXNlcm5hbWUnKS5yZXF1aXJlKCk7fQp2YXIgcmVzdWx0PSQudmFsaWRpdHkuZW5kKCk7cmV0dXJuIHJlc3VsdC52YWxpZDt9LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7bXVsdGlGb3JtUG9wdXBJbml0aWFsaXplKCJtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIpOyhuZXcgRm9ybSgpKS5tYXNrUG9zdGFsQ29kZSgibXVsdGlmb3JtUG9wdXBDb250YWluZXIgI211bHRpZm9ybV9wb3N0YWwiKTskKCJtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciAjbXVsdGlmb3JtX2VtYWlsIikub24oImZvY3VzIixmdW5jdGlvbigpeyQoIltuYW1lPW11bHRpZm9ybV9vcl0iKS52YWwoWyJlbWFpbCJdKTt9KTskKCJtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciAjbXVsdGlmb3JtX3NtcyIpLm9uKCJmb2N1cyIsZnVuY3Rpb24oKXskKCJbbmFtZT1tdWx0aWZvcm1fb3JdIikudmFsKFsic21zIl0pO30pO3ZhciBwb3B1cFR5cGU9Im5ldyI7dmFyIGN1cnJlbnRQYWdlPSIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiI7aWYodHlwZW9mIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIT0idW5kZWZpbmVkIil7dmFyIHRtcD1wb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSgibmV3IiwiIitqc19kMmNfZ2V0X3ZhbCgiNmp5cDQ2NjR2Z3dzODB3IikrIiIsdHJ1ZSwiIiwiIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiLCJtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIsZmFsc2UpO3JldHVybiB0bXA7fX0sIm9uQmVmb3JlU2VuZE1haWwiOmZ1bmN0aW9uKHNlbGYpe2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PWVtYWlsSGFuZGxlci5nZXREZXAoKTtpZihlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD09J1VTRUQnKXtlbWFpbEhhbmRsZXIuc3ViamVjdD1lbWFpbEhhbmRsZXIuc3ViamVjdC5yZXBsYWNlKCduZXcnLCd1c2VkJyk7ZW1haWxIYW5kbGVyLnN1YmplY3Q9ZW1haWxIYW5kbGVyLnN1YmplY3QucmVwbGFjZSgnbmV1ZicsJ29jY2FzaW9uJyk7fX0sImNvb2tpZUR1cmF0aW9uIjo2MCwiY29va2llTmFtZSI6Im11bHRpZm9ybVBvcHVwU2hvd24iLCJjb29raWVDcmVhdGUiOiJvbk9wZW4iLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiQmVzdCBvZmZlciAoTmV3KSIsImxhYmVsc2VjdGlvbiI6Ik5ldyIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJNdWx0aUZvcm0iLCJvZmZlcnR5cGUiOiJNdWx0aUZvcm1Qb3B1cCIsIm5hbWUiOiJtdWx0aWZvcm1fZm9ybSIsInNlbmRUbyI6IjBkYzk4MDUxMzM4M2IwZTVmMDgwYWRhYTVjMWJjYjFjfDEzMTAwODMwMDYiLCJzZW5kVG9BREYiOiIiLCJPS0J1dHRvbkNsYXNzIjoibXVsdGlmb3JtX2J0bl8yIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOm51bGwsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgZGVtYW5kZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UhIiwiYm9keSI6IlZvdHJlIGRlbWFuZGUgYSAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ZSBhdmVjIHN1Y2MmZWdyYXZlO3MuIFVuIHJlcHImZWFjdXRlO3NlbnRhbnQgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LiJ9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJOZXciLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOiI3NSIsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjp0cnVlLCJzaG93b25sb2FkIjpmYWxzZSwiZXJyb3JNc2ciOiJDZXJ0YWlucyBjaGFtcHMgb2JsaWdhdG9pcmVzIG4nb250IHBhcyAmZWFjdXRlO3QmZWFjdXRlOyByZW1wbGlzIiwiY291bnRkb3duIjoxNzg0MjYwODAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2IxOTI1YzJkM2QzYThkMzhmNjRjNGYwODI0Mzg0OTEzO3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfbXVsdGlmb3JtUG9wdXBDb250YWluZXInKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50Xzk0MTQyNTA4YzczZDRiODk4YjQxYmMwY2UwZTRiZmY5O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJzdWJtaXQiOmZ1bmN0aW9uKHNlbGYpe3NldENvb2tpZSgnY3JlZGl0U2NvcmVFbWJlZGRlZEZpbGxlZCcsMSwzMCk7aWYodHlwZW9mIGdVc2VkU3JwQXBweiE9PSd1bmRlZmluZWQnKXtnVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmNsZWFyUHJveHlDYWNoZUFuZFJlRmV0Y2goKTt9fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpeyhuZXcgRm9ybSgpKS5tYXNrUGhvbmUoIiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyICNjcmVkaXRTY29yZVBob25lIik7dmFyIGxhbmc9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ImVuIjoiZnIiO3ZhciBzdGFydERhdGU9bmV3IERhdGUoKTtzdGFydERhdGUuc2V0RnVsbFllYXIoc3RhcnREYXRlLmdldEZ1bGxZZWFyKCktMzApO3ZhciBtYXhEYXRlPW5ldyBEYXRlKCk7bWF4RGF0ZS5zZXRGdWxsWWVhcihtYXhEYXRlLmdldEZ1bGxZZWFyKCktMTgpO3ZhciBtaW5EYXRlPW5ldyBEYXRlKCk7bWluRGF0ZS5zZXRGdWxsWWVhcihtaW5EYXRlLmdldEZ1bGxZZWFyKCktMTIwKTskKCIuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5uZWJDYWwoe21heERhdGU6bWF4RGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxtaW5EYXRlOm1pbkRhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZGVmYXVsdERhdGU6c3RhcnREYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLGZvcm1hdDoiZGQgTU1NIHl5eXkiLGRlZmF1bHRWaWV3OiJkZWNhZGUifSk7JCgnI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdJykuZ29vZ2xlUGxhY2VzKCk7dmFyIHBvcHVwVHlwZT0ibmV3IjtpZih0eXBlb2YgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUhPSJ1bmRlZmluZWQiKXt2YXIgdG1wPXBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKCJuZXciLCIiK2pzX2QyY19nZXRfdmFsKCI2anlwNDY2NHZnd3M4MHciKSsiIixmYWxzZSwiIiwiIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiLCJjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIixmYWxzZSk7aWYoMCYmdG1wKXtzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9MTA7fQplbHNle3NlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD1mYWxzZTt9CnJldHVybiB0bXA7fX0sImNvb2tpZUR1cmF0aW9uIjo2MCwiY29va2llTmFtZSI6ImNyZWRpdFNjb3JlU2hvd24iLCJjb29raWVDcmVhdGUiOiJvbk9wZW4iLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNyZWRpdFNjb3JlIiwib2ZmZXJ0eXBlIjoiQ3JlZGl0U2NvcmUiLCJuYW1lIjpudWxsLCJzZW5kVG8iOiIiK2pzX2QyY19nZXRfdmFsKCIxM2RxdHNuY2Q4MXdrODQ0IikrIiIsInNlbmRUb0FERiI6IiIranNfZDJjX2dldF92YWwoIjVjY3lnazkyNW1nd2cwIikrIiIsIk9LQnV0dG9uQ2xhc3MiOiJjcmVkaXRTY29yZV9idG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjoiVm90cmUgZGVtYW5kZSBhIGJpZW4gJmVhY3V0ZTt0JmVhY3V0ZTsgZW52b3kmZWFjdXRlO2UhIiwiYm9keSI6Ik1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZCZlYWN1dGU7dGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjciZlYWN1dGU7ZGl0LiIsIm5vb3ZlcndyaXRlIjp0cnVlfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzg0MjYwODAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q2NmY1ZDk0ODU5NzQyYzZhNTFmOGJhZDljMGRmYWUwO3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lcicpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYmJjMTdlMWFmNTBlZThiMDZjMGEyMjVlY2VlOGYzYjU7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoeyJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7Y29udGFjdFBvcHVwLnNldENvbmZpZyh7dHlwZTpzZWxmLnNldHRpbmdzLmZvcm0udHlwZX0pO2lmKHR5cGVvZiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSE9InVuZGVmaW5lZCIpe3ZhciB0bXA9cG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoIm5ldyIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsImNvbnRhY3Rwb3B1cCIsdHJ1ZSk7aWYoZmFsc2UmJnRtcClzZWxmLnNldHRpbmdzLnNob3dvbmxvYWQ9NTtyZXR1cm4gdG1wO319LCJvbkJlZm9yZVNlbmRNYWlsIjpmdW5jdGlvbihzZWxmKXtjb250YWN0UG9wdXAub25CZWZvcmVTZW5kTWFpbCgpO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNvbnRhY3RVc1JlcXVlc3QiLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOiJWb3RyZSBtZXNzYWdlIGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ISIsImJvZHkiOiJNZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlICZlYWN1dGU7cXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LiJ9LCJ0eXBlIjoibmV3In0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJjb3VudGRvd24iOjE3ODQyNjA4MDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfM2Q3ODU0Mjc0MTI1ZWE2OWIwMjQ1NzU2NDZhNjk4ZGM7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19jb250YWN0cG9wdXAnKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Y3MmRhY2Y5Y2MzMTBiYWZmMDExZThkZWNhZGRmMTdhO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe3ZhciBtdWx0aXN0ZXA9aW5pdGlhbGl6ZUZpbmFuY2VNdWx0aVN0ZXAoc2VsZi50YXJnZXQpOyQoZG9jdW1lbnQpLm9uKCdjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQnLGZ1bmN0aW9uKGUpe211bHRpc3RlcC5zdGFydCgpO30pO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiLCJvZmZlcnR5cGUiOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IiwibmFtZSI6bnVsbCwic2VuZFRvIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTNkcXRzbmNkODF3azg0NCIpKyIiLCJzZW5kVG9BREYiOiIiK2pzX2QyY19nZXRfdmFsKCI1Y2N5Z2s5MjVtZ3dnMCIpKyIiLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3ODQyNjA4MDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxzZWN0aW9uIn0seyJuYW1lIjoiYnJhbmQiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIiwiY2xhc3MiOiJicmFuZGVtYWlsIn0seyJuYW1lIjoibW9kZWwiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIiwiY2xhc3MiOiJ5ZWFyZW1haWwifSx7Im5hbWUiOiJnb29nbGVpZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZ29vZ2xlaWRkMmNtZWRpYSIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2NvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nYWN0aW9uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdkb21haW5pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsQWR2IiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxQaXgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImZhY2Vib29rQ29uSWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoic29yZWwtdHJhY3lmb3JkLmNhIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzhiM2MzYzZmN2IxYjU5ZDFmMDIxY2Q5NmY0MGJkNDQ3O3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSh7Im9uQmVmb3JlT3BlbiI6ZnVuY3Rpb24oc2VsZil7aWYoc2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdCl7c2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdD1mYWxzZTtpZihDb29raWVzLmdldCgncG9wdXBGb3JtRmlsbGVkJyk9PSIxIil7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuaGlkZSgpO30KcmV0dXJuIHRydWU7fQppZighc2VsZi5zZXR0aW5ncy5zdHlsZWlkKXJldHVybiBmYWxzZTtzZWxmLnNldHRpbmdzLmluaXRpYWxTdHlsZWlkPXNlbGYuc2V0dGluZ3Muc3R5bGVpZDtpZigkKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIikubGVuZ3RoKXtzZWxmLnNldHRpbmdzLnBheW1lbnRPcHRpb25zPXBhcnNlSW50KCQoIiNvcHRpb25QcmljZVRvdGFsIikuaHRtbCgpLnJlcGxhY2UoIiwiLCIiKSk7fQpnYVRyYWNrKCdjLl90cmFja0V2ZW50JywnQ2xpcXVlcyBDYWxjdWxhdHJpY2UnLCdOZXVmJywnT3BlbicsMSk7cGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKTt9LCJvbkNsb3NlIjpmdW5jdGlvbihzZWxmKXtpZighc2VsZi5zZXR0aW5ncy5hbHJlYWR5SW5pdCl7Z2FUcmFjaygnYy5fdHJhY2tFdmVudCcsJ0NsaXF1ZXMgQ2FsY3VsYXRyaWNlJywnTmV1ZicsJ0Nsb3NlJywxKTt9CmlmKCgoJCgnI3RhcmdldFBhZ2UnKS52YWwoKXx8ZmFsc2UpPT0nTkVXQ0FSUyd8fCgkKCcjdGFyZ2V0UGFnZScpLnZhbCgpfHxmYWxzZSk9PSdVU0VEQ0FSUycpJiZ3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9PXRydWUpe2xvY2F0aW9uLnJlbG9hZCgpO319LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7cG9wdXBDYWxjdWxhdG9ySW5pdGlhbGl6ZWQoKTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOm51bGwsIm9mZmVydHlwZSI6bnVsbCwibmFtZSI6bnVsbCwic2VuZFRvIjpudWxsLCJzZW5kVG9BREYiOm51bGwsIk9LQnV0dG9uQ2xhc3MiOiJzdWJtaXRCdG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6ZmFsc2UsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6bnVsbCwiYm9keSI6bnVsbH19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOmZhbHNlLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3ODQyNjA4MDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxzZWN0aW9uIn0seyJuYW1lIjoiYnJhbmQiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIiwiY2xhc3MiOiJicmFuZGVtYWlsIn0seyJuYW1lIjoibW9kZWwiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIiwiY2xhc3MiOiJ5ZWFyZW1haWwifSx7Im5hbWUiOiJnb29nbGVpZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZ29vZ2xlaWRkMmNtZWRpYSIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2NvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nYWN0aW9uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdkb21haW5pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsQWR2IiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxQaXgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImZhY2Vib29rQ29uSWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoic29yZWwtdHJhY3lmb3JkLmNhIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO307Ci8qKiAvbS9qcy9za2VsZXRvbi5jb250cm9sbGVyLmpzICoqLwp2YXIgX19fZDJjX3NrZWxldG9uY29udHJvbGxlcmpzX2Nfb249IjIwMjYtMDQtMDEgMTE6MzA6MDIiOyd1c2Ugc3RyaWN0Jzt0cnl7alF1ZXJ5KGZ1bmN0aW9uKGMpe2xldCBoO2NvbnNvbGUubG9nKCJHU1BFRUQtQUZURVItSlFVRVJZOiIrKERhdGUubm93KCktKG51bGwhPShoPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/aDowKSkvMUUzKTt3aW5kb3cuZ1Jlc291cmNlTG9hZGVyQW5kSnF1ZXJ5SXNSZWFkeT0hMDtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtjb25zb2xlLmxvZygiU0tFTEVUT058I2VtYmVkLWNvbnRhaW5lci15b3V0dWJlLWhvbWVwYWdlLWJ5aWQiKTtpZihiLmxlbmd0aCl7dmFyIGE9Yi5hdHRyKCJkYXRhLWlmcmFtZS1hdHRyaWJ1dGVzIik7InVuZGVmaW5lZCIhPT1hJiZ2b2lkIDAhPT1hJiYoYT1KU09OLnBhcnNlKGF0b2IoYSkpLGMoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYikpfX0sN0UzKTtzZXRUaW1lb3V0KCgpPT57dmFyIGI9YygiI2VtYmVkLWNvbnRhaW5lci1tYXBzLWhvbWVwYWdlLWJ5aWQiKTsKY29uc29sZS5sb2coIlNLRUxFVE9OfCNlbWJlZC1jb250YWluZXItbWFwcy1ob21lcGFnZS1ieWlkIik7aWYoYi5sZW5ndGgpe3ZhciBhPWIuYXR0cigiZGF0YS1pZnJhbWUtYXR0cmlidXRlcyIpOyJ1bmRlZmluZWQiIT09YSYmdm9pZCAwIT09YSYmKGE9SlNPTi5wYXJzZShhdG9iKGEpKSxpbmplY3RHb29nbGVNYXBzS2V5KGZ1bmN0aW9uKGYpe2Euc3JjPWEuc3JjLnJlcGxhY2UoIl9fS0VZX18iLGYpO2MoIjxpZnJhbWUvPiIsYSkuYXBwZW5kVG8oYil9KSl9fSw3RTMpO3dpbmRvdy5kZWxheWVkQ3NzPWZ1bmN0aW9uKGIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7YS50eXBlPSJ0ZXh0L2NzcyI7YS5zdHlsZVNoZWV0P2Euc3R5bGVTaGVldC5jc3NUZXh0PWI6YS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShiKSk7Y29uc29sZS5sb2coIlNLRUxFVE9OfERFTEFZRURMT0FEQ1NTfCIrYik7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChhKX07CndpbmRvdy5kZWxheWVkQ3NzKCIuaGlkZU9uUHJlTG9hZHt2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDt9Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxzZXR0aW5nIG1lbnUgbXV0YXRpb24gb2JzZXJ2ZXIiKTt0cnl7Y29uc3QgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiKTtpZihudWxsIT09YSl7Y29uc3QgZj1uZXcgTXV0YXRpb25PYnNlcnZlcigoZCxrKT0+e2Zvcihjb25zdCBlIG9mIGQpImF0dHJpYnV0ZXMiPT09ZS50eXBlJiYiY2xhc3MiPT09ZS5hdHRyaWJ1dGVOYW1lJiZlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoInVwX21lbnUiKSYmKGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yIiksZS50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpP2QuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpfHwKZC5jbGFzc0xpc3QuYWRkKCJmaXhlZCIpOmQuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpJiZkLmNsYXNzTGlzdC5yZW1vdmUoImZpeGVkIikpfSksZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIgPiAudXBfbWVudSIpO2cmJihmLm9ic2VydmUoZyx7YXR0cmlidXRlczohMCxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pLGcuY2xhc3NMaXN0LmNvbnRhaW5zKCJmaXhlZCIpJiZhLmNsYXNzTGlzdC5hZGQoImZpeGVkIikpfX1jYXRjaChhKXtjb25zb2xlLmVycm9yKCJTS0VMRVRPTnwuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiLGEpfWNvbnNvbGUubG9nKCJTS0VMRVRPTnxpcy1sb2FkZWQtbm93Iik7Y29uc3QgYj1jKCIuc2tlbGV0b24iKTtiLmFkZENsYXNzKCJpcy1sb2FkZWQtbm93Iik7c2V0VGltZW91dCgoKT0+e2NvbnNvbGUubG9nKCJTS0VMRVRPTnxyZW1vdmluZyBza2VsZXRvbnMgZmlyc3QgaW1nIGJhY2tncm91bmQiKTsKYi5maW5kKCJpbWcuaXMtc2tlbGV0b24tYmctaW1nIikucmVtb3ZlKCl9LDM8d2luZG93LmdTcGVlZENvbm4\/MUU0OjZFMyl9LDIwMCl9KX1jYXRjaChjKXt9Ow==","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudC1tb2JpbGUiPgoKCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iYWN0aXZlc2l0ZWxhbmd1YWdlIiB2YWx1ZT0iRlJFTkNIIi8+CgoJCTxpbnB1dAoJCQl0eXBlPSJoaWRkZW4iCgkJCWlkPSJkMmNEYXRhU3RvcmUiCgkJCWRhdGEtYmFzZXVybD0iaHR0cHM6Ly9zb3JlbC10cmFjeWZvcmQuY2EiCgkJCWRhdGEtYm9keWNsYXNzPSIgaGVhZGluZ0NhcHNPbiBGUkVOQ0ggTmV3U3JwMiBOZXdTcnAyTW9iaWxlIgoJCQlkYXRhLWlzbW9iaWxlPSIxIgoJCT4KCgkJPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgIHsiQGNvbnRleHQiOiJodHRwczpcL1wvc2NoZW1hLm9yZyIsIkB0eXBlIjoiV2ViU2l0ZSIsIm5hbWUiOiJTb3JlbC1UcmFjeSBGb3JkIiwidXJsIjoiaHR0cHM6XC9cL3d3dy5zb3JlbC10cmFjeWZvcmQuY2FcLyIsInBvdGVudGlhbEFjdGlvbiI6eyJAdHlwZSI6IlNlYXJjaEFjdGlvbiIsInRhcmdldCI6Imh0dHBzOlwvXC93d3cuc29yZWwtdHJhY3lmb3JkLmNhXC9vY2Nhc2lvblwvcmVjaGVyY2hlLmh0bWw\/cT17c2VhcmNoX3Rlcm1fc3RyaW5nfSIsInF1ZXJ5LWlucHV0IjoicmVxdWlyZWQgbmFtZT1zZWFyY2hfdGVybV9zdHJpbmcifX0KPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KICAgIHsiQGNvbnRleHQiOiJodHRwczpcL1wvc2NoZW1hLm9yZyIsIkB0eXBlIjpbIkF1dG9EZWFsZXIiLCJBdXRvbW90aXZlQnVzaW5lc3MiXSwidXJsIjoiaHR0cHM6XC9cL3d3dy5zb3JlbC10cmFjeWZvcmQuY2EiLCJuYW1lIjoiU29yZWwtVHJhY3kgRm9yZCIsImltYWdlIjoiaHR0cHM6XC9cL3d3dy5zb3JlbC10cmFjeWZvcmQuY2FcL2ltYWdlc1wvTG9nb01vYmlsZVwvc29yZWwtdHJhY3ktZm9yZC1sb2dvLnBuZyIsImxvZ28iOiJodHRwczpcL1wvd3d3LnNvcmVsLXRyYWN5Zm9yZC5jYVwvaW1hZ2VzXC9Mb2dvTW9iaWxlXC9zb3JlbC10cmFjeS1mb3JkLWxvZ28ucG5nIiwic2FtZUFzIjpbImh0dHBzOlwvXC93d3cuZmFjZWJvb2suY29tXC9Tb3JlbFRyYWN5Rm9yZFwvIl0sImdlbyI6eyJAdHlwZSI6Ikdlb0Nvb3JkaW5hdGVzIiwibGF0aXR1ZGUiOiI0Ni4wMjk5MjkwMDAwIiwibG9uZ2l0dWRlIjoiLTczLjE0MTc5NzAwMDAifSwiYWRkcmVzcyI6eyJAdHlwZSI6IlBvc3RhbEFkZHJlc3MiLCJzdHJlZXRBZGRyZXNzIjoiMjMyNSBydWUgTGFwcmFkZSIsImFkZHJlc3NMb2NhbGl0eSI6IlNvcmVsLVRyYWN5IiwiYWRkcmVzc1JlZ2lvbiI6IlF1ZWJlYyIsInBvc3RhbENvZGUiOiJKM1IgMkMxIiwiYWRkcmVzc0NvdW50cnkiOiJDQSJ9LCJ0ZWxlcGhvbmUiOiI0NTAtNzQyLTI3NDMiLCJwcmljZVJhbmdlIjoiMzUyNDQkLTg5Mjk1JCIsIm9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iOlt7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6Ik1vbmRheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIxOTozMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiVHVlc2RheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIxOTozMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiV2VkbmVzZGF5Iiwib3BlbnMiOiIwOTowMCIsImNsb3NlcyI6IjE5OjMwIn0seyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJUaHVyc2RheSIsIm9wZW5zIjoiMDk6MDAiLCJjbG9zZXMiOiIxOTozMCJ9LHsiQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiRnJpZGF5Iiwib3BlbnMiOiIwOTowMCIsImNsb3NlcyI6IjE3OjAwIn1dfQo8L3NjcmlwdD48bGluayByZWw9Imljb24iIGhyZWY9Imh0dHBzOi8vc29yZWwtdHJhY3lmb3JkLmNhL2ltYWdlcy9GYXZpY29uL2Zhdmljb25fRm9yZF8yLmpwZWciPjxsaW5rIHJlbD0iYWx0ZXJuYXRlIiBocmVmPSJodHRwczovL3d3dy5zb3JlbC10cmFjeWZvcmQuY2EvZW5nLyIgaHJlZmxhbmc9ImVuLWNhIj48bGluayByZWw9InByZWxvYWQiIGFzPSJpbWFnZSIgaHJlZj0iaHR0cHM6Ly9zb3JlbC10cmFjeWZvcmQuY2EvaW1hZ2VzL0xvZ29Nb2JpbGUvc29yZWwtdHJhY3ktZm9yZC1sb2dvLndlYnAiPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1SZWd1bGFyLndvZmYyIiBhcz0iZm9udCIgdHlwZT0iZm9udC9XT0ZGMiIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1MaWdodC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9zb3JlbC10cmFjeWZvcmQuY2EvY3NzX3IvcmVzb3VyY2UubG9hZGVyLmZyLmNzcz92PTMmYW1wO2Nzc3JwbD0mYW1wO3dzd2lkdGg9MCZhbXA7ZGV2aWNlPW1vYmlsZSZhbXA7dWE9UTBOQ2IzUXZNaTR3SUNob2RIUndjem92TDJOdmJXMXZibU55WVhkc0xtOXlaeTltWVhFdktRPT0iPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9pbWFnZXNjZG4uZDJjbWVkaWEuY2EiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlY29ubmVjdCIgaHJlZj0iaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJjYW5vbmljYWwiIGhyZWY9Imh0dHBzOi8vd3d3LnNvcmVsLXRyYWN5Zm9yZC5jYS9lbWJlZGVyL3Byb2Nlc3MvZnIvbSIgZGF0YS1jYW5vbmljYWwtaGVhZGVyLXdpZGdldD0iMSI+PHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvc2NyaXB0dGVtcGxhdGVzL290U0RLU3R1Yi5qcyIgZGF0YS1kb2N1bWVudC1sYW5ndWFnZT0idHJ1ZSIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJVVEYtOCIgZGF0YS1kb21haW4tc2NyaXB0PSI4ZTk0OWQ1OS01ZjQxLTQ0OTAtYjQ0MS03NjgwNTI5ODFkMjUiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vY2RuLmNvb2tpZWxhdy5vcmcvY29uc2VudC84ZTk0OWQ1OS01ZjQxLTQ0OTAtYjQ0MS03NjgwNTI5ODFkMjUvT3RBdXRvQmxvY2suanMiPjwvc2NyaXB0PjxkaXYgaWQ9ImRpZ2l0YWxfZGF0YV9pbmZvIiBkYXRhLWFuYWx5dGljcz0iZm9yZF9hZG9iZV9hbmFseXRpY3MiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlQ2F0ZWdvcnkiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtYWtlIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmluIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaW52ZW50b3J5RmxhZyIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVUcmltIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmVoaWNsZVRyYW5zbWlzc2lvbiIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVQcmljZSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVDb2xvciIgdmFsdWU9IiI+CgkJPC9kaXY+CgkJPCEtLSBPTzo6MTA0YTU5ODgxMjVjYjI1NTQ3N2U4ODVhN2I2NGVlMWYgLS0+PCEtLSBvZW1DZXJ0aWZpY2F0aW9uICJGb3JkIERpcmVjdCIgLS0+CQk8ZGl2IGlkPSJhc2NfZGlnaXRhbF9kYXRhX2luZm8iIGRhdGEtYW5hbHl0aWNzPSJnb29nbGVfYW5hbHl0aWNzXzQiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlQ2F0ZWdvcnkiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtYWtlIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmluIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idHJpbSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByaWNlIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZXh0Y29sb3IiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYXRlX2xpc3RpbmciIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkMmFzY19pc0NlcnRpZmllZCIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVTdGF0dXMiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJDb2RlIiB2YWx1ZT0iQjI1NDkiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlVHlwZSIgdmFsdWU9IlNob3dyb29tIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX25hbWUiIHZhbHVlPSJTb3JlbC1UcmFjeSBGb3JkIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX2FkZHJlc3MiIHZhbHVlPSIyMzI1IHJ1ZSBMYXByYWRlLCBTb3JlbC1UcmFjeSwgTW9udMOpcsOpZ2llIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX3Bvc3RhbCIgdmFsdWU9IkozUiAyQzEiPgoJCTwvZGl2PgoJCTwhLS0gT086OjNkZDg1ZWE0ZjQ2YzI0ODU5NmExYTllOTA4MjdiMTQxIC0tPgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBHbG9iYWwgc2l0ZSB0YWcgKGd0YWcuanMpIC0gR29vZ2xlIEFuYWx5dGljcyAtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM\/aWQ9Ry1CSjNKU1ZROTBGIiB0eXBlPSJ0ZXh0L3BsYWluIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMSI+PC9zY3JpcHQ+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+Cgo8IS0tICMjVk1KUzIjIyAtLT48IS0tIEdPIElEIC0tPgo8IS0tIEJJTkcgU0NSSVBUIC0tPgo8IS0tIE9POjpmNzNmYTZhYmJmYjRiYWIzZjQ5ZGFhZmIzODkxZTI3ZiAtLT4KICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIGRhdGEtcmw9IjEiPgovKiogL2Nzcy9yb290LmNzcyAqKi8KOnJvb3R7IC0tcmF0aW86MS4xNTsgLS1zMDowOyAtLXMtOTpjYWxjKHZhcigtLXMtOCkgLyB2YXIoLS1yYXRpbykpOyAtLXMtODpjYWxjKHZhcigtLXMtNykgLyB2YXIoLS1yYXRpbykpOyAtLXMtNzpjYWxjKHZhcigtLXMtNikgLyB2YXIoLS1yYXRpbykpOyAtLXMtNjpjYWxjKHZhcigtLXMtNSkgLyB2YXIoLS1yYXRpbykpOyAtLXMtNTpjYWxjKHZhcigtLXMtNCkgLyB2YXIoLS1yYXRpbykpOyAtLXMtNDpjYWxjKHZhcigtLXMtMykgLyB2YXIoLS1yYXRpbykpOyAtLXMtMzpjYWxjKHZhcigtLXMtMikgLyB2YXIoLS1yYXRpbykpOyAtLXMtMjpjYWxjKHZhcigtLXMtMSkgLyB2YXIoLS1yYXRpbykpOyAtLXMtMTpjYWxjKHZhcigtLXMpIC8gdmFyKC0tcmF0aW8pKTsgLS1zOjAuNXJlbTsgLS1zMTpjYWxjKHZhcigtLXMpICogdmFyKC0tcmF0aW8pKTsgLS1zMjpjYWxjKHZhcigtLXMxKSAqIHZhcigtLXJhdGlvKSk7IC0tczM6Y2FsYyh2YXIoLS1zMikgKiB2YXIoLS1yYXRpbykpOyAtLXM0OmNhbGModmFyKC0tczMpICogdmFyKC0tcmF0aW8pKTsgLS1zNTpjYWxjKHZhcigtLXM0KSAqIHZhcigtLXJhdGlvKSk7IC0tczY6Y2FsYyh2YXIoLS1zNSkgKiB2YXIoLS1yYXRpbykpOyAtLXM3OmNhbGModmFyKC0tczYpICogdmFyKC0tcmF0aW8pKTsgLS1zODpjYWxjKHZhcigtLXM3KSAqIHZhcigtLXJhdGlvKSk7IC0tczk6Y2FsYyh2YXIoLS1zOCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzLWJhc2U6MC44NzVyZW07IC0tZnM6dmFyKC0tZnMtYmFzZSk7IC0tZnMtOTpjYWxjKHZhcigtLWZzLTgpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy04IDpjYWxjKHZhcigtLWZzLTcpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy03IDpjYWxjKHZhcigtLWZzLTYpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy02IDpjYWxjKHZhcigtLWZzLTUpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy01IDpjYWxjKHZhcigtLWZzLTQpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy00IDpjYWxjKHZhcigtLWZzLTMpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0zIDpjYWxjKHZhcigtLWZzLTIpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0yIDpjYWxjKHZhcigtLWZzLTEpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0xIDpjYWxjKHZhcigtLWZzMCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzMCA6dmFyKC0tZnMtYmFzZSwgMC44NzVyZW0pOyAtLWZzMSA6Y2FsYyh2YXIoLS1mczApICogdmFyKC0tcmF0aW8pKTsgLS1mczIgOmNhbGModmFyKC0tZnMxKSAqIHZhcigtLXJhdGlvKSk7IC0tZnMzIDpjYWxjKHZhcigtLWZzMikgKiB2YXIoLS1yYXRpbykpOyAtLWZzNCA6Y2FsYyh2YXIoLS1mczMpICogdmFyKC0tcmF0aW8pKTsgLS1mczUgOmNhbGModmFyKC0tZnM0KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM2IDpjYWxjKHZhcigtLWZzNSkgKiB2YXIoLS1yYXRpbykpOyAtLWZzNyA6Y2FsYyh2YXIoLS1mczYpICogdmFyKC0tcmF0aW8pKTsgLS1mczggOmNhbGModmFyKC0tZnM3KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM5IDpjYWxjKHZhcigtLWZzOCkgKiB2YXIoLS1yYXRpbykpOyAtLWRlZmF1bHQtYmxhY2s6IzAwMDAwMDsgLS10YWItY29sb3Itc3BlY2lhbGNhc2U6I2Y3ZjdmNzsgLS10YWItY29sb3I6I2Y3ZjdmNzsgLS10YWItdGV4dC1jb2xvcjojMTAyYjRlOyAtLXRhYi1jb2xvci1tb2I6IzEwMmI0ZTsgLS10YWItdGV4dC1jb2xvci1tb2I6I2ZmZmZmZjsgLS10YWItY29sb3ItbW9iLWV4OiNmN2Y3Zjc7IC0tdGFiLXRleHQtY29sb3ItbW9iLWV4OiMwMDAwMDA7IC0tbWVudS1jb2xvci1ib3JkZXI6I2Y3ZjdmNzsgLS1tZW51LWNvbG9yLW1vYjojZmZmZmZmOyAtLW1lbnUtdGV4dC1jb2xvci1tb2I6IzAwMDAwMDsgLS1tZW51LWNvbG9yLW1vYi1leDojZjdmN2Y3OyAtLW1lbnUtdGV4dC1jb2xvci1tb2ItZXg6IzAwMDAwMDsgLS1wcm9tby1jb2xvcjojMDI3NmIzOyAtLXByb21vLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1uZXdzcnAtbW9kZWwtY29sb3I6IzAwMDAwMDsgLS1mb290ZXItbGluay10aXRsZS1jb2w6IzAwMDAwMDsgLS1mb290ZXItaXRlbXMtbGluay1jb2xvcjojNjY2NjY2OyAtLWZvb3Rlci1jb25kaXRpb25zLWNvbG9yOiM2NjY2NjY7IC0tZm9vdGVyLWJnLWNvbG9yOiNmM2YzZjM7IC0tZ2VuZXJhbC1iZy1jb2xvcjojZmZmZmZmOyAtLXRvcC1wcm9tby1idG4tdHh0OiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi1iZzojMDI3NmIzOyAtLXByb21vLWJ0bi1jb2xvcjojMDI3NmIzOyAtLXByb21vLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tcHJvbW8tYnRuLWhvdmVyLWJnLWNvbG9yOiNkZTAwMDA7IC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1czozcHg7IC0taG9tZS1iZy1jb2xvcjojZmZmZmZmOyAtLWZvcm0tdGl0bGUtY29sb3I6IzI0MjQyNDsgLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcjojMDAwMDAwOyAtLWJ1c2luZXNzLWRlc2MtYmctY29sb3I6I2ZmZmZmZjsgLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcl9tb2I6IzAwMDAwMDsgLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYjojZmZmZmZmOyAtLXVzZWQtc2xpZGVyLWJnOiNmZmZmZmY7IC0tdXNlZC1zbGlkZXItdHh0OiMwMDAwMDA7IC0tdXNlZC1zbGlkZXItcHJpY2U6I2RlMDAwMDsgLS1uZXctc2xpZGVyLWJnOjsgLS1uZXctdmRwLWJlc3RwcmljZS1idG4tYmctY29sb3I6IzAyNzZiMzsgLS1uZXctdmRwLWJlc3RwcmljZS1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWRlYWxlci1uYW1lLWNvbG9yOiMwMDAwMDA7IC0tbmV3cy1iZy1jb2xvcjojZmZmZmZmOyAtLW5ld3MtdGV4dC1jb2xvcjojMDAwMDAwOyAtLWV4aXQtcG9wdXAtYmdjb2w6OyAtLXVzZWQtb2ZmZXItYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS11c2VkLW9mZmVyLWJ0bi1iZy1jb2xvcjojY2MwMDAwOyAtLWZpbmFuY2UtYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1maW5hbmNlLWJ0bi1iZy1jb2xvcjojMDI3NmIzOyAtLWZpbmFuY2UtYnRuLXRleHQtY29sb3ItbmV3aW52OjsgLS1maW5hbmNlLWJ0bi1iZy1jb2xvci1uZXdpbnY6IzAyNzZiMzsgLS1tZW51LWhvdmVyLXRleHQtY29sb3I6I2Y3ZjdmNzsgLS1tZW51LWhvdmVyLWJnLWNvbG9yOiMxMDJiNGU7IC0tbWVudS1iZy1jb2xvcjpyZ2IoMjQ3LDI0NywyNDcpOyAtLW1haW4tbWVudS1iZy1jb2xvcjpyZ2IoMjQ3LDI0NywyNDcpOyAtLWRlYWxlci1hZGRyZXNzLWNvbG9yOiMwMDAwMDA7IC0tZGVhbGVyLWFkZHJlc3MtZm9udC1zaXplOjE0OyAtLXdoaXRlOiNmZmY7IC0tbGlnaHQ6I2Y2ZjZmNjsgLS1saWdodC1ncmF5OiNlZmVmZWY7IC0tbWlkLWdyYXk6I2RkZDsgLS1ncmF5OiM5OTk7IC0tY250ci1ncmF5OiM3Njc2NzY7IC0tZGFyay1ncmF5OiM2NjY7IC0tYmxhY2stZ3JheTojMzMzOyAtLWJsYWNrOiMwMDA7IC0tcmVkOiNmZjAwMDA7IC0tYm9yZGVyLXRoaW46MXB4OyAtLWJvcmRlci10aGljazoycHg7IC0tdHh0LXVwcGVyOnVwcGVyY2FzZTsgLS1mb250LW1lbnU6Rm9yZEYxOyAtLWZvbnQtbWVudS1tb2I6Rm9yZEYxOyAtLWZvbnQtbWVudS13ZWlnaHQ6NDAwOyAtLWZvbnQtaDE6Rm9yZEYxOyAtLWZvbnQtaDEtbW9iOkZvcmRGMTsgLS1mb250LWgxLXdlaWdodDo0MDA7IC0tZm9udC1oMjpGb3JkRjE7IC0tZm9udC1oMi1tb2I6Rm9yZEYxOyAtLWZvbnQtaDItd2VpZ2h0OjQwMDsgLS1mb250LXRleHQ6Rm9yZEYxOyAtLWZvbnQtdGV4dC1tb2I6Rm9yZEYxOyAtLWZvbnQtdGV4dC13ZWlnaHQ6NDAwOyAtLWZvbnQtYnV0dG9uczpGb3JkRjE7IC0tZm9udC1idXR0b25zLW1vYjpGb3JkRjE7IC0tZm9udC1idXR0b25zLXdlaWdodDo0MDA7IC0tY29ybmVyLXJpYmJvbi1iZy1jb2xvcjojZGUwMDAwOyAtLWNvcm5lci1yaWJib24tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLW1lbnUtaXRlbS1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yOiNmZmZmZmY7IC0taG9tZXBhZ2UtYmFubmVyLXNlYXJjaC1iYXItdmlkZW8tb3BhY2l0eTozMDsgLS1ob21lcGFnZS1zb2NpYWwtYmctY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1zb2NpYWwtdGV4dC1jb2xvcjojMDAwMDAwOyAtLWhvbWVwYWdlLXNvY2lhbC1sb2dvLWNvbG9yOiMxODc3RjI7IC0tcHJvbW90aW9uLWJhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTsgLS1wcm9tb3Rpb24tdGV4dC1jb2xvcjojMDAwMDAwOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYmc6OyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfY29sb3I6OyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYnRuX2JnOjsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2J0bl9jb2xvcjo7IC0tbmV3dmRwLWJlc3RwcmljZS10ZXh0LWNvbG9yLXByaWNlOiNkZTAwMDA7IC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dDojMDAwMDAwOyAtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yOiNmN2Y3Zjc7IC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtYmctY29sb3I6I2NjMDAwMDsgLS10cmFkZWluYmFyLWJ0bi1iZzojMDAwMDAwOyAtLXRyYWRlaW5iYXItYnRuLWNvbG9yOiNmZmZmZmY7IC0tZGVmYXVsdC1ibGFjay10ZXh0OiMwMDAwMDA7IC0tcHJvbW8tYnRuLWJnLWNvbG9yOiMwMjc2YjM7IC0tdHJhZGVpbmJhci1iZzojZjNmM2YzOyAtLXRyYWRlaW5iYXItY29sb3I6IzAwMDAwMDsgLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yOiMwMDAwMDA7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZzojMDAwMDAwOyAtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLWFsZXJ0LWJhci10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQtY29sb3I6cmdiKDE2LDQzLDc4KTsgLS10b3AtcHJvbW8tYnRuLWJnLWNvbG9yOnJnYigyNDcsMjQ3LDI0Nyk7IC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yOjsgLS1kaWdpdGFsLXJldGFpbGluZy1kcmF3ZXItd2lkdGg6OTAlJTsgfSAqIHsgYm9yZGVyLWNvbG9yOmluaGVyaXQ7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXdpZHRoOjA7IGZvbnQtZmFtaWx5OmluaGVyaXQ7IGxpbmUtaGVpZ2h0OjEuMmVtOyB9IG9sLCB1bCwgbWVudSB7IGxpc3Qtc3R5bGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSBhIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH0gaDEsaDIsaDMsaDQsaDUsaDYsIHAgeyBtYXJnaW46MDsgfSBoMSxoMixoMyxoNCxoNSxoNnsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OmluaGVyaXQ7IH0gaW1nIHsgbWF4LXdpZHRoOjEwMCU7IH0gdGFibGUgeyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gdGV4dGFyZWEgeyB3aGl0ZS1zcGFjZTpyZXZlcnQ7IH0gOndoZXJlKFtoaWRkZW5dKXsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gOndoZXJlKFtjb250ZW50ZWRpdGFibGVdKXsgLW1vei11c2VyLW1vZGlmeTpyZWFkLXdyaXRlOyAtd2Via2l0LXVzZXItbW9kaWZ5OnJlYWQtd3JpdGU7IG92ZXJmbG93LXdyYXA6YnJlYWstd29yZDsgbGluZS1icmVhazphZnRlci13aGl0ZS1zcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOmFmdGVyLXdoaXRlLXNwYWNlOyB9IDp3aGVyZShbZHJhZ2dhYmxlPSJ0cnVlIl0pIHsgLXdlYmtpdC11c2VyLWRyYWc6ZWxlbWVudDsgfSAjQWZ0ZXJDYXJvdXNlbCA+IC5jb250YWluZXIsICNob21lcGFnZS1jb250ZW50ID4gLmNvbnRhaW5lciwgI2hvbWVfQWZ0ZXJBY3Rpb25Cb3ggPiAuY29udGFpbmVyLCAjaG9tZV9BZnRlckRpc3BsYXlWZWhpY2xlID4gLmNvbnRhaW5lciB7IG1heC13aWR0aDoxMjAwcHg7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyB9ICNBZnRlckNhcm91c2VsID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyQWN0aW9uQm94ID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyRGlzcGxheVZlaGljbGUgPiAuY29udGFpbmVyOmhhcyguQWZ0ZXJDYXJvdXNlbEZ3KSwgI2hvbWVfQWZ0ZXJEaXNwbGF5VmVoaWNsZSA+IC5jb250YWluZXI6aGFzKC5lbWJlZC1jb250YWluZXIteW91dHViZSkgeyBtYXgtd2lkdGg6bm9uZTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgfSBib2R5Lmhhcy1kMmNib3QgI0FmdGVyQ2Fyb3VzZWwgLmNvbnRhaW5lciwgYm9keS5oYXMtZDJjYm90ICNob21lcGFnZS1jb250ZW50IC5jb250YWluZXIsIGJvZHkuaGFzLWQyY2JvdCAjaG9tZV9BZnRlckFjdGlvbkJveCAuY29udGFpbmVyLCBib2R5Lmhhcy1kMmNib3QgI2hvbWVfQWZ0ZXJEaXNwbGF5VmVoaWNsZSAuY29udGFpbmVyIHsgbWF4LXdpZHRoOm5vbmUgIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDowICFpbXBvcnRhbnQ7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jb250YWluZXItZmx1aWR7IG92ZXJmbG93LXg6aGlkZGVuOyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29udGFpbmVyLWZsdWlkICogeyBsaW5lLWhlaWdodDppbml0aWFsOyB9IC5ja2VkaXRvcldyYXBwZXJ7IG92ZXJmbG93LXg6aGlkZGVuOyBzY3JvbGxiYXItd2lkdGg6bm9uZTsgfSAqIHsgZm9udC12YXJpYW50LW51bWVyaWM6bGluaW5nLW51bXM7IH0KLyoqIC9jc3MvdjIvbmF2LmNzcyAqKi8KaGVhZGVyLm1vYmlsZS1oZWFkZXJ7IC0tdHh0LWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjA7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6My4ycmVtOyBib3gtc2hhZG93OnJnYmEoMCwgMCwgMCwgMC41KSAwIDAgNXB4IDNweDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXR4dC1jb2xvcik7IHotaW5kZXg6MTAwMDsgfSBkaXYubW9iaWxlLWhlYWRlci1zcGFjZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjMuMnJlbTsgZGlzcGxheTpibG9jazsgfSBoZWFkZXIubW9iaWxlLWhlYWRlciA+ICogKyAqIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMDAlOyB9IGhlYWRlci5tb2JpbGUtaGVhZGVyLnRhbGwgPiAqICsgKnsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZGQ7IGZsZXg6MSAxIGF1dG87IH0gaGVhZGVyIC5sb2dvLWFjdGlvbiB+ICogeyBtaW4td2lkdGg6Mi41cmVtOyB9IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBjb2xvcjppbmhlcml0OyBmb250LXNpemU6dmFyKC0tZnMtMSk7IC0tZnM6dmFyKC0tZnMtMSk7IH0gaGVhZGVyIGFzaWRleyAtLXR4dC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIuOTVyZW07IGxlZnQ6LTE5cmVtOyB3aWR0aDptaW4oODB2dywgMTlyZW0pOyBtaW4taGVpZ2h0OjEwMHZoOyBmb250LXNpemU6dmFyKC0tZnMpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBlYXNlLWluOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yKTsgbWF4LWhlaWdodDoxMDB2aDsgb3ZlcmZsb3c6YXV0bzsgei1pbmRleDoxMDA7IH0gbmF2eyAtLWZzOnZhcigtLWZzMSk7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IH0gbmF2IC5tZW51LWl0ZW0sIG5hdiAuc3VibWVudS1pdGVtIHsgcGFkZGluZzp2YXIoLS1zKTsgfSBuYXYgLm1lbnUtaXRlbXsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IG5hdiAubWVudS1pdGVtLmludmVyc2UtY29sb3J7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gbmF2IC5zdWJtZW51LWl0ZW17IGJvcmRlci1jb2xvcjp2YXIoLS1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2ItZXgpOyB9IG5hdiAuc3VibWVudS1pdGVtIHN2Zy5pY29uIHsgZmlsbDp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gbmF2IC5tZW51LWdyb3VwIHsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gbmF2IC5tZW51LWdyb3VwIH4gLm1lbnUtZ3JvdXAgeyBib3JkZXItdG9wLXdpZHRoOjA7IH0gbmF2IC5tZW51Q29sbHBhc2Ugc3ZneyB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7IH0gI2hvbWVuYXYgbmF2eyAtLXR4dC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW17IGJhY2tncm91bmQ6dmFyKC0tdGFiLWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbS5pbnZlcnNlLWNvbG9yeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9ICNob21lbmF2IG5hdiAuc3VibWVudS1pdGVteyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IGxpeyBwYWRkaW5nLXRvcDp2YXIoLS1zLTgpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVteyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW0uTEFOR1VBR0V7IGRpc3BsYXk6bm9uZTsgfSAuYnVyZ2VyLW1lbnUtY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYnVyZ2VyX3RvcCB7IHRyYW5zZm9ybS1vcmlnaW46MCA1MCU7IH0gLmJ1cmdlcl9ib3R0b20geyB0cmFuc2Zvcm0tb3JpZ2luOjAgNTAlOyB9IC5idXJnZXItbWVudS1idXR0b24gPiBzcGFuIHsgd2lkdGg6MS42cmVtOyBoZWlnaHQ6MC4yNXJlbTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iKTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzIGVhc2U7IHotaW5kZXg6MTAxOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl90b3AsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfdG9weyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgwLjFyZW0sIDApOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9taWRkbGUsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfbWlkZGxleyBvcGFjaXR5OjA7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgc2NhbGUoMC4yLCAwLjIpOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9ib3R0b20sICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfYm90dG9teyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoMC4xcmVtLCAwKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIH4gYXNpZGV7IHRyYW5zZm9ybTp0cmFuc2xhdGUoMTlyZW0pOyB9IGxhYmVsW2Zvcj0iYm1fdG9nZ2xlIl17IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDI7IH0gLnRoaW5MZWZ0IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBmb250LXNpemU6dmFyKC0tZnMwKTsgbWFyZ2luLWxlZnQ6OHB4OyB9IC50aGluTGVmdCAubG9nby1hY3Rpb24gYSB7IGZsZXgtYmFzaXM6MTUlIH0gaGVhZGVyLnRoaW5MZWZ0IGFzaWRlIHsgbGVmdDp1bnNldDsgcmlnaHQ6MDsgdHJhbnNmb3JtOnNjYWxlWCgwKSB0cmFuc2xhdGVYKDE5cmVtKTsgdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDUwJTsgfSAudGhpbkxlZnQgI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiB+IGFzaWRleyB0cmFuc2Zvcm06dW5zZXQ7IH0KLyoqIC9jc3Mvc2tlbGV0b24uY3NzICoqLwouaGlkZU9uUHJlTG9hZCB7IHZpc2liaWxpdHk6aGlkZGVuOyB9IC5yZXZlYWwtbW9kYWwgeyB2aXNpYmlsaXR5OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTAwMHB4OyB9IC5za2VsZXRvbiB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOiNlZWU7IH0gLnNrZWxldG9uOjpiZWZvcmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0OyBjb250ZW50OiIiOyBmb250LXNpemU6MC43NXJlbTsgbGluZS1oZWlnaHQ6MC43NXJlbTsgY29sb3I6Izg4ODsgYW5pbWF0aW9uOnNrZWxldG9uLWFuaW0gMnMgbGluZWFyIGluZmluaXRlOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsZXR0ZXItc3BhY2luZzowLjI1cmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gQGtleWZyYW1lcyBza2VsZXRvbi1hbmltIHsgMCUgeyBjb250ZW50OiIiOyB9IDI1JSB7IGNvbnRlbnQ6InwiOyB9IDUwJSB7IGNvbnRlbnQ6Inx8IjsgfSA3NSUgeyBjb250ZW50OiJ8fHwiOyB9IH0gLnNrZWxldG9uIGRpdjpmaXJzdC1jaGlsZCwgLnNrZWxldG9uIHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjA7IHRyYW5zaXRpb246b3BhY2l0eSAuMzAwczsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIgeyBiYWNrZ3JvdW5kOm5vbmU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkIHsgd2lkdGg6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHsgYmFja2dyb3VuZDp1bnNldDsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyBkaXY6Zmlyc3QtY2hpbGQsIC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjE7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3c6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgYW5pbWF0aW9uOnVuc2V0OyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZC5pcy1sb2FkZWQtbm93ID4gZGl2OmZpcnN0LWNoaWxkIHsgb3BhY2l0eTouNzU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkLmlzLWxvYWRlZC1ub3cgPiBkaXY6Zmlyc3QtY2hpbGQ6aG92ZXIgeyBvcGFjaXR5OjE7IH0KLyoqIC9jc3MvY3NzLmNzcyAqKi8KaHRtbCwgYm9keSwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgZm9udCwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGh0bWx7IGZvbnQtc2l6ZToxcmVtIDsgfSBib2R5IHsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDowcHg7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyBiYWNrZ3JvdW5kOiB0b3AgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IH0gaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGJ1dHRvbiB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IC5uYXYgbGkgYS50b3BfbGluaywgLnVwX21lbnUgdWwubmF2IHVsLnN1YiBsaSBhLnN1YnRpdGxlLCAuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgbGk+dWwuc3ViPmxpLmhhc1N1YiBsaSBhLCBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXZ7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbWVudSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbWVudS13ZWlnaHQpOyB9IGgxeyBmb250LWZhbWlseTp2YXIoLS1mb250LWgxKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyBjbGVhcjpib3RoOyB9IC5mbi5vcmd7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgxLXdlaWdodCk7IH0gaW5wdXRbdHlwZT1idXR0b25dLCBidXR0b24uanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuLCAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEsIC5idXR0b25fMyBhLCAuYnV0dG9uX3VuZGVyIGEsIC5idXR0b25fY21wX2xlZnQgYSwgLmJ1dHRvbl9jbXBfcmlnaHQgYSwgLmJ1dHRvbl9jbXBfYWN0IGEsIC5wdWxsb3V0cyBhLCAuaWROYXYxIGxpIGEudG9wX2xpbmsxLCAuY3RhX3ByaWNlLmFsdCwgLmN0YV9jcmVkaXQuYWx0LCAuY3RhX3Rlc3REcml2ZSwgLmN0YV9ldmFsLmFsdCwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9wYXJ0cy5hbHQsIC5jdGFfdGlyZXMuYWx0LCAuY3RhX3N2Y3Byb21vLmFsdCwgLmJveDE1IGgyIGEsIC5ib3gxOSBoMiBhLCAuYm94MjcgYSwgLnZpb3IsIC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZyB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYnV0dG9ucyk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtYnV0dG9ucy13ZWlnaHQpOyB9IGgyLGgzLGg0LGg1LGg2eyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMi13ZWlnaHQpOyB9IHN0cm9uZ3sgZm9udC13ZWlnaHQ6OTAwICFpbXBvcnRhbnQ7IH0gI21haW5EaXYud3JhcHBlciAudG9wX2JneyBtYXgtaGVpZ2h0OjI1MHB4OyBtaW4taGVpZ2h0OjExNXB4OyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciBpbWcuaW1hZ2UtcGFkZGluZyB7IHBhZGRpbmctYm90dG9tOjVweDsgfSAuY2tlZGl0b3JXcmFwcGVyIGgyIHsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDowcHggIWltcG9ydGFudDsgbWFyZ2luLXRvcDoxNXB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTVweCAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgYSB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxMDAlICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBwIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgcDplbXB0eSB7IG1hcmdpbi1ib3R0b206MXJlbTsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgLmNvbGxhcHNlLnNob3csIC5yZXNwb25zaXZlLWVkaXRvciAuY29sbGFwc2Uuc2hvdyAuY2FyZC1ib2R5IHsgdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7IH0gYS5kZXNjcmlwdGlvbi1hdXRvLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lICFpbXBvcnRhbnQ7IGNvbG9yOmluaGVyaXQ7IH0gLmNscnsgY2xlYXI6Ym90aDt9IC5mbGVmdHsgZmxvYXQ6bGVmdDsgfSBpbnB1dDppbnZhbGlke2JveC1zaGFkb3c6bm9uZTsgLW1vei1ib3gtc2hhZG93Om5vbmU7fSAuY29uZGl0aW9ucy0tY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3c7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tYm90dG9tOjhweDsgfSAuY29uZGl0aW9ucy0tY29udGFpbmVyIC5jb25kaXRpb25zIHsgZmxleC1ncm93OjI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IGNvbG9yOiM2NjY2NjY7IH0gLmNvbmRpdGlvbnNGb290ZXJ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7IGNvbG9yOiM2NjY2NjY7IH0gLmNvbmRpdGlvbnMtLWNvbnRhaW5lciBhLCAuY29uZGl0aW9uc0Zvb3RlciBhIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM2NjY2NjY7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgYXsgY29sb3I6aW5oZXJpdDsgfSAubWFpbkRpdi13cmFwcGVyID4gLmxhbmd1YWdlQmFyLXplcm8geyBtYXJnaW46MDsgaGVpZ2h0OmluaGVyaXQ7IHdpZHRoOjEwMCU7IH0gLmhlYWRlci1zZWN0aW9uIC5sYW5ndWFnZUJhciB7IG1hcmdpbjowIGF1dG8gMi43NXJlbTsgd2lkdGg6aW5oZXJpdDsgfSAuaGVhZGVyLXNlY3Rpb24gLmxhbmd1YWdlQmFyICsgLnBob25lIHsgbWFyZ2luLWJvdHRvbTowLjVyZW07IH0gLmxhbmd1YWdlQmFyIHVsIGE6aG92ZXJ7Zm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzY2NjY2NjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5sYW5ndWFnZUJhciB1bCBhOnZpc2l0ZWR7cGFkZGluZy1yaWdodDozNXB4OyB3aWR0aDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2NjY2OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB0ZXh0LWFsaWduOnJpZ2h0O30gLmxhbmd1YWdlQmFyLmxhbmd1YWdlQmFyLXplcm8geyBoZWlnaHQ6MDsgcGFkZGluZzowOyBtYXJnaW46MDsgfSAjbWFpbkRpdi53cmFwcGVyLm5vLWljb25zIHsgcGFkZGluZy10b3A6MC4wMXJlbTsgfSAudG9wX3JvdXsgd2lkdGg6OTYwcHg7IGhlaWdodDo0cHg7IGZsb2F0OmxlZnQ7IH0gLmxvZ297IH0gLmxvZ29Ob1BhZGRpbmcgaW1neyB3aWR0aDoxMDAlO30gLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbiwgLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbnsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBmb250LXNpemU6MC43NXJlbSA7IHdpZHRoOjI4cHg7IGhlaWdodDoyNnB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXI6MXB4IHNvbGlkICNCNkI3Qjk7IGNvbG9yOiNCNkI3Qjk7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IH0gLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uLmFjdGl2ZSwgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpob3ZlcnsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2Y3ZjdmNzsgYmFja2dyb3VuZC1jb2xvcjojQjZCN0I5OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IH0gLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbjpudGgtY2hpbGQoZXZlbiksIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246bnRoLWNoaWxkKGV2ZW4peyBtYXJnaW4tbGVmdDoycHg7IH0gLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbiBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCwgLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbiBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH0gLmxvZ29Ob1BhZGRpbmd7IG1heC13aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTRweDt9IC52LWNhcmQudG9wX2JnIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IH0gLnYtY2FyZC50b3BfYmcuLW10MCAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpIHsgbWFyZ2luLXRvcDo3NHB4OyB9IC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6ZmxleDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciB7IG1pbi1oZWlnaHQ6OTdweDsgfSAuaGVhZGVyLXNlY3Rpb24uaW1hZ2UgeyB3aWR0aDoyNSU7IH0gLmhlYWRlci1zZWN0aW9uLmltYWdlID4gLmhlYWRlci1pbWFnZS13cmFwcGVyIGltZyB7IG1heC1oZWlnaHQ6MjUwcHg7IH0gLmhlYWRlci1zZWN0aW9uID4gZGl2IHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZSB7IHdpZHRoOmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246cmlnaHQ7IHBhZGRpbmc6MC41cmVtIDA7IH0gLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKS5pbWFnZSB7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9yaWdodHsgdGV4dC1hbGlnbjpyaWdodDsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX2xlZnQgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmhlYWRlci1zZWN0aW9uID4gLnYtY2FyZCB7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZXsgZGlzcGxheTpmbGV4OyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgLm11bHRpLWFkZHJlc3MtLXBob25leyB3aWR0aDphdXRvOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSAubXVsdGktYWRkcmVzcy0tcGhvbmUgaXsgZm9udC1zaXplOjAuNjI1cmVtIDsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5tdWx0aS1hZGRyZXNzIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7IH0gLm11bHRpLWFkZHJlc3MtLXBob25lIHsgd2lkdGg6MTMzcHg7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IH0gLm11bHRpLWFkZHJlc3MgaSB7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAudG9wX2JnIHRhYmxlIHRib2R5IHRkOm50aC1jaGlsZCgyKSAuaGVhZGVyLXNlY3Rpb24geyB3aWR0aDoxMDAlOyB9IC50b3BfYmcuZGl2VGFibGUgLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKSB7IHRleHQtYWxpZ246cmlnaHQ7IH0gLnRvcF9iZyB0YWJsZSB0ZCAuaGVhZGVyLXNlY3Rpb24geyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucGhvbmUgaDJ7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZSBoMXsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmUgZGl2Lm9yZ3sgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmVfdGV4dCB7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDoycHg7IHBhZGRpbmctdG9wOjJweDt9IC5waG9uZV90ZXh0IGF7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWxsLWNoYW5nZTp0cmFuc2Zvcm07IHRyYW5zZm9ybS1vcmlnaW46cmlnaHQgY2VudGVyOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7IH0gLnBob25lX3RleHQgYTpob3ZlcnsgdHJhbnNmb3JtOnNjYWxlKDAuOTMpOyBjb2xvcjojMDA1NzljOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBhLnBob25lLWxpbmsgeyBkaXNwbGF5IDppbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgcGFkZGluZyA6MCAhaW1wb3J0YW50OyBjb2xvciA6aW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uIDpub25lOyB9IGEucGhvbmUtbGluazpob3ZlciB7IGNvbG9yOmluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNzbGlkZXJ7IHdpZHRoOjk2MHB4OyBtYXJnaW4tbGVmdDowcHg7IGJveC1zaGFkb3c6bm9uZTsgfSAuY2VudGVyZWQge3Bvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUwJTsgdG9wOjUwJTt9IC51cF9tZW51eyB3aWR0aDo5NjBweDsgaGVpZ2h0OjMxcHg7IHotaW5kZXg6MTExMTsgZmxvYXQ6cmlnaHQ7d2hpdGUtc3BhY2U6bm93cmFwOyB9IC5iYW5uZXJ7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MzAxcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjJweDsgbWFyZ2luLWJvdHRvbTo2cHg7IH0gLm1lX3RvcHsgd2lkdGg6OTY3cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAubWVfYmd7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZV9iZ19yb3UucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5tZV9kZXNje21hcmdpbjowcHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjAuODc1cmVtIDsgb3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NXB4IDE1cHh9IC5tZV9ib3V7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm9uZXsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDt9IC50d297IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTRweDsgbWFyZ2luLXRvcDo4cHg7fSAudGhyZWV7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTRweDsgbWFyZ2luLXRvcDo4cHg7fSAuZm91cnsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo0cHg7IG1hcmdpbi10b3A6NHB4O30gLlZvdXN7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbToycHg7fSAuY2xhc3N7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTowcHg7IHBhZGRpbmctdG9wOjZweDt9IC5jbGFzczF7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBoZWlnaHQ6MTU3cHg7IG1hcmdpbi10b3A6NnB4O30gLmJvcmRlcntib3JkZXI6MXB4IHNvbGlkICNkM2QzZDM7IHdpZHRoOjIxOHB4O30gLmJveHsgd2lkdGg6NzVweDsgaGVpZ2h0OjczcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLXRvcDoxMHB4OyBtYXJnaW46MCBhdXRvO30gLmNhe2hlaWdodDoxNDNweDt9IC5ib3gyMjV7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206M3B4O30gLmJveDIyNHsgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctYm90dG9tOjZweDt9IC5ib3gyMjN7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDozcHg7fSAubm9zeyB3aWR0aDo3MTBweDsgaGVpZ2h0OjEwMCU7IG1hcmdpbi10b3A6NXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gLm5vc190b3B7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm5vc19iZ3sgd2lkdGg6NzE2cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL25vc19iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLm5vc19ib3V7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm5vc190ZXh0e2hlaWdodDozMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYXJvd3sgd2lkdGg6Njk1cHg7IGhlaWdodDoxNjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NHB4O30gLmNvbnsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzNjM2MzYzt9IC5kZXNjIHttYXgtd2lkdGg6MTAwJTt9IC5kZXNjX2JnIHt3aWR0aDoxMDAlOyBoZWlnaHQ6MjQ4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL25vc19iZy5wbmciKSByZXBlYXQteSBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7fSAuYWRkcnttYXJnaW4tdG9wOjI1cHg7fSAuYWRkcl9taWR7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZV9iZ19yb3UucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5oaWRkZW57ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fSAuaG91cnNfcmVtIHsgdGV4dC1hbGlnbjpyaWdodDtsaW5lLWhlaWdodDoxOHB4OyBmbG9hdDpyaWdodDtwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLmhvdXJzX3JlbSBheyBmb250LXNpemU6MC42ODhyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbHt3aWR0aDo2MHB4OyBmbG9hdDpsZWZ0O30gLmRlcnt3aWR0aDo0NjBweDsgaGVpZ2h0OjI1NXB4OyBtYXJnaW4tdG9wOjFweDsgZmxvYXQ6bGVmdDt9IC5kZXJfdG9weyB3aWR0aDo0NjRweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5kZXJfYmd7IHdpZHRoOjQ0NHB4OyBoZWlnaHQ6MjI2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6NnB4IDEwcHggMTBweCAxMHB4O30gLmRlcl9ib3V7IHdpZHRoOjQ2NHB4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLmRlbXt3aWR0aDo0OTVweDsgaGVpZ2h0OjI1NXB4OyBtYXJnaW4tdG9wOjNweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4O21hcmdpbi1ib3R0b206NnB4O30gLnNib3gxeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDJ7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94M3sgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3g0eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuYm90dG9tNGJveGVze2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTtwYWRkaW5nOjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30gLmJvdHRvbTRib3hlcyAqIHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fSAuYm90dG9tNGJveGVzID4gLmJveDI0NXtmbG9hdDpsZWZ0O3dpZHRoOjI1JTttYXgtd2lkdGg6MjQ1cHg7fSAuYm90dG9tNGJveGVzID4gLmJveDI0MXtmbG9hdDpsZWZ0O21hcmdpbjoxMHB4IDZweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjBweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjBweDt9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmJvdHRvbTRib3hlcyB0YWJsZSB7IHBhZGRpbmc6MCAxMHB4OyB9IH0gLnNib3hVc2VkeyBmbG9hdDpsZWZ0OyB9IC5zYm94X3RvcHsgd2lkdGg6MjQ3cHg7IGhlaWdodDo1cHg7IGZsb2F0OmxlZnQ7fSAuc2JveF9iZ3sgd2lkdGg6MjQ3cHg7IGhlaWdodDoxMDdweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zYm94X2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyO30gLnNib3hfYm91eyB3aWR0aDoyNDdweDsgaGVpZ2h0OjVweDsgZmxvYXQ6bGVmdDt9IC5kYXsgbWFyZ2luLXRvcDoxMnB4O30gLmRhMXsgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5kYTEgaDF7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpub3JtYWw7fSAuYWRkbGluZXsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI3JldHVyblBvcHVwTmV4dE1vZGVseyBoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7IH0gLmFkZGxpbmU6OmJlZm9yZSwgLmFkZGxpbmU6OmFmdGVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBjb250ZW50OiIiOyBkaXNwbGF5OmlubGluZS1ibG9jazsgaGVpZ2h0OjFweDsgcG9zaXRpb246cmVsYXRpdmU7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NTAlOyB9IC5hZGRsaW5lOmJlZm9yZSB7IHJpZ2h0OjAuNWVtOyBtYXJnaW4tbGVmdDotNTAlOyB9IC5hZGRsaW5lOmFmdGVyIHsgbGVmdDowLjVlbTsgbWFyZ2luLXJpZ2h0Oi01MCU7IH0gLnNib3gxIGEuY0xpbmssIC5zYm94MiBhLmNMaW5rLCAuc2JveDMgYS5jTGluaywgLnNib3g0IGEuY0xpbmt7IGRpc3BsYXk6YmxvY2s7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuc2JveDEgYS5jTGluazpob3ZlciwgLnNib3gyIGEuY0xpbms6aG92ZXIsIC5zYm94MyBhLmNMaW5rOmhvdmVyLCAuc2JveDQgYS5jTGluazpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0LCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiBhLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgYSB7IGNvbG9yOiMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiAuYm9yZGVyX2JveCwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0IC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBjb2xvcjppbmhlcml0OyB9IC5ibGFja190ZXh0eyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzE5MTkxOTsgbWFyZ2luLWJvdHRvbTo0cHg7fSAuZ3JheV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMTkxOTE5O30gLmJ1dHsgZmxvYXQ6cmlnaHQ7IG1hcmdpbjowcHggMHB4IDBweCAwcHg7fSAubGluZXsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2QyZDJkMjsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1ib3R0b206NXB4O30gLnZpdnsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiNmZmY7IGNvbG9yOiMwMDAwMDA7IHRleHQtYWxpZ246anVzdGlmeTt9IC50d3sgd2lkdGg6MjYwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IHRleHQtYWxpZ246cmlnaHQ7fSAuRU5HTElTSCAudml2e3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuTWFpbkJveExheWVyIC52aXYgeyBtYXJnaW4tbGVmdDowOyB9IC5zb2NpYWwtc2hhcmluZ3sgd2lkdGg6MTAwJTsgY2xlYXI6Ym90aDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi10b3A6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWx7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nLWxlZnQ6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6bGFzdC1jaGlsZHsgcGFkZGluZy1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpmaXJzdC1jaGlsZHsgcGFkZGluZy1yaWdodDo1cHg7IH0gLk1haW5Cb3hMYXllciAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjA7IH0gI2Zvb3RlckRpdiAuYWRkLCAjZm9vdGVyRGl2IC5hZGQgYSB7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgfSAjZm9vdGVyRGl2IC5hZGQgLm9yZ3sgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAucG91cnsgd2lkdGg6NzI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLnBhZ2Vub3t3aWR0aDoyMzZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjVweDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi10b3A6MTBweDsgfSAucGFnZW5vIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjAgMCAxNXB4IDA7IHBhZGRpbmc6MDsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAucGFnZW5vIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7ZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5wYWdlbm8gdWwgbGkgYXsgd2lkdGg6MjM3cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vIHVsIGxpIHNwYW4sIC5wYWdlbm8gdWwgbGkgYS5mdGl0bGV7IHdpZHRoOjIzNnB4OyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZTpob3ZlcnsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnBhZ2VubyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLnBhZ2VubyBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6MThweDt9IC5FTkdMSVNIIC5wYWdlbm8gdWwgbGkgYXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO30gLmFkZHsgd2lkdGg6MjMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOnJpZ2h0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4O30gLmNvcHl7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7fSAuY29weSBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyBmb250LXdlaWdodDpub3JtYWx9IC5jb3B5IGE6aG92ZXJ7IGNvbG9yOiNkNGQ0ZDQ7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuZm9vdGVyLWxpc3RzIGxpID4gc3BhbiB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IH0gI2Zvb3RlcldyYXBwZXIgLnYtY2FyZC5hZGQgeyBsaW5lLWhlaWdodDppbml0aWFsOyB9ICNmb290ZXIgLmZvb3Rlci10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wsIHZhcigtLXdoaXRlKSk7IH0gLkVOR0xJU0ggI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDp2YXIoLS1zNSk7IH0gI2Zvb3RlciA+IC5mbGV4LWJveCA+IC5mb290ZXItbG9nb19fY29udGFpbmVyIGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0OjE1MHB4OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLW1lZGlhLWljb25zIHsgdGV4dC1hbGlnbjpsZWZ0OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgeyB3aWR0aCA6YXV0bzsgaGVpZ2h0OmF1dG87IG1hcmdpbjowIDRweDsgfSAjZm9vdGVyIGEuc29jaWFsLWxpbmsgPiBzdmcgeyBoZWlnaHQ6MjJweDsgbWFyZ2luLWxlZnQ6M3B4OyB9IGhlYWRlciAuaGVhZGVyLXNvY2lhbCAjc29jaWFsX21lZGlhX2ljb25zX2RpdiA+IGEgPiBzdmcgeyBoZWlnaHQ6MjFweDsgbWFyZ2luLXRvcDo0cHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyAuc29jaWFsLWljb25zIC5mYWIgeyBtYXJnaW4tdG9wOjA7IGZvbnQtc2l6ZSA6MS45ZW07IGNvbG9yIDp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjFyZW07IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5mb290ZXItbG9nb19fY29udGFpbmVyIHsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjE4MHB4OyBtYXgtaGVpZ2h0OjEwMHB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9sZWZ0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gI2Zvb3RlciB7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6OTk5cHgpIHsgI01haW5NZW51X1NFQVJDSF9CQVIgeyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkuZmlyc3RNZW51IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgeyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgPiB1bC5zdWIgeyByaWdodDoxMHB4OyB9IC5sYW5ndWFnZUJhciBkaXY6Zmlyc3Qtb2YtdHlwZSB7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5tZW51NyAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTggLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0xNjBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMzAwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IH0gLmRpdlNwYW4ucGFnZW5vIHsgbWFyZ2luLWxlZnQ6MDsgfSAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgc3BhbiwgLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEuZnRpdGxlIHsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWF4LXdpZHRoOjIyNXB4OyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAuYWRyIHsgbGluZS1oZWlnaHQ6MS4ycmVtOyBtYXJnaW46MC41cmVtIDA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZm9vdGVyLXRpdGxlX19jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOjJyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjMgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjE1cHg7IHBhZGRpbmctcmlnaHQ6MzBweDsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLmRpdlNwYW45IHsgZmxvYXQ6cmlnaHQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyBmbG9hdDp1bnNldDsgY2xlYXI6dW5zZXQ7IG1hcmdpbjowOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbC1zaGFyaW5nIHsgd2lkdGg6MjUlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6NzUlOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxcmVtOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWw6Zmlyc3QtY2hpbGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9ICNmb290ZXIgLmljb24tdGV4dHsgbWFyZ2luLWJvdHRvbTouNHJlbTsgfSAjZm9vdGVyIC5pY29uLXRleHQgc3Bhbnsgd2lkdGg6MjBweDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2Zvb3RlciAuZm4ub3JnIHsgbGluZS1oZWlnaHQ6Mi4wNjI1cmVtOyB9IC5zbWFsbHBpY19ib3h7d2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDt9IC5zbWFsbHBpYzQze3dpZHRoOjQzcHg7IGhlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA1cHggMCAwOyBib3JkZXI6MnB4IHNvbGlkICNGRkZGRkY7fSAuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgZGlzcGxheTpibG9jazsgfSBhLmRldGFpbHN7d2lkdGg6ODFweDsgaGVpZ2h0OjMwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGV0YWlscy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IGE6aG92ZXIuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCAtMzJweCBuby1yZXBlYXQ7fSAuYmlnX3BpY2JveHttaW4taGVpZ2h0OjExMHB4O3dpZHRoOjE0NnB4O30gLmJpZ19waWNib3ggaW1neyBkaXNwbGF5OmJsb2NrOyB9IC5waWNib3hfdmlkZW9idG5fZW4sIC5waWNib3hfdmlkZW9idG5fZnIge2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjQ1cHg7fSAucGljYm94X3ZpZGVvYnRuX2VuIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW4ucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2VuOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW5faG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnJfaG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAuYmlnX3BpY2JveF93cmFwcGVyIHsgd2lkdGg6MTQ2cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDEwcHggMHB4IDIxcHg7IH0gLnRleHRfdGl0bGUgYXsgZGlzcGxheTpibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxOyBmb250LXdlaWdodDpib2xkO30gLnRleHRfdGl0bGUye3dpZHRoOjMyOXB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnNvbGRfY2FyX25vdGV7YmFja2dyb3VuZC1jb2xvcjojMUUxRTFFOyBib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0ZGRjsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjE1cHg7fSAuc29sZF9jYXJfbm90ZSBhIHtjb2xvcjojRkZGO30gLnNvbGRfY2FyX25vdGUgYTpob3ZlciB7Y29sb3I6I0JCQjt9IC50ZXh0X3RpdGxlM3t3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDsgcGFkZGluZy1ib3R0b206N3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDg0ODQ4O30gLnRleHRfYm94Mnt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDBweCAwcHggMHB4OyB9IC5tYWluX3BpY2JveHt3aWR0aDo2NzFweDsgbWluLWhlaWdodDoxNzBweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMnt3aWR0aDo2ODFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyX2RldGFpbHNfbWlkRXh7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzowIDBweDtoZWlnaHQ6ODVweDt9IC5ib3gyX2RldGFpbHNfdGV4dCBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMjJ7d2lkdGg6OTcxcHg7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjk3MXB4IGF1dG87fSAuYm94MTcwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDBweCAxMHB4IDA7fSAuY3VzdG9tQm94QmFzaWN7IHdpZHRoOjI0MXB4OyBoZWlnaHQ6MTE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDAgMCAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZToyNDFweCAxMjFweDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLmN1c3RvbUJveEJhc2ljOmhvdmVyeyBjb2xvcjojZmZmOyB9IC5jdXN0b201IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMl9ob3Zlci5wbmcpOyB9IC5jdXN0b201NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjIucG5nKTsgfSAuY3VzdG9tNjY1IHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3gyM19ob3Zlci5wbmcpOyB9IC5jdXN0b202NjU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMy5wbmcpOyB9IC5jdXN0b202NzUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3LnBuZyk7IH0gLmN1c3RvbTY3NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3X2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY4NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjgucG5nKTsgfSAuY3VzdG9tNjg1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjhfaG92ZXIucG5nKTsgfSAuaW1hZ2VfcmliYm9uIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6LTVweDsgdG9wOi00cHg7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMTJweDsgaGVpZ2h0OjExMnB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5pbWFnZV9yaWJib24gc3BhbiB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyOHB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoxNDhweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojMDI3NmIzOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjMwcHg7IGxlZnQ6LTMwcHg7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgIzAyNzZiMzsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMwMjc2YjM7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDozcHggc29saWQgIzAyNzZiMzsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMwMjc2YjM7IH0gLmltYWdlX3JpYmJvbl92ZHAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTZweDsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxOTRweDsgaGVpZ2h0OjE5NHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB6LWluZGV4OjQwOyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW4geyBmb250LXNpemU6MS4wNjNyZW0gOyBjb2xvcjojZmZmZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzZweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgd2lkdGg6MjczcHg7IGRpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQ6IzAyNzZiMzsgYm94LXNoYWRvdzowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo2N3B4OyBsZWZ0Oi01MXB4OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjZjdmN2Y3OzsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNmN2Y3Zjc7OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjZjdmN2Y3OzsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNmN2Y3Zjc7OyB9IC5yaWJib24tY29udGFpbmVyIHsgd2lkdGggOjMwMHB4OyBoZWlnaHQgOjMwMHB4OyBvdmVyZmxvdyA6aGlkZGVuOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbiB7IHotaW5kZXggOjU1NTsgbWFyZ2luIDowOyBwYWRkaW5nIDowLjVyZW0gMCAhaW1wb3J0YW50OyBib3gtc2hhZG93IDowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgZm9udC1zaXplIDoxN3B4OyBsaW5lLWhlaWdodCA6MjNweDsgdGV4dC1hbGlnbiA6Y2VudGVyOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgdHJhbnNmb3JtIDp0cmFuc2xhdGVYKC0zMCUpIHRyYW5zbGF0ZVkoMCUpIHJvdGF0ZSgtNDVkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luIDp0b3AgcmlnaHQ7IGJhY2tncm91bmQgOiNkZTAwMDA7IGNvbG9yIDojZmZmZmZmOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSwgLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YWZ0ZXIgeyBjb250ZW50IDoiIjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IG1hcmdpbiA6MCAtMXB4OyB3aWR0aCA6MTAwJTsgaGVpZ2h0IDoxMDAlOyBiYWNrZ3JvdW5kIDojZGUwMDAwOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSB7IGxlZnQ6MTAwJTsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IHJpZ2h0OjEwMCU7IH0gLnNlYXJjaHJpZ2h0IHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsO2N1cnNvcjpwb2ludGVyOyB9IC5zZWFyY2hyaWdodGhvdmVyIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0WFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdCByZ2IoMjQ3LDI0NywyNDcpOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDtjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAuc2VhcmNocmlnaHRob3ZlclhYWCB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6MTE2cHg7IHBhZGRpbmc6NXB4IDAgMCAwOyBtYXJnaW46MCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LWhvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0IHJnYigyNDcsMjQ3LDI0Nyk7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAuc2VhcmNocmlnaHQtdGV4dHsgbWFyZ2luLWxlZnQ6MTAwcHg7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6NjAlOyB9IC5zZWFyY2hyaWdodC10ZXh0IHB7IG1hcmdpbjoxNXB4IDAgMDsgfSAucGFnZW5vMntoZWlnaHQ6MjRweDsgfSAucGFnZW5vMiB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLnBhZ2VubzIgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTppbmxpbmU7fSAucGFnZW5vMiB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojYjNiNGI1OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6IzI4MjgyODsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5wYWdlbm8yIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLm1haW5fYm94e3dpZHRoOjk2MHB4OyBtYXJnaW46MCBhdXRvO30gLm1haW5fbGVmdF9ib3h7d2lkdGg6NjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6MTBweDt9IC5tYWluX2xlZnRfYm94IHVse3BhZGRpbmc6MHB4O30gLmJveF9taWRfcm91bmQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzpub25lOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXRvcDoxMHB4OyB9IC5ib3hfdG9wX3JvdW5kIHsgZGlzcGxheTpub25lOyB9IC5ib3gyX2RldGFpbHNfZm9vdGVyMiB7IGRpc3BsYXk6bm9uZTsgfSAuZGV0YWlsc19ib3ggaW1nLnZpcHsgbWFyZ2luLXRvcDotNDhweDsgd2lkdGg6MTQwcHg7IGJvcmRlcjoxcHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5ib3hfdG9wX3JvdW5kMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgbWFyZ2luLXRvcDo1cHg7fSAuYm94X21pZF9yb3VuZDJ7d2lkdGg6OTcxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgcGFkZGluZzowIDVweDt9IC5wYWdlX25hbWV7d2lkdGg6NjUwcHg7IGhlaWdodDozMHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5wYWdlX25hbWUgYXsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGFnZV9uYW1lIGE6aG92ZXJ7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWM7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSB0YWJsZS52ZWhpY2xlTGlzdFRhYmxlIGF7ZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS4yO30gdGFibGUudmVoaWNsZUxpc3RUYWJsZSBhOmhvdmVye2Rpc3BsYXk6dGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMjt9IC5Qb3JzY2hlMnt3aWR0aDoxMDAlO2hlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDIwcHggMjFweDsgbWFyZ2luOjE1cHggMCAyNXB4IDA7IGxpbmUtaGVpZ2h0OjMxcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7ZGlzcGxheTppbmxpbmV9IC5Qb3JzY2hlMiBoMXtmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuVHJpZXJwYXJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzVCNjk5QzsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo1cHg7fSAuc2VsZWN0ZWRfYm94Mnt3aWR0aDoxNzVweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbWFyZ2luOjE1cHggMDsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5zZWxlY3RlZF9vcmRlcmJ5e3dpZHRoOjEzNXB4OyBmbG9hdDpyaWdodDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBtYXJnaW46MTBweCAxMHB4IDBweCAwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAucHJpeHt3aWR0aDo3OXB4OyBoZWlnaHQ6NzhweDsgZmxvYXQ6bGVmdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTE7IG1hcmdpbi10b3A6LTRweDsgbWFyZ2luLWxlZnQ6LTRweDsgdG9wOjBweDt9IC5wYWdlbm81e3dpZHRoOjEwMCU7IGhlaWdodDoyNHB4OyBtYXJnaW46MzBweCAwIDIwcHggMHB4OyBwYWRkaW5nOjA7IGZsb2F0OmxlZnQgfSAucGFnZW5vNnt3aWR0aDoyNTRweDsgaGVpZ2h0OjI0cHg7IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246cmlnaHQ7fSAuc3VpdmFudHt3aWR0aDoyODBweDsgaGVpZ2h0OjE5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDt9IC5tYWluX3JpZ2h0X2JveHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94N3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3TGlua3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3X21pZHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAycHg7fSAuYm94N19taWRfZnVsbHt3aWR0aDo5NTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6bm9uZSBsZWZ0IHRvcCBuby1yZXBlYXQgMCAwIHRyYW5zcGFyZW50OyBwYWRkaW5nOjAgMnB4IDE1cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNCQkI7fSAuc2ltdWxhcl92X2JveHsgd2lkdGg6MjY1cHg7IHBhZGRpbmc6MHB4IDBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveFNlYXJjaE5ld3N7bWFyZ2luLXRvcDotM3B4O21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X3RvcF8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94U2VhcmNoTmV3c19taWR7bWFyZ2luLWxlZnQ6LTVweDtwYWRkaW5nOjBweDt3aWR0aDoyODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkXzI4MC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyB9IC5ib3hTZWFyY2hOZXdzX2Zvb3RlcjE1e21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X2Zvb3Rlcl8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94N0hfbWlke3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWJvdHRvbTo2cHg7fSAuUmVjaGVyY2hlMjJ7aGVpZ2h0OjIwcHg7IHBhZGRpbmc6MTBweCA3cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwMDAwMDA7fSAuc2ltVGl0bGV7aGVpZ2h0OmF1dG87IHBhZGRpbmc6MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDh7d2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDEwcHg7fSAuYm94OXt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDExe3dpZHRoOjEwMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLmJveDEye3dpZHRoOjEzMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLnNlbGVjdF9ib3gxNHtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMHB4OyBtYXJnaW4tYm90dG9tOjNweDt9IC5zZWxlY3RfYm94MTZ7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206M3B4O30gLnNlbGVjdF9ib3gxNXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5zZWxlY3RfYm94MTE1e3dpZHRoOjExNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuc2VsZWN0X2JveDgwe3dpZHRoOjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLmFfdGV4dHt3aWR0aDoyMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDozMXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzowIDVweDt9IC5ham91dGVye3dpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjojMWYxZjFmO21hcmdpbjo1cHggMCAxMHB4IDBweDt9IC5ham91dGVyX2F7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvc2VhcmNoLWRvd24tYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IDNweCB0cmFuc3BhcmVudDsgcGFkZGluZy1sZWZ0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ham91dGVyX2FfZnVsbHtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9zZWFyY2gtcmlnaHQtYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCAtMXB4IHRyYW5zcGFyZW50OyBwYWRkaW5nLXJpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ib3gxM3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7fSAuaW5wdXRfYm94Mnt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmlucHV0X3RleHR7IHdpZHRoOjE5NXB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzozcHggMHB4IDdweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmJ1dHRvbl9ib3gye3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAuYnV0dG9uX2JveFMyeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjI5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAzcHggMTNweCAzcHg7IH0gLmJveC1mb290ZXIxNXt3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmRpc3sgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgd2lkdGg6MjQwcHg7fSAuZGlzX2N1c3RvbXsgd2lkdGg6MjQwcHg7d2lkdGg6MjQwcHg7fSAuZGlzX3RvcHsgd2lkdGg6MjQ2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAuZGlzX3RvcF9jdXN0b217IHdpZHRoOjIzOHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojY2JjYmNiO30gLmRpc19iZ3sgd2lkdGg6MjQ2cHg7IGhlaWdodDoxNTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5fZGlzX2JneyB3aWR0aDoyNDBweDsgaGVpZ2h0OjIwMHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4O30gLmRpc19iZ19jdXN0b217IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5fZGlzX2JnX2N1c3RvbXsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmRpc19ib3V7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLl9kaXNfYm91eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjM4cHg7IGZsb2F0OmxlZnQ7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IG1hcmdpbi10b3A6MTRweDsgY29sb3I6IzJkMmQyZDs7IH0gLmRpc19ib3VfY3VzdG9teyB3aWR0aDoyMzhweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojZmZmZmZmO30gLl9kaXNfYm91X2N1c3RvbXsgd2lkdGg6MjQwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyBtYXJnaW4tdG9wOjEycHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAuZGlzX2JvdV8yeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91XzIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuZGlzX3RleHR7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IHBhZGRpbmc6NHB4IDBweCAwcHggMTVweDt9IC5sdW5kaV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBwYWRkaW5nOjJweCAwcHggMHB4IDIwcHg7IGxpbmUtaGVpZ2h0OjE0cHg7fSAubHVuZGlfdGV4dF9ob21lcGFnZV9oMjQ4e2ZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IHBhZGRpbmc6MTBweCAwIDAgMjBweDsgfSAubHVuZGlfdGV4dCB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsO3dpZHRoOjYwcHg7fSAubHVuZGlfdGV4dCB0ZHt0ZXh0LWFsaWduOmxlZnQ7fSAucHsgaGVpZ2h0OjE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6N3B4IDVweCAwcHggMTBweDsgZm9udC1zaXplOjAuODEzcmVtIDt9IC5leyBoZWlnaHQ6MTZweDsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmc6N3B4IDBweCAwcHggMHB4OyBmb250LXNpemU6MC44NzVyZW0gO30gLmJveDI4OCwgLmJveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC5fYm94Mjg4LCAuX2JveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IH0gLmJveDI4OFVzZWR7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDowcHg7fSAuYm94Mjg4TmV3e3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyB9IC5ib3gyODhOZXdfY3VzdG9te2Zsb2F0OmxlZnQ7fSAuYm94Mjg4TmV3UU0sIC5ib3gyODhOZXdRTV9tb2JpbGUgeyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyBmbG9hdDpsZWZ0OyB3aWR0aDoyODBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveDI4OE5ld1FNX21vYmlsZSB7IHdpZHRoOjEwMCU7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuUmVjaGVyY2hlMjIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIHRhYmxlIHsgd2lkdGg6MTAwJTsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIGlucHV0IHsgd2lkdGg6OTUlIWltcG9ydGFudDsgfSAuYm94Mjg4UU17IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDtmb250LXdlaWdodDpub3JtYWw7fSAuYm94Mjg4UU1fY3VzdG9te3dpZHRoOjI3OHB4O21hcmdpbjo1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIDAgNHB4ICMzMzM7fSAudGV4dEFyZWFRTXsgZm9udC1zaXplOjAuODEzcmVtIDtsaW5lLWhlaWdodDoxNXB4O30gLmJveDI4OF90b3B7d2lkdGg6Mjg4cHg7IGhlaWdodDoxNHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBtYXJnaW4tdG9wOjBweDt9IC5ib3gyODhfdG9wX2N1c3RvbXt3aWR0aDoyNzhweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6I2NiY2JjYjt9IC5fYm94Mjg4UU17IHdpZHRoOjI4MHB4OyB9IC5fYm94Mjg4X3RvcHt9IC5fYm94Mjg4X3RvcF9jdXN0b217IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBXaWR0aDoxMDAlOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGJvcmRlci1yYWRpdXM6NnB4IDZweCAwIDA7IH0gLl9ib3gyODgwX21pZHt9IC5fYm94Mjg4MF9taWRfY3VzdG9te2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5ib3gyODhfbWlkeyBib3gtc2hhZG93OjAgMCA1cHggIzMzMzMzMzsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgfSAuYm94Mjg4X21pZF9jdXN0b217IGJveC1zaGFkb3c6MCAwIDVweCAjMzMzMzMzOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmJveDI4ODBfbWlke3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgMTVweCAwcHggMTVweDt9IC5ib3gyODgwX21pZF9jdXN0b217d2lkdGg6MjI4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjVweCAyNXB4OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuYm94MjY5X21pZHt3aWR0aDoyNThweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDE1cHggMHB4IDE1cHg7fSAuem9vbTIye3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuc2VhcmNoX3JpZ2h0IHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3NlYXJjaC5wbmcpIDAgMCBuby1yZXBlYXQ7IHdpZHRoOjI3OHB4OyBoZWlnaHQ6MTExcHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjo1cHggNXB4IDVweCA1cHh9IC5EZW1hbmRlMjJ7d2lkdGg6Mjc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgbGluZS1oZWlnaHQ6MjZweDsgbWFyZ2luLXRvcDo2N3B4O30gLkRlbWFuZGUyMiBheyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgbGluZS1oZWlnaHQ6MjBweCA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLkRlbWFuZGUyMiBhOmhvdmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5EZW1hbmRlMjIgc3BhbiBheyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI5MjkyOTsgbGluZS1oZWlnaHQ6MjBweCA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLkRlbWFuZGUyMiBzcGFuIGE6aG92ZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjkyOTI5OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLmJveDI4OF9mb290ZXJ7d2lkdGg6Mjg4cHg7IGhlaWdodDoxNHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXJfcXN7d2lkdGg6Mjg4cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXJfcXN7d2lkdGg6Mjg4cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXI1NXsgd2lkdGg6MjgwcHg7IGhlaWdodDo1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kLWNvbG9yOiNDQkNCQ0I7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IH0gLmJveDI4OF9mb290ZXI1NV9jdXN0b217IHdpZHRoOjI4MHB4OyBoZWlnaHQ6MzVweDsgcGFkZGluZy10b3A6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IH0gLnAgYXt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5nYXAxMHt3aWR0aDoyMzBweDsgaGVpZ2h0OjEwcHg7IGZsb2F0OmxlZnQ7fSAucGFnZV9uYW1lMnt3aWR0aDo2NTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwIDIwcHggMDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNjI1cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWUzeyB3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMTBweCAxMHB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDt9IC5wYWdlX25hbWUzIGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjQyNDI0O2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLnBhZ2VfbmFtZTR7d2lkdGg6NjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwMTRGODA7fSAucGFnZV9uYW1lNCBoMnsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOnJnYigyNDcsMjQ3LDI0Nyk7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lNXt3aWR0aDoxMDAlO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDA7IG1hcmdpbi1ib3R0b206MTVweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNDI0MjQ7Zm9udC13ZWlnaHQ6bm9ybWFsIH0gI3NlYXJjaENvbnRhaW5lclBhcmVudCAucGFnZV9uYW1lNTpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi10b3A6MzBweDsgfSAuYm94Ml90ZXh0e2hlaWdodDphdXRvOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5ib3gyX3RleHQgcHsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDtjb2xvcjojMDAwMDAwOyBtYXJnaW4tYm90dG9tOjIwcHg7fSAucG9zaXRpdmVSYXRpbmdUeHQgcHtmb250LXNpemU6MXJlbSA7fSAucG9zaXRpdmVSYXRpbmdUeHQgaDMsIC5wb3NpdGl2ZVJhdGluZ1R4dCBoNHtmb250LXdlaWdodDpub3JtYWw7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e3RleHQtdHJhbnNmb3JtOm5vbmU7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e2ZvbnQtc2l6ZToxLjI1cmVtIDt9IC5ldGFwZXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7fSAudGV4dDF7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDt9IC50ZXh0MSBhe3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQzNDM0MzsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNmM2YzZjM7IH0gLnRleHQxIGE6aG92ZXJ7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAudGV4dDEgYS5hY3RpdmV7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAub25lMXt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi1sZWZ0OjEwcHg7fSAub25lMSBhe3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfcm91bmQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I0ZGRkZGRjsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLm9uZTEgYTpob3Zlcnt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy8xX2hvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6Mi4yNXJlbSA7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjQ2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5vbmUxIGEuYWN0aXZle3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgY29sb3I6IzAwMDAwMDsgbGluZS1oZWlnaHQ6NDZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnNlbGVjdGlvbm5lent3aWR0aDphdXRvOyBoZWlnaHQ6YXV0byA7IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6M3B4OyBwYWRkaW5nLXRvcDo0cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxYTFhMWE7IGxpbmUtaGVpZ2h0OjIycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuZm9ybXNfYm94MjJ7Ym94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMCAxMHB4IDA7IH0gLndpdGhfYm9yZGVyIHsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MCAxNnB4OyB9IC5QcmVub217d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzo4cHggMCAxMHB4IDA7fSAuUHJlbm9tIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tMnt3aWR0aDozMjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDEwcHggMDt9IC5QcmVub20yIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tM3t3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub200e3dpZHRoOjMyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTV7d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzpweCAwIDEwcHggMDt9IC5QcmVub202e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTd7d2lkdGg6MTA3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tOHt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6cHggMCAxMHB4IDA7IGRpc3BsYXk6YmxvY2t9IC5QcmVub205e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLlByZW5vbTEwe3dpZHRoOjEwN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLnRleHQxNXt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNnt3aWR0aDoxNzJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxN3t3aWR0aDoxMTJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxOHt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDNweCAwO30gLnRleHQxNSBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojZmYwMTAxO30gLmJ1dHRvbjV7d2lkdGg6Mjg1cHg7IG1hcmdpbi1ib3R0b206MzBweDsgbWFyZ2luLXRvcDo3MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5ib3hfZGF0ZXt3aWR0aDoxNjdweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDoxcHg7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94X2RhdGUye3dpZHRoOjEwN3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3hfZGF0ZTN7d2lkdGg6ODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gc3Bhbi5hc3RreyBjb2xvcjojRkYwMTAxO2ZvbnQtc2l6ZTowLjY4OHJlbSA7ZmxvYXQ6bGVmdDtwYWRkaW5nLXJpZ2h0OjNweDsgfSAuYm94NjF7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IH0gLmJveDYxNjZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IH0gLlBvbGl0aXF1ZXt3aWR0aDphdXRvOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmc6MCAycHggMHB4IDJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkNTlhZjsgbGluZS1oZWlnaHQ6MjJweDsgfSAuUG9saXRpcXVlIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDU5YWY7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjNmI5MWJkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMy5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTt9IC5Qb2xpdGlxdWUgYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjRweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lNC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMyNDI0MjQ7fSAudGV4dDE1NXt3aWR0aDoyODVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNTVjaGt7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAxMHB4IDEwcHggMTVweDt0ZXh0LWFsaWduOmxlZnQ7fSAuVmV1aWxsZXp7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWx9IC5WZXVpbGxleiBzcGFue3RleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjJweDt9IC5WZXVpbGxleiBzcGFuIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OnJpZ2h0OyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzI0MjQyNDsgZGlzcGxheTpibG9ja30gLlZldWlsbGV6IHNwYW4gYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNDQ2ZjsgZmxvYXQ6cmlnaHQ7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMDA0NDZmOyBkaXNwbGF5OmJsb2NrO30gLkh5cG90aGVxdWV7d2lkdGg6MTk1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo1MHB4O30gLkh5cG90aGVxdWUyMnt3aWR0aDoyMjRweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLkh5cG90aGVxdWUzM3t3aWR0aDo1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwOyBsaW5lLWhlaWdodDozNXB4O30gLmNpdmlxdWV7d2lkdGg6MTMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5SdWV7d2lkdGg6MjkwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5BcHB7d2lkdGg6MTgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5mb3JtczEwMHt3aWR0aDoxMzBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLmZvcm1zMTAxe3dpZHRoOjI5MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuZm9ybXMxMDJ7d2lkdGg6MTgwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5WaWxsZXsgd2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuUHJvdmluY2V7IHdpZHRoOjE1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLkNvZGV7IHdpZHRoOjE2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLmZvcm1zMTAzeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDR7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNXsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA2eyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnR9IC5UeXBle3dpZHRoOjIwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAuYm94NjAwe3dpZHRoOjYwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgcGFkZGluZy1ib3R0b206MjBweDsgbWFyZ2luLXJpZ2h0OjBweDt9IC5EZW1hbmRlNTV7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTY2e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2FsMi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU3N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL20ucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6NDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlODh7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTg4N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2YucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX3RleHQye3dpZHRoOjY0OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDBweCAxNXB4IDIzcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7fSAuYm94X2JyYW5ke3dpZHRoOjY0OHB4OyBmbG9hdDpsZWZ0O3BhZGRpbmc6MjBweCAwcHggMTVweCAwcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDN7d2lkdGg6NjYxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDEwcHggMTBweDsgbWFyZ2luLXRvcDoxNXB4OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5jYXJfYm94e3dpZHRoOjIwOHB4OyBoZWlnaHQ6MTMwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDhweCAwIDA7IHBhZGRpbmc6MDsgYm9yZGVyOjA7fSAuY2FyX2ltYWdlc3t3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJvcmRlcjowOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5jYXJfdGV4dHt3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMwMDAwMDA7IHRleHQtYWxpZ246Y2VudGVyfSAuY2FyX3RleHQgYSB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjEuMTt9IC5jYXJfdGV4dCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAwMDAwMH0gLmNhcl9ib3gyeyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgMTBweCAxMHB4IDA7IG92ZXJmbG93OmhpZGRlbjsgYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6I0ZGRjsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IH0gLmNhcl9ib3gyX3RheHR7aGVpZ2h0OmF1dG87IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWFsaWduOmxlZnQ7IGxpbmUtaGVpZ2h0OjIxcHg7fSAucGljX2JveDJ7IGJvcmRlcjoxcHggc29saWQgI0FBQTsgYmFja2dyb3VuZDojRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljX2JveDIgaW1nIHt3aWR0aDoxMDAlO30gLnByaW50e3dpZHRoOjE5MnB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmctdG9wOjdweDt9IC5wcmludCBheyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByaW50LnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyBwYWRkaW5nLWxlZnQ6MzVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucHJpbnQgYTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9wcmludF9ob3Zlci5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNGE3ODsgcGFkZGluZy1sZWZ0OjM1cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5wYWdlX25hbWVfY29ue3dpZHRoOjg0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDIxcHggMTBweCAyMHB4OyB9IC5ob21lMnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OjIwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzM3MzczNzsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWUze3dpZHRoOjUxMHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzczNzM3OyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwe3dpZHRoOjMxMHB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgbGluZS1oZWlnaHQ6MzJweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQwZDBkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwIHNwYW57IGNvbG9yOiNGRjAwMDA7fSAuaW5wdXQyNXt3aWR0aDozMTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAudmV1eHt3aWR0aDo2MDBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbToxMHB4OyBwYWRkaW5nLXRvcDo1cHg7IGxpbmUtaGVpZ2h0OjE3cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkMGQwZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDt9IC5Ob3N7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiMwMDAwMDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTVweCAwIDE1cHggMTVweDsgbWFyZ2luOjVweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I0ZGRkZGRjt9IC5idXR0b25fam9ib2ZmZXIgeyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9pY29uX2VtcGxveS5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDBweCAwcHggcmdiKDIzMSwgMjMyLCAyMzIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDo0MHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnV0dG9uXzEsIC5idXR0b25fMiwgLmJ1dHRvbl8zIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IH0gLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhIHsgYmFja2dyb3VuZDojZjdmN2Y3OyBjb2xvcjojMTAyYjRlOyBib3JkZXI6MXB4IHNvbGlkICMxMDJiNGU7IH0gLmJ1dHRvbl8xIGE6aG92ZXIsIC5idXR0b25fMiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiMxMDJiNGU7IGNvbG9yOiNmN2Y3Zjc7IGJvcmRlcjoxcHggc29saWQgI2Y3ZjdmNzsgfSAuYnV0dG9uXzMgYTpub3QoLmRpc2NsYWltZXJzU3VwZXJzY3JpcHRzKXsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IH0gLmJ1dHRvbl8zIGE6bm90KC5kaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyk6aG92ZXJ7IGJhY2tncm91bmQ6I0ZGRjsgY29sb3I6IzAwMDsgfSAuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIxIl0gc3VwLCAuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIzIl0gc3VwIHsgZm9udC1zaXplOjAuNWVtOyB9IGEuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIzIl0gc3VwIHsgY29sb3I6dmFyKC0tZGFyay1ncmF5LCByZ2IoMTAyLCAxMDIsIDEwMikpOyB9IC5mYkNvbm5lY3RCdG4geyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMzA1ODk4OyBjb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjNweDsgbGluZS1oZWlnaHQ6MzhweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5mYkNvbm5lY3RCdG4gLmZhLWZhY2Vib29reyBjb2xvcjojMzA1ODk4OyB9IGEuZmFjZWJvb2tDb25uZWN0QnRuIHsgY29sb3I6I2ZmZjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LWZhbWlseTppbmhlcml0OyB9IC5idXR0b25fdmlkZW9zX2ZyIGEsIC5idXR0b25fdmlkZW9zX2VuIGF7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgZGlzcGxheTpibG9jazsgfSAuYnV0dG9uX3ZpZGVvc19mciBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19mciBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGEsIC5idXR0b25fdmlkZW9fZW4gYXsgd2lkdGg6MTkzcHg7IGhlaWdodDo1MXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5idXR0b25fdmlkZW9fZnIgYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uLWhvdmVyX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZW4gYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3VuZGVye3dpZHRoOjI0OXB4OyBwYWRkaW5nOjBweDsgbWFyZ2luOjEwcHggMHB4O30gLmJ1dHRvbl91bmRlciBheyB3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6bm9uZTsgZGlzcGxheTpibG9jayB9IC5idXR0b25fdW5kZXIgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgfSAuYnV0dG9uX3VuZGVyLnByb21vIGF7YmFja2dyb3VuZC1jb2xvcjojZTgwZDBkOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiNGRkY7IHdpZHRoOjIzN3B4OyBtYXJnaW4tbGVmdDo1cHg7fSAuYnV0dG9uX3VuZGVyLnByb21vMyBhe2JhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojRkZGOyB3aWR0aDoyMzdweDsgbWFyZ2luLWxlZnQ6NXB4O30gLmJ1dHRvbl91bmRlci5wcm9tbyBhOmhvdmVyLC5idXR0b25fdW5kZXIucHJvbW8yIGE6aG92ZXIsLmJ1dHRvbl91bmRlci5wcm9tbzMgYTpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2J1dHRvbl8xaG92ZXIucG5nKX0gLmJ1dHRvbl80e3dpZHRoOjI0OXB4OyBoZWlnaHQ6NTdweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5idXR0b25fNCBheyB3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IHBhZGRpbmctdG9wOjdweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fNC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IGRpc3BsYXk6YmxvY2sgfSAuYnV0dG9uXzQgYTpob3Zlcnt3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzRob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyB9IC5jaGVja2JveDE1Mnt3aWR0aDphdXRvOyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgfSAuQmFzZTIye3dpZHRoOmF1dG87IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NnB4OyBwYWRkaW5nOjZweCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94OTQwX2xpbmV7d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUyNS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgYm90dG9tOjA7fSAud2hpdGVfYm94e3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojRkZGRkZGOyBvdmVyZmxvdzpoaWRkZW47IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLmJveDEwMHt3aWR0aDoyMjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MTNweCAwIDE1cHggMTBweDt9IC5ib3gxMDF7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuYm94MTAye3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O30gLmJveDEwM3t3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5ib3gxMDR7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7fSAuYm94RXZlbnt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O30gLmJveE9kZHt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmZpbGVpbnB1dC1idXR0b24sIC5maWxlaW5wdXQtYnV0dG9uOmhvdmVyIHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjMxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5maWxlaW5wdXQtYnV0dG9uIGlucHV0IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBtYXJnaW46MDsgb3BhY2l0eTowOyAtbXMtZmlsdGVyOidhbHBoYShvcGFjaXR5PTApJzsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9IC5ib3g5NDBfbWFpbnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDAgMTVweCAwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94MjAwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NnB4O30gLndoaXRlX2JveF90ZXh0Mnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDN7YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NXtiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLndoaXRlX2JveF90ZXh0NntwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF9ibGFua3t3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dE9kZHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0RXZlbntiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYm94X3RpdGxle3dpZHRoOjkzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzozMHB4IDBweCA1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9IC5jdXN0b21fMjIge3dpZHRoOjI0MXB4OyBoZWlnaHQ6MTIxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MCA4cHggOHB4IDA7IGJhY2tncm91bmQ6I2ViZWJlYjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO30gLmN1c3RvbV8yMjIge3dpZHRoOjI0MXB4OyBoZWlnaHQ6MTIxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MCA4cHggOHB4IDA7IGJhY2tncm91bmQ6I2ZmZmZmZjstbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4O2N1cnNvcjpwb2ludGVyO30gLnRveW90YV9jYW1yeXt3aWR0aDo0MzBweDsgaGVpZ2h0OjIyMnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjIwcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDt9IC50b3lvdGFfY2FtcnkgaDF7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo1cHg7fSAudG95b3RhX2NhbXJ5IHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo4cHg7fSAuYm94Ml9kZXRhaWxzX3RleHQyNXt3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjE1cHggYXV0bzsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtc2hhZG93OjFweCAxcHggNHB4ICM4MjgyODI7fSAuYm94Ml9kZXRhaWxzX3RleHQyNSBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gxNXtjdXJzb3I6cG9pbnRlcjt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggMnB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTUgaDJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNSBoMiBhe2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjQwcHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE1IGgyIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNnt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNiBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE2IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjMucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjBweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTYgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjpyZ2IoMTYsNDMsNzgpOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE3e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE3IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTcgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNyBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb240LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTh7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTggaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxOCBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb241LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IHBhZGRpbmctcmlnaHQ6NXB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE4IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjUucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOXt3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHg7IHBhZGRpbmctcmlnaHQ6M3B4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTkgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxOSBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb242LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjI1cHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTkgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDExMTR7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzEucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxMTE0IGgye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTExNCBoMiBhe2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjQwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxMTE0IGgyIGE6aG92ZXJ7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5TcGVjaWZpY2F0aW9uc3t3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MTBweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI1MjUyNTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC13ZWlnaHQ6bm9ybWFsO21hcmdpbi10b3A6NXB4O30gLk1vcmJpMnt3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDojRUZFRkVGOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4O2ZvbnQtd2VpZ2h0Om5vcm1hbDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuTW9yYmkyIHB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTo4cHg7fSAuYm94Mjg4OV9taWR7d2lkdGg6Mjc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCA1cHggMjBweCA1cHg7fSAuTW9yYmkyMnt3aWR0aDo2NTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5ib3gyODg5X21pZCBoMXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDIwcHggMTBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyNHB4fSAuX2JveDI4ODlfbWlkIGgxeyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMjBweCAxMHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjgyODI4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjI0cHh9IC5ib3gyODg5X21pZCBoMnsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NHB4IDEwcHggMjBweCAxNXB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyM3B4fSAjc2ltaWxhclRpdGxleyBwYWRkaW5nOjRweCAxMHB4IDlweCAxNXB4OyBmb250LXNpemU6MS40MzhyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IH0gLnRhYmU1e3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAudGFiZTUgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC50YWJlNSB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLnRhYmU1IHVsIGxpIHNwYW57Y3Vyc29yOnBvaW50ZXI7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvdGFiX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLnRhYmU1IHVsIGxpIHNwYW46aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzo3cHggMTVweCA3cHggMTVweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDogI2ViZWJlYjsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDowOyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IH0gLnRhYmU1IHVsIGxpIHNwYW4uYWN0aXZle2N1cnNvcjpkZWZhdWx0OyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6ICNlYmViZWI7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyB9IC50YWJfZGV0YWlsczJ7d2lkdGg6NjMxcHg7IHBhZGRpbmc6MTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzLXRvcGxlZnQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4OyAtbW96LWJvcmRlci1yYWRpdXMtYm90dG9tbGVmdDo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5ib3gyNXt3aWR0aDo0ODdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luOjAgMTNweCAwIDA7IHBhZGRpbmc6MjBweCAwIDIwcHggMjBweDt9IC5ib3gyNnt3aWR0aDoyNDNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94MjYgdWx7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNiB1bCBsaXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrO30gLmJveDI2IHVsIGxpIHNwYW57IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7fSAuYm94MjYgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmJveDI2IHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI2IHVsIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94Mjd7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjhweDsgfSAuYm94MzN7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDMzIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MzMgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC5ib3gzMyB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gzMyB1bCBsaSBzcGFueyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gzMyBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDBweCA3cHggMHB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmJveDMzIHVsIGxpIGE6aG92ZXJ7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9hcnJvdzgucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IH0gLk1vdGV1cnt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206NXB4O30gLk1vdGV1ciBoMnt3aGl0ZS1zcGFjZTpub3JtYWw7IHdpZHRoOjEzNXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiMyMDIwMjA7fSAuTW90ZXVyIGgze3doaXRlLXNwYWNlOm5vcm1hbDsgd2lkdGg6MTQwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzVhNWE1YTt9IC5ib3gyNiB1bCBsaSBzcGFuOmJlZm9yZSwuYm94MzMgdWwgbGkgc3BhbjpiZWZvcmUsLk1vdGV1ciBoMjpiZWZvcmUgeyBjb250ZW50OiJcZjEzOCI7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IG1hcmdpbi1yaWdodDo1cHg7IH0gLmJveDI3IGF7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXggOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjI4cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lO30gLmJveDI3IGE6aG92ZXJ7d2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCAtMzJweCByZXBlYXQteCA7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyOHB4OyB9IC5ib3gyOHt3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6IzZmNmY2ZiB1cmwoL2ltYWdlcy9saXRlcl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjEwcHggMnB4IDEwcHggMnB4OyBtYXJnaW46MCAwcHggMCAwO30gLnRleHQ0NHt3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGl0ZXJfbGluZS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MHt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgfSAudGV4dF9ib3g2MCBoMnt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI2MjYyNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjAgaDN7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4fSAudGV4dF9ib3g2MCBwe3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI2MjYyNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnZpb3J7d2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvdmlvci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBsaW5lLWhlaWdodDoyMnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IH0gLmJveDEzM3t3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MDsgbWFyZ2luOjA7fSAuYm94MjU4e3dpZHRoOjI1OHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjliOWI5OyBwYWRkaW5nOjAgMTBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZsb2F0OmxlZnQ7fSAuYm94MTE2e3dpZHRoOjExNnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYm9yZGVyOjJweCBzb2xpZCAjRkZGRkZGOyBwYWRkaW5nOjA7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94MTE2IGltZ3t3aWR0aDoxMjBweDsgfSAuYm94Mnt3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo0N3B4OyBtYXJnaW4tbGVmdDoyMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7fSAuYm94MiBzcGFue2ZvbnQ6Ym9sZCAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDB9IC5ib3gze3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7IHBhZGRpbmc6MCAwIDEwcHggNXB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDt9IC5ib3gzIHNwYW57Zm9udDpib2xkIDEycHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMH0gLmJveDR7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDQ1cHggMTBweCAyMHB4OyB9IC5ib3g0NHt3aWR0aDoyNjVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggNDdweCAxMHB4IDIwcHg7IHBvc2l0aW9uOnJlbGF0aXZlO30gLmJveDV7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDIwcHggMTBweCAwO30gLmJveDZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MTBweCAwcHggMHB4IDA7fSAuYm94NTV7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDIwcHggMTBweCAwO3Bvc2l0aW9uOnJlbGF0aXZlO30gLmxpbjJ7d2lkdGg6NjE3cHg7IGhlaWdodDoycHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHggMCAxMHB4IDA7IHBhZGRpbmc6MDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMi5wbmcpIGxlZnQgdG9wIHJlcGVhdC14O30gLmJveDE0e3BhZGRpbmc6MHB4IDA7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0fSAuYm94MjB7cGFkZGluZzowIDEwcHg7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjI3cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBmb250LXdlaWdodDpib2xkO30gLnRleHQzMHt3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTdweCAwOyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojMjQyNDI0fSAudGV4dDMwIHNwYW57cGFkZGluZy1yaWdodDoxMHB4OyBmbG9hdDpyaWdodDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojMjQyNDI0O30gLnRleHQzMCBzcGFuIHN0cm9uZ3tmb250OmJvbGQgMjBweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwIH0gLnRleHQzMC5mb3JtSGVhZGluZywgLnRleHQzMC5mb3JtSGVhZGluZyBzcGFue2NvbG9yOnZhcigtLWZvcm0tdGl0bGUtY29sb3IsICMyNDI0MjQpO30gLmJveDYxN3t3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IHBhZGRpbmctYm90dG9tOjIwcHg7IG1hcmdpbi1yaWdodDowcHg7fSAubWFpbjYxN3t3aWR0aDo2MTdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbi10b3A6MTVweDt9IC5ib3gyMEF7cGFkZGluZzowIDVweDsgZmxvYXQ6bGVmdDsgbGluZS1oZWlnaHQ6MjVweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAub25TaXRlICsgLnByZWZlcnJlZCwgLnByZWZlcnJlZDpoYXMoKy5vblNpdGUpIHsgYWxpZ24tc2VsZjplbmQ7IH0gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDozMHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZTo5MCU7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRib2R5IHRyOm50aC1jaGlsZChvZGQpIHtiYWNrZ3JvdW5kOiNmM2YzZjM7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRke3BhZGRpbmctdG9wOjAuNXJlbTsgdmVydGljYWwtYWxpZ246dG9wOyBsaW5lLWhlaWdodDoxLjU7fSAjc2VydmljZVBhY2thZ2VzIHRhYmxlIHRkOm50aC1jaGlsZCgyKSB7cGFkZGluZzowLjVyZW07fSAuZGV0YWlsQ2FyVGl0bGUsIC5kZXRhaWxDYXJUaXRsZVdpZGUsIC5kZXRhaWxDYXJUaXRsZUZ1bGwge3dvcmQtd3JhcDpicmVhay13b3JkO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDE0MTQxO2ZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5kZXRhaWxDYXJUaXRsZSB7d2lkdGg6NDkwcHg7fSAuZGV0YWlsQ2FyVGl0bGVXaWRlIHt3aWR0aDo3NzVweDt9IC5kZXRhaWxDYXJUaXRsZUZ1bGwge3dpZHRoOjEwMCU7fSAubWFpbmJveF90ZXh0YXJlNjE3e2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MjBweCAwOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIDAlKTsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6NTAlO30gLnRleHRib3gyMnt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDAgMDt9IC5idXR0b241MXsgd2lkdGg6YXV0bzsgaGVpZ2h0OjM2cHg7IGZsb2F0OmxlZnQ7IH0gLmJ1dHRvbjUxIGF7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjUucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRiA7IHBhZGRpbmc6MCAxMHB4OyBsaW5lLWhlaWdodDozNnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5idXR0b241MSBhOmhvdmVyeyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b241LnBuZykgbGVmdCAtNDRweCByZXBlYXQteDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRiA7IHBhZGRpbmc6MCAxMHB4OyBsaW5lLWhlaWdodDozNnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO30gLnRleHQ1NXt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDIwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjaykgOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDU1IHB7IHBhZGRpbmctbGVmdDowcHggNXB4IDAgMDsgbWFyZ2luOjBweCAwcHggMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAucGljYm94XzIyMXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjBweCAxNXB4IDAgMDt9IC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjMzMnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAuaXNGdWxsV2lkdGhQYWdlIC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjQ0MnB4OyB9IC5waWNib3g2NTF7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46NXB4IDEwcHggMHB4O30gLnBpY2JveDkzMHt3aWR0aDo5MzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjo1cHggNXB4IDBweDt9IC5waWNib3g2NTEgaW1nIHsgd2lkdGg6NjUxcHg7IH0gLnBpY2JveDkzMCBpbWcgeyB3aWR0aDo5MzBweDsgfSAucGljYm94NjUxIGltZywgLnBpY2JveDkzMCBpbWcgeyBmbG9hdDpsZWZ0OyBjdXJzb3I6cG9pbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudG9wUHJvbW9JbWFnZSBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tdG9wOjVweDsgd2lkdGg6OTMwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC50b3BQcm9tb0ltYWdlVXNlZCBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB3aWR0aDo2NTBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnRlYW1fdGl0bGVfZGVhbGVye21hcmdpbi1ib3R0b206MTVweDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuZm9ybXNfYm94NjYxe3dpZHRoOjk2MHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjEwcHggYXV0bzsgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudGV4dGJveDE5MXt3aWR0aDo1MiU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxLjI7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRib3gxOTEgaDR7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMyNDI0MjQ7IHBhZGRpbmctYm90dG9tOjVweDsgfSAubWFpbmJveDI5MXt3aWR0aDoyOTFweDsgbWluLWhlaWdodDoxMjNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5lbWFpbF9saW5re3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojODg4O30gLmVtYWlsX2xpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMzMzM7fSAucGFnZV9uYW1lNTU1IHsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MDsgfSAucGFnZV9uYW1lNTU1IGF7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZTU1NSBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wYWdlX25hbWU1NTUgYTp2aXNpdGVkeyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWVORVc1NTUgeyBjb2xvcjojMjQyNDI0OyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5wYWdlX25hbWVORVc1NTUgYXsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lTkVXNTU1IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnBhZ2VfbmFtZU5FVzU1NSBhOnZpc2l0ZWR7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDQ0IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjFyZW07IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDoxOHB4OyBwYWRkaW5nOjEwcHggMCAwIDA7IHdpZHRoOmF1dG87IH0gLnRleHRfYm94MTEgeyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MCAyMHB4IDEwcHggMDsgd2lkdGg6YXV0bzsgbGluZS1oZWlnaHQ6MjFweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IH0gLnRleHRfYm94MTEgaDQgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MTBweCAwOyB9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MC43NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjEwcHggMDsgZmxvYXQ6bGVmdDsgfSAudGV4dF9ib3gxMSBhOmhvdmVyIHsgY29sb3I6IzI0MjQyNDsgfSAudGV4dF9ib3gxMSBhOnZpc2l0ZWQgeyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0X2JveDExIHVsLCAudGV4dF9ib3gxMSBwIHsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowIDAgNXB4OyB9IC50ZXh0X2JveDExIHVsIHsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7IH0gLnRleHRfYm94MTEgcCBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZmxvYXQ6bm9uZTsgfSAucGljYm94MzM2IHsgYm9yZGVyOjFweCBzb2xpZCAjN0Q3RDdEOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjY4cHg7IH0gLmZvbnRfc2l6ZTIxIHsgZm9udC1zaXplOjEuMzEzcmVtICFpbXBvcnRhbnQ7IH0gLnBhZ2VfbmFtZTE4IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZTE4IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnZpZGVvNSB7IGZsb2F0OmxlZnQ7IGhlaWdodDo0MXB4OyBtYXJnaW4tdG9wOjcwcHg7IG1hcmdpbi1sZWZ0OjcwcHg7IH0gLmZsb2F0TG9nb3sgd2lkdGg6NjIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjI1cHggMTVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9MT0dPX0dBX1RSQU5TUEFSRU5ULnBuZykgcmlnaHQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBib3R0b207IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo2cHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYm9yZGVyOm1lZGl1bSBub25lOyBjb2xvcjojRkZGRkZGOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luOjA7IG92ZXJmbG93OnZpc2libGU7IHBhZGRpbmc6MDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2J0bl9yaWdodDIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCB0b3AgdHJhbnNwYXJlbnQ7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDozNXB4OyBtYXJnaW46MDsgcGFkZGluZzowIDZweCAwIDA7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYnRuX2xlZnQyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiNGRkZGRkY7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjEzcHg7IHBhZGRpbmc6MTJweCAxM3B4IDAgMTVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9ob3ZlciBzcGFuIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM4cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25faG92ZXIgc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgLTM4cHg7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25fY2xpY2sgc3BhbiBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2NsaWNrIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC02NnB4OyB9IC52ZWhpY2xlTGlzdFRhYmxlIHsgbWFyZ2luOjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzQxNDE0MTsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCB7IGJvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjNjY2NjY2OyBoZWlnaHQ6MzBweDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBheyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MC43NXJlbSA7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYTpob3ZlcnsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGE6dmlzaXRlZHsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5leHBhbmRSb3d7IGJhY2tncm91bmQtY29sb3I6IzFmMWYxZjsgdGV4dC1hbGlnbjpyaWdodDsgY29sb3I6IzQxNDE0MTsgbWFyZ2luLWxlZnQ6NHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyB9IGRpdi5lcnJvck1zZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZGRkZDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZXJyb3IucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZDsgY29sb3I6I2QxMDAwYzsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyB6LWluZGV4Ojk5OTk7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZWZmZmVmOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwOTc3MDA7IGNvbG9yOiMwOTc3MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9IGRpdi50b3lvdEltYWdlIHsgY29sb3I6IzY2NjY2NjsgZm9udC1zaXplOjMuNDM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjI1MHB4OyBsZWZ0OjA7IG9wYWNpdHk6MC44OyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmc6NXB4IDEwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzgwcHg7IHotaW5kZXg6ODsgfSBkaXYudG95b3RJbWFnZSBwIHsgcGFkZGluZzo1cHg7IG1hcmdpbjowOyBmb250LXNpemU6MC45MzhyZW0gOyBjb2xvcjojQTZBNkE2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBkaXYubmV3Q2FyTWFpbkJveCB7IHdpZHRoOjk2MHB4OyBtYXJnaW46MCBhdXRvOyB9IGRpdi5uZXdDYXJNYWluQm94MiB7IG1hcmdpbi10b3A6NXB4OyB9IGRpdi5uZXdDYXJNYWluQm94MyB7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MTJweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3g5NzBfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5zdG9ja0ltZ1N0eWxleyB3aWR0aDoxMDAlOyBoZWlnaHQ6NTAlOyBmb250LXNpemU6Mi4yNXJlbSA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLXRvcDozMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgbWFyZ2luOjBweDsgY29sb3I6IzMwMzAzMDsgfSAjZmlyc3RTbGlkZXJJbWcgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE1OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgb3BhY2l0eToxOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9ICNmaXJzdFNsaWRlckltZyAucGxhY2Vob2xkZXJ7IGJvcmRlcjoxcHggc29saWQgI0ZGRjsgd2lkdGg6NjQwcHg7IGhlaWdodDo0ODBweDsgfSAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyIC5pbm5lci1wbGFjZWhvbGRlcnsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6ZmxleDsgdG9wOjA7IGJvdHRvbTowOyBsZWZ0OjA7IHJpZ2h0OjA7IH0gI2ZpcnN0U2xpZGVySW1nIElNR3sgaGVpZ2h0OmF1dG87IG1heC13aWR0aDo2NDBweDsgbWF4LWhlaWdodDo0ODBweDsgd2lkdGg6YXV0bzsgbWFyZ2luOmF1dG87IH0gI2ZpcnN0U2xpZGVySW1nLmZhZGUtb3V0eyB2aXNpYmlsaXR5OmhpZGRlbjsgb3BhY2l0eTowOyAtd2Via2l0LXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyAtbW96LXRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyAtby10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IH0gI3NvY2lhbFRpbWVsaW5leyB3aWR0aDo5NjBweDsgaGVpZ2h0OmF1dG87IH0gZGl2Lm5ld0Nhck1haW5Cb3g0IHsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveDk3MF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzoxMHB4IDE1cHg7IH0gZGl2Lm5ld0NhclRpdGxlQm94IGgxeyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMzMDMwMzA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ncmF5Ym94IHsgYmFja2dyb3VuZC1jb2xvcjojRUZFRkVGOyBib3JkZXI6MXB4IHNvbGlkICNGRkZGRkY7IGJvcmRlci1yYWRpdXM6M3B4OyBjb2xvcjojMDAwOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDpub3JtYWw7IHBhZGRpbmc6MTBweCAwIDEwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgMXB4IDAgI0ZGRkZGRjsgfSAuZ3JheWJveCA+IHNwYW4geyBjb2xvcjojMDAwOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuZ3JheWJveCAuc21hbGx0ZXh0IHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0NDQ0NDQzsgYm9yZGVyLXRvcDoxcHggc29saWQgI0NDQ0NDQzsgY29sb3I6IzMzMzMzMzsgZm9udC1zaXplOjAuNjg4cmVtIDsgbWFyZ2luLXRvcDoxMHB4OyBwYWRkaW5nOjEwcHg7IH0gLmdyYXlib3ggaDIgeyBjb2xvcjojMDAwOyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgbWFyZ2luOjVweCBhdXRvOyB9IC5leHRlbmRlZFBob25leyBwb3NpdGlvbjpmaXhlZDsgYmFja2dyb3VuZC1jb2xvcjojNjc2NzY3OyBjb2xvcjojZGRkOyBwYWRkaW5nOjAuNmVtOyBib3JkZXItcmFkaXVzOjVweDsgei1pbmRleDo5OTk5OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmV4dGVuZGVkUGhvbmUgbGFiZWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5leHRlbmRlZFBob25lIHNwYW57IGNvbG9yOiNmZmY7IH0gLnBob25lTm90ZXsgZm9udC1zaXplOjAuNjg4cmVtIDsgcGFkZGluZy10b3A6N3B4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2RXggeyBjb2xvcjojNDE0MTQxOyBmb250LXNpemU6MXJlbSA7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZy1sZWZ0OjIwcHg7IHBhZGRpbmctdG9wOjMwcHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgZGl2eyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy10b3A6MTBweDsgd2lkdGg6MjAwcHg7IGZsb2F0OmxlZnQ7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWx7IG1hcmdpbi1ib3R0b206MjBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luLXRvcDo1cHg7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGl7IGxpc3Qtc3R5bGU6bm9uZSBvdXRzaWRlIG5vbmU7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1sZWZ0OjQwcHg7IHRleHQtaW5kZW50Oi0xMHB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGF7IGNvbG9yOiMzMzM7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjdXJzb3I6cG9pbnRlcjsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBheyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9hcnJvd19yZWQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCAwIDEwcHggdHJhbnNwYXJlbnQ7IGNvbG9yOiMzMzMzMzM7IG1hcmdpbi1yaWdodDoycHg7IHBhZGRpbmc6NnB4IDEwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpIGE6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5jb21wYXJlTGlua3MgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmNvbXBhcmVMaW5rcyBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5lbWFpbEJvZHksIC5lbWFpbFN1YmplY3R7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHVzIGRpdi5lcnJvck1zZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZGRkZDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvZXJyb3IucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZDsgY29sb3I6I2QxMDAwYzsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gI2NvbnRhY3R1cyBkaXYuZW1haWxTZW50TXNnIHsgYmFja2dyb3VuZC1jb2xvcjojZWZmZmVmOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiL2ltYWdlcy9hY2NlcHRlZC5wbmciKTsgYmFja2dyb3VuZC1wb3NpdGlvbjoxMHB4IGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBib3JkZXI6MXB4IHNvbGlkICMwOTc3MDA7IGNvbG9yOiMwOTc3MDA7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9ICNQYWdlRmluYW5jZSAuc3RlcEFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzLzFfaG92ZXIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6IzAwMDAwMDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDo0NnB4OyBtYXJnaW4tbGVmdDoxMHB4OyB9ICNQYWdlRmluYW5jZSAuc3RlcFVuYWN0aXZlIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvMV9yb3VuZC5wbmciKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgdG9wIHRyYW5zcGFyZW50OyBjb2xvcjojRkZGRkZGOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6Mi4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjQ2cHg7IG1hcmdpbi1sZWZ0OjEwcHg7IH0gI1BhZ2VGaW5hbmNlIC50ZXh0MSBzcGFuIHsgY29sb3I6IzQzNDM0MzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI0YzRjNGMzsgd2lkdGg6YXV0bzsgfSAjUGFnZUZpbmFuY2UgZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I0I4RkZCODsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMEI5NjAwOyBjb2xvcjojMEI5NjAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAub3RoZXJfbGlua3MgYXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLm90aGVyX2xpbmtzIGE6aG92ZXJ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnByb21vdGlvblNpZGVCdG5BIHsgYmFja2dyb3VuZDojMDI3NmIzOyBjb2xvcjojZmZmZmZmOyBkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxLjI1cmVtIDt3aWR0aDpmaXQtY29udGVudDtoZWlnaHQ6NTNweDtwYWRkaW5nOjJweCAxNXB4IDBweCAxNXB4O2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjUzcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1zaXplOjEwMCU7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjNweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjNweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjBweDsgdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMyB7IGJvcmRlci1yaWdodDoxcHggIzkxOTE5MSBzb2xpZDsgcGFkZGluZy1yaWdodDo3MHB4OyBtYXJnaW4tbGVmdDoxNHB4OyBjb2xvcjojNTc1NzU3OyB9IC5mb290ZXJNdWx0aUFkZHJlc3MyIHsgYm9yZGVyLXJpZ2h0OjFweCAjOTE5MTkxIHNvbGlkOyBwYWRkaW5nLXJpZ2h0OjE1MHB4OyBtYXJnaW4tbGVmdDo5M3B4OyBjb2xvcjojNTc1NzU3OyB9IC5mb290ZXJNdWx0aUFkZHJlc3MxIHsgbWFyZ2luLWxlZnQ6MzQ1cHg7IGNvbG9yOiM1NzU3NTc7IH0gLnNtYWxsQWN0aW9uV2Vic2l0ZUNvbG9yIHsgYmFja2dyb3VuZCA6dXJsKCIvaW1hZ2VzL2JsX2JnMi5wbmciKSBsZWZ0IHRvcCByZXBlYXQteDsgY29sb3I6cmdiKDE2LDQzLDc4KTsgfSAuc21hbGxBY3Rpb25XZWJzaXRlQ29sb3I6aG92ZXJ7IGJhY2tncm91bmQgOnVybCgiL2ltYWdlcy9tZW51MTBfYmcucG5nIikgbGVmdCB0b3AgcmVwZWF0LXg7IGNvbG9yOiNGRkY7IH0gLm5hdiBsaSBhLnRvcF9saW5rLmlzQm9sZCwgLm5hdiBsaSBhLmlzQm9sZHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjbWFpbkhlYWRlciBkaXYuYm94MTVQYWRkaW5neyBwYWRkaW5nLXRvcDoxNXB4OyB9IC5uYXYgLm5vdENsaWNrYWJsZXsgY3Vyc29yOmRlZmF1bHQgIWltcG9ydGFudDsgfSAuUzEwMFBlcmNlbnRXaWR0aHsgd2lkdGg6MTAwJTsgfSAjZmlsdGVyTWFpbkJveCB7IGNvbG9yOiMwMDA7IH0gI2ZpbHRlck1haW5Cb3ggLmZpbHRlclNwYW4sICNmaWx0ZXJNYWluQm94IC5maWx0ZXJDaGVjaywgI2ZpbHRlck1haW5Cb3ggLnJhZGlvU29ydCB7IGN1cnNvcjpwb2ludGVyOyB9IC5iQ29kZVN0eWxlIHsgZmxvYXQ6bGVmdDsgd2lkdGg6MjUlOyBmb250LXNpemU6MC44ZW07IHBhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOjE1cHg7IGJhY2tncm91bmQtY29sb3I6OyB9IC5iQ29kZVNvcnQgeyBmbG9hdDpsZWZ0OyB3aWR0aDoxNiU7IGJhY2tncm91bmQtY29sb3I6OyBmb250LXNpemU6MC44ZW07IHBhZGRpbmctdG9wOjE1cHg7IHBhZGRpbmctYm90dG9tOjE1cHg7IH0gLmJDb2RlU29ydCAuYkNvZGVIZWFkaW5nLCAuYkNvZGVTdHlsZSAuYkNvZGVIZWFkaW5nIHsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctbGVmdDoycHg7IH0gLnBhZ2VfbmFtZTQye3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDBweCAxMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMDAwMDAwO30gLnBhZ2VfbmFtZTQyIGgyIHtmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWw7Ym9yZGVyOm5vbmU7fSAucGFnZV9uYW1lNDIgaDIubm90Zmlyc3Qge2ZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMDAwMDAwO2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW4tdG9wOjBweDtwYWRkaW5nLXRvcDo0MHB4O2JvcmRlci10b3A6MXB4ICNjY2NjY2Mgc29saWQ7d2lkdGg6OTIwcHg7fSAjZmlsdGVyTWFpbkJveC5uZXdjYXJzc3R5bGUyeyAtbW96LWJvcmRlci1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JlYmViZTsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2JlYmViZTsgd2lkdGg6OTU1cHg7IGxlZnQ6M3B4OyB9IGRpdi5pbWRldiBsYWJlbHsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy10b3A6MTBweDsgfSBkaXYuaW1kZXYgZGl2eyBiYWNrZ3JvdW5kOm5vbmU7IGJhY2tncm91bmQtY29sb3I6I0Q5RDlEOTsgcGFkZGluZzoxMHB4IDBweCAxMHB4IDBweDsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjAuODEzcmVtIDsgfSBkaXYuaW1kZXZfaW5uZXIgeyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi1sZWZ0OjMwcHg7IHdpZHRoOjkwJSAhaW1wb3J0YW50OyB9IHVsLnF1aXoge3BhZGRpbmc6MTBweCAwIDEwcHggMjBweDsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGhlaWdodDoxNzVweDt9IHVsLnF1aXogbGkge3BhZGRpbmc6MTBweDt9IHVsLnF1aXogbGkgaW5wdXQge21hcmdpbi1yaWdodDoxMHB4O30gLm5ld3MtYm9keSB7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtc2l6ZTowLjgxM3JlbSA7Y29sb3I6IzE5MTkxOTtwYWRkaW5nLXJpZ2h0OjE1cHg7bWFyZ2luLXRvcDotMjBweDtwYWRkaW5nLWJvdHRvbToxMHB4O30gLm5ld3MtYWxsLXRleHQge2NvbG9yOiMxOTE5MTk7fSAjbmV3c0NvbnRhaW5lciAudGV4dF9ib3gxMSBpbWcgeyBtYXgtd2lkdGg6NjQwcHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjo1cHggYXV0bzsgfSAjbmV3c0NvbnRhaW5lciAudXNlZHsgY2xlYXI6Ym90aDsgfSAuaG9tZV9hY3Rpb25fYWRqIHsgd2lkdGg6OTYxcHg7IH0gLmhvbWVfYWN0aW9uX2FkajIgeyB3aWR0aDo3MzBweCFpbXBvcnRhbnQ7IGhlaWdodDo2MDBweCFpbXBvcnRhbnQ7IH0gLmhvbWVfZW1haWx7IHdpZHRoOjIzMnB4OyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC53aWRnZXRfbWVudV9hZGoxeyBmb250LXNpemU6MC44ZW07IH0gLndpZGdldF9tZW51X2FkajJ7IGZsb2F0OnJpZ2h0O3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMnB4OyB9IC53aWRnZXRfbWVudV9leHRlbmRlZFBob25leyBmb250LXNpemU6MC44ZW07IG1hcmdpbi1sZWZ0OjEwNHB4OyB0b3A6MTMycHg7IH0gLndpZGdldF9tZW51X2FkajN7IGZvbnQtc2l6ZTowLjhlbTtjb2xvcjojNTc1NzU3O3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6LThweDsgfSAud2lkZ2V0X21lbnVfYWRqNHsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZTowLjhlbTsgZGlzcGxheTp0YWJsZTsgcGFkZGluZy1ib3R0b206MTBweDsgfSAucGhvbmVfdGV4dC5yaWdodCB7IGZsb2F0Om5vbmU7IGhlaWdodDppbml0aWFsOyBtYXJnaW4tbGVmdDphdXRvOyB3aWR0aDppbmhlcml0OyB9IC5waG9uZV90ZXh0IC50ZWwgeyBtYXJnaW4tbGVmdDoxMHB4OyB9IC5waG9uZV90ZXh0IGxhYmVsIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgbWFyZ2luLWJvdHRvbTo0cHg7IH0gLndpZGdldF9tZW51X2FkajQucmlnaHQgeyBwYWRkaW5nLWxlZnQ6MTBweDsgdGV4dC1hbGlnbjpyaWdodDsgfSAud2lkZ2V0X21lbnVfYWRqNC5sZWZ0IHsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDppbmhlcml0OyB9IC53aWRnZXRfbWVudV9hZGo2eyBmb250LXNpemU6MC44ZW07cG9zaXRpb246cmVsYXRpdmU7bGVmdDotM3B4O2NvbG9yOiM1NzU3NTc7Y3Vyc29yOnBvaW50ZXI7IH0gLndpZGdldF9leHByZXNzX21haWxfcGhvbmVfdGl0bGV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNhYWE7dGV4dC1hbGlnbjogY2VudGVyO2ZvbnQtc2l6ZToxLjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbTo4cHg7IHBhZGRpbmctdG9wOjhweDsgY29sb3I6IzAwMDAwMDsgfSAud2lkZ2V0X2V4cHJlc3NfbWFpbF9hZGoxeyBwYWRkaW5nOjE1cHggMTBweDsgbGluZS1oZWlnaHQ6NjBweDsgZm9udC1zaXplOjJlbTsgcGFkZGluZzoxNXB4IDEwcHg7dGV4dC1hbGlnbjpjZW50ZXI7IH0gLmJhbm5lclBvcHVwQ2xvc2V7IGxlZnQ6NzEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxNXB4OyB0b3A6MjBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnByaWNlTm90ZSB7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc3R5bGU6aXRhbGljOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctcmlnaHQ6MTBweDsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxNHB4OyB9IC5zdGFja2VkRGlzY2xhaW1lcnsgZGlzcGxheTpibG9jazsgbWFyZ2luLXRvcDoxMHB4OyB9IHNwYW4uc3RhY2tlZERpc2NsYWltZXI6YmVmb3JleyBjb250ZW50OiIqKiI7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MXJlbTsgfSAudG9wcmludHsgZGlzcGxheTpub25lOyB9IC5yZWZmZXJlbmNlQ29udGVudERlbW8sIC5yZWZmZXJlbmNlQ29udGVudENsZWFyYW5jZXsgcGFkZGluZzozMHB4IDIwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuYm94Ml9kZXRhaWxzX3RleHQyIC5jb21wYXJlQnV0dG9uLCAuYm94Ml9kZXRhaWxzX3RleHQyMiAuY29tcGFyZUJ1dHRvbnsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi10b3A6LTIwcHg7IHotaW5kZXg6MTsgbGVmdDotMzBweDsgfSAudmRweyBjbGVhcjpib3RoOyB3aWR0aDoxNjBweDsgfSAuY29tcGFyZUJ1dHRvbnsgdHJhbnNpdGlvbjpib3gtc2hhZG93IDAuMjVzIGVhc2Utb3V0IDBzOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCAwczsgZGlzcGxheTpub25lOyB9IGRpdiNzbGlkZXItcHJvLTEyIHsgYm9yZGVyOjFweCBzb2xpZCAjRUJFQkVCOyBib3JkZXItcmFkaXVzOjNweDsgYmFja2dyb3VuZDojZmZmOyB9ICNzbGlkZXJQcm9tb0FsZXJ0eyBib3JkZXItcmFkaXVzOjNweCAzcHggMCAwOyB9IC5zbGlkZS13cmFwcGVyeyBib3JkZXItcmFkaXVzOjNweDsgfSAjc2xpZGVpdCBsYWJlbC5vcGVueyBib3JkZXItcmFkaXVzOjNweCAwIDAgM3B4OyB9IGltZy5pbWFnZSB7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5uZXdWZHBWaWV3ZXIgLmNvbXBhcmVCdXR0b257IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MnB4OyByaWdodDowcHg7IHotaW5kZXg6MTExMTsgfSAubGl2ZUFsZXJ0X2xpbmt7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB9IC5saXZlQWxlcnRfbGluazpob3ZlciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmJ1dHRvbi10b2FzdHJ7IGJhY2tncm91bmQ6I0ZGRjtwYWRkaW5nOjRweCAyMHB4O2JvcmRlci1yYWRpdXM6NXB4OyBjb2xvcjojQkQzNjJGIWltcG9ydGFudDsgfSAuYnV0dG9uLXRvYXN0cjpob3ZlcnsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyB9IC5yZXR1cm5Qb3B1cF9zdWJtaXQgc3BhbiB7IHBvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDsgdG9wOjUwJSFpbXBvcnRhbnQ7IGRpc3BsYXk6YmxvY2shaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7IGxlZnQ6MCFpbXBvcnRhbnQ7IHJpZ2h0OjAhaW1wb3J0YW50OyBwYWRkaW5nOjAgOHB4IDAgOHB4IWltcG9ydGFudDsgY3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50OyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyBjb2xvcjojRkZGIWltcG9ydGFudDsgbWFyZ2luLXRvcDotOXB4IWltcG9ydGFudDsgfSByZXR1cm5Qb3B1cF9zdWJtaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwYmIxZTA7IGNvbG9yOiNmZmY7IH0gLnJldHVyblBvcHVwX3N1Ym1pdCB7IGRpc3BsYXk6YmxvY2s7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXJhZGl1czo1cHg7IGxlZnQ6MjI4cHg7IHotaW5kZXg6NTsgd2lkdGg6MjI1cHg7IGhlaWdodDo0MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgYmFja2dyb3VuZC1jb2xvcjojMDI3NmIzOyB0ZXh0LXNoYWRvdzoxcHggMXB4ICMwMDJiNDY7IGNvbG9yOiNmZmY7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1jb2xvcjojMzMzMzMzOyBmb250LXNpemU6MXJlbSA7IGxpbmUtaGVpZ2h0OjE5cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjcmV0dXJuUG9wdXBGb3JtX3dyYXBwZXIgeyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOnJnYmEoNjYsNjYsNjYsMSk7IGJvcmRlci1zdHlsZTpub25lOyBib3JkZXItcmFkaXVzOjExcHg7IGxlZnQ6MjgwcHg7IHRvcDoxNTVweDsgei1pbmRleDoyOyB3aWR0aDo1MzFweDsgaGVpZ2h0OjM4NHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjcmV0dXJuUG9wdXBUaWx0ZXsgd2lkdGg6MzM1cHg7IGZsb2F0OnJpZ2h0OyBtYXJnaW46MjBweDsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjcmV0dXJuUG9wdXBUaWx0ZSAucnBfbWN7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyB9ICNyZXR1cm5Qb3B1cFRpbHRlMnsgY29sb3I6I0ZGRjsgbWFyZ2luOjIwcHggMTBweCAyMHB4IDIwcHg7IHBhZGRpbmc6MDsgfSAucmV0dXJuUG9wdXBGb3JtX2xhYmVsIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxNHB4OyBjb2xvcjojYmZiZmJmOyBtYXJnaW4tbGVmdDoyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucmV0dXJuUG9wdXBGb3JtX3RhYmxlIHRyIHRkeyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IC5ycF9tYyB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBjb2xvcjojMDI3NmIzIWltcG9ydGFudDsgcGFkZGluZzowIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyB9ICNleGl0UG9wdXBDb250YWluZXJ7IHBhZGRpbmc6MDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV9mb3JteyBoZWlnaHQ6MzRyZW07IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL3RyYWRlaW4tZXhpdHBvcHVwLWZyLnBuZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZXhpdC1wb3B1cC1iZ2NvbCwgI2VlZSk7IH0gYm9keS5FTkdMSVNIICNleGl0X3BvcHVwX2FjY3V0cmFkZV9mb3JteyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy90cmFkZWluLWV4aXRwb3B1cC1lbi5wbmcpOyB9IC5leGl0X3BvcHVwX2J1dHRvbnMgYnV0dG9uIHsgd2lkdGg6MTFyZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzJ7IG1hcmdpbi10b3A6MjdweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzN7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IG1hcmdpbi1ib3R0b206M3B4OyBmb250LXdlaWdodDpib2xkZXI7IH0gLmV4aXRfcG9wdXBfdGV4dF9saW5lXzUgeyBtYXJnaW4tYm90dG9tOjIwcHg7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGRlcjsgbWFyZ2luLXRvcDo2M3B4OyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZXsgaGVpZ2h0Ojk1cHg7IHdpZHRoOjU3MHB4OyBtYXJnaW4tdG9wOjIwcHg7IH0gI2V4aXRfcG9wdXBfYWNjdXRyYWRlX3RpdGxlLl9GUkVOQ0h7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL2FjY3UtdHJhZGUtZXhpdC10aXRsZV9mci5wbmcpOyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZS5fRU5HTElTSHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvYWNjdS10cmFkZS1leGl0LXRpdGxlX2VuLnBuZyk7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyeyB3aWR0aDo0ODBweDsgaGVpZ2h0OjUxMHB4OyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciAucG9wdXBfYmd7IHdpZHRoOjQ4MHB4OyBoZWlnaHQ6NTE1cHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvcG9wdXBzL2ZyL2Jlc3RQcmljZU5ld1ZkcC5wbmcnKTsgfSAucG9wdXBfYmd7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgYmFja2dyb3VuZC1zaXplOjQ4MHB4IDUxNXB4OyB9IC5wb3B1cEZvcm0gLmFzdGVyaXNreyBjb2xvcjojZDAwOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTppbmhlcml0OyBtYXJnaW46MDsgfSAucG9wdXBGb3JteyB6LWluZGV4OjUwOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjI0OHB4OyBoZWlnaHQ6MjQ5cHg7IGxlZnQ6ODBweDsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvY291cG9uLWZvcm0tYmctMi5wbmciKSBuby1yZXBlYXQ7IHdpZHRoOjMzNXB4OyBwYWRkaW5nOjMwcHg7IH0gLnBvcHVwRm9ybVRpdGxleyBoZWlnaHQ6NDBweDsgbWFyZ2luOjhweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucG9wdXBGb3JtSW5wdXRzIHRkIHsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpyaWdodDsgcGFkZGluZy1yaWdodDoxMHB4OyBwYWRkaW5nLWJvdHRvbTozcHg7IH0gLnBvcHVwRm9ybSBpbnB1dHsgd2lkdGg6MjEwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnR7IHdpZHRoOjYwMHB4OyBwYWRkaW5nOjMwcHggMzBweDsgaGVpZ2h0OmF1dG87IGNvbG9yOiMwMDA7IGJhY2tncm91bmQtY29sb3I6I2VlZTsgei1pbmRleDoxMDAwMDIxOyB9ICNwcm9tb0Rpc2NvdmVyQnV0dG9ueyB9IC5uZXdWZHBWaWV3ZXIgeyB3aWR0aDo2NDBweDsgaGVpZ2h0OjQ4MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoyMHB4OyB9IC5sb2NhdGlvbi1uYW1lcyB7IHBvc2l0aW9uOnN0YXRpYzsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgPiB1bC5zdWIgPiBsaSA+IHVsIHsgcG9zaXRpb246c3RhdGljOyB9IC5pbWdfbWVudS51cF9tZW51IHVsLm5hdiB1bC5zdWIgbGkgLmxvY2F0aW9uLW5hbWVzIHsgbWluLXdpZHRoOjIwMHB4OyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyBsaS5sb2NhdGlvbi1uYW1lcyB7IG1pbi13aWR0aDoyMDBweDsgfSAubG9jYXRpb24tbmFtZXMsIC5sb2NhdGlvbi1uYW1lcyBsaSB7IGxpc3Qtc3R5bGU6bm9uZTsgfSAuTDEwMCB7IGxlZnQ6MTAwJTsgfSAuUjEwMCB7IHJpZ2h0OjEwMCU7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBwYWRkaW5nOjE0cHg7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyBkaXNwbGF5Om5vbmU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IG1pbi13aWR0aDoyOTBweDsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgPiAudGl0bGUgeyBtYXJnaW4tYm90dG9tOjFlbTsgZm9udC1zaXplOmluaXRpYWw7IGNvbG9yOiMwMDAwMDA7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzID4gLmxvY2F0aW9uLWRldGFpbHMtbG9nbyA+IGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjhweDsgfSBsaS5sb2NhdGlvbi1uYW1lczpob3ZlciAubG9jYXRpb24tZGV0YWlscyB7IGRpc3BsYXk6YmxvY2s7IH0gbGkubG9jYXRpb24tbmFtZXM6aG92ZXIgLm1haW5tZW51LXN1Ym1lbnUgeyBvcGFjaXR5OjE7IHZpc2liaWxpdHk6dmlzaWJsZTsgfSAubG9jYXRpb24tbmFtZXMgLmxvY2F0aW9uLWRldGFpbHMgLmxvY2F0aW9uLWRldGFpbHMtbG9nbyB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlNWU1ZTU7IG1hcmdpbi1ib3R0b206OHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgLmxvY2F0aW9uLW5hbWVzIC5tYWlubWVudS1zdWJtZW51IC5sb2NhdGlvbi1kZXRhaWxzIHsgbWF4LWhlaWdodDo2MHZoOyBwb3NpdGlvbjpzdGF0aWM7IH0gLnVwX21lbnUgdWwubmF2IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gYSB7IGNvbG9yOiMwMDAwMDA7IHBhZGRpbmc6MDsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvIC5sb2NhdGlvbi1zcGFjaW5nLW1sLTEzIHsgbWFyZ2luLWxlZnQ6MTMuNDlweDsgfSAudXBfbWVudSB1bC5uYXYgbGkuZGV0YWlscy1pbmZvLWxpbmsgYSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC51cF9tZW51IHVsLm5hdiAuZGV0YWlscy1pbmZvLWxpbms6aG92ZXIgYSB7IGNvbG9yOiNmN2Y3Zjc7IH0gI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViID4gbGkgPiB1bCB7IG1heC1oZWlnaHQ6NjB2aDsgb3ZlcmZsb3cteTphdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgfSBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXYgPiBsaTpob3ZlciB1bC5zdWIgbGk6aG92ZXIgLmRldGFpbHMtaW5mby1saW5rIGxpOmhvdmVyIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojZjdmN2Y3OyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDJiNGU7IH0gbGkuZGV0YWlscy1pbmZvLWxpbms6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMxMDJiNGU7IGNvbG9yOiNmN2Y3Zjc7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaSB7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1ib3R0b206NHB4OyBmb250LXdlaWdodDoyMDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gPiB1bCA+IGxpOmJlZm9yZSB7IGNvbnRlbnQ6IiAiOyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgbWFyZ2luLXJpZ2h0OjdweDsgbWFyZ2luLWJvdHRvbToxcHg7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIHVsIHsgcGFkZGluZzowOyB9IEBtZWRpYSBwcmludHsgLnRvcHJpbnR7IGRpc3BsYXk6YmxvY2s7fSB9IC5tci0xNSB7IG1hcmdpbi1yaWdodDoxNXB4OyB9IC5tbC0xNSB7IG1hcmdpbi1sZWZ0OjE1cHg7IH0gLm1sLTcgeyBtYXJnaW4tbGVmdDo3cHg7IH0gc3Bhbi5hcnJvdyB7IGJvcmRlcjpzb2xpZDsgYm9yZGVyLXdpZHRoOjAgMnB4IDJweCAwOyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoycHg7IGJvcmRlci1yYWRpdXM6MXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0ycHg7IH0gc3Bhbi5hcnJvdy5hcnJvdy1sYXJnZSB7IGJvcmRlci13aWR0aDowIDNweCAzcHggMDsgcGFkZGluZzo0cHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IHNwYW4uYXJyb3cuYXJyb3ctcmlnaHQgeyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctbGVmdCB7IHRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy11cCB7IHRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTM1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LWRvd24geyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgfSAudG9wYmFyM2J0bldyYXB7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IGJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6NDJweDsgcGFkZGluZzowIDIwcHg7IGNvbG9yOiNmZmZmZmY7IH0gLnRvcGJhcjNidG57IGZvbnQtd2VpZ2h0OmJvbGQ7IHRyYW5zaXRpb246LjJzOyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyBib3JkZXItY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpibG9jazsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH0gLnRyYWRlSW5CYXJfYnRueyBmb250LXdlaWdodDpib2xkOyBib3JkZXItcmFkaXVzOjVweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgdHJhbnNpdGlvbjouMnM7IGJvcmRlcjoycHggc29saWQgdHJhbnNwYXJlbnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOndoaXRlOyBib3JkZXItY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyBjdXJzb3I6cG9pbnRlcjsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgY29sb3I6ICNmZmZmZmY7IGJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRlSW5CYXJfYnRuOmhvdmVyLC50b3BiYXIzYnRuV3JhcDpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjb2xvcjojMDAwMDAwIWltcG9ydGFudDsgfSAjZ1JhdGluZ0xhcmdleyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzo1cHggMHB4OyBtYXJnaW4tdG9wOjVweDsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTUwcHg7IG1hcmdpbi1sZWZ0OjMwcHg7IH0gI2dSYXRpbmd7IGN1cnNvcjpwb2ludGVyOyB9IC50cmFkZUluVmluSW5wdXR7IGhlaWdodDo1MHB4OyBib3JkZXItcmFkaXVzOjVweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICNmZmZmZmY7IH0gLnRyYWRlSW5WaW5JbnB1dDo6cGxhY2Vob2xkZXJ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzNjMzgzNjsgfSAudHJhZGVJbk9yTGFiZWx7IG1heC13aWR0aDoyNXB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lcnsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMnB4OyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdHsgZGlzcGxheTpub25lOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0TGFiZWx7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW46MCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdDpjaGVja2VkK2xhYmVseyBib3JkZXItYm90dG9tOjJweCBzb2xpZCBibGFjazsgfSAudHJhZGluU2VsZWN0V3sgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRpblNlbGVjdFcud2l0aFZJTk1ha2V7IG1pbi13aWR0aDoxNDBweDsgbWF4LXdpZHRoOjE0MHB4OyB9IC50cmFkaW5TZWxlY3RXLndpdGhWSU5ZZWFyeyBtaW4td2lkdGg6ODBweDsgbWF4LXdpZHRoOjgwcHg7IH0gLnRyYWRpbklucHV0V3sgbWluLXdpZHRoOjIwMHB4OyBtYXgtd2lkdGg6MjAwcHg7IH0gLnRyYWRpblNlbGVjdEF7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC50cmFkaW5TZWxlY3RBOmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gLnRyYWRpblNlbGVjdHsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjZmZmZmZmOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IHdpZHRoOjEwMCU7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBoZWlnaHQ6NTBweDsgfSAudHJhZGluU2VsZWN0OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnMgc3BhbnsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46MCAhaW1wb3J0YW50OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgd2lkdGg6NTY4cHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojYTlhOWE5IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtbWVudS50cmFkZUluQmFyTXVsdGlzZWxlY3R7IG1pbi13aWR0aDoyNzJweDsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjEyMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVweyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckRlYWxlclN0ZXBNYWtlTW9kZWxZZWFyeyBmb250LXdlaWdodDo3MDA7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIHNwYW57IG1hcmdpbjowIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEwMjRweCkgeyAudHJhZGluU2VsZWN0VyB7IG1pbi13aWR0aDpjYWxjKCgyMDBweCAtIHZhcigtLXMpKSAtIHZhcigtLXMsIDAuNXJlbSkpOyBtYXgtd2lkdGg6Y2FsYygoMjAwcHggLSB2YXIoLS1zKSkgLSB2YXIoLS1zLCAwLjVyZW0pKTsgfSB9ICNnb29nbGVSZXZpZXdzRm9vdGVyeyBtYXJnaW46MCBhdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXgtd2lkdGg6OTQwcHg7IGhlaWdodDoyNzVweDsgfSAucmV2aWV3LWl0ZW0geyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MTg1cHg7IHdpZHRoOjEwMCU7IG1heC13aWR0aDo0NjBweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlci10b3A6NHB4IHNvbGlkICNFQkVCRUI7IHBhZGRpbmctdG9wOjEwcHg7IH0gLmZpcnN0Y2hhcnVwOjpmaXJzdC1sZXR0ZXJ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgfSBJLmljb24tY29tcGFyZS0xLCBzcGFuLmljb24tY29tcGFyZS0xeyBjb2xvcjojMDI3NmIzOyB9IEkuaWNvbi1jb21wYXJlLTE6aG92ZXIsIHNwYW4uaWNvbi1jb21wYXJlLTE6aG92ZXJ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6IzAyNzZiMyAxcHggMXB4LCAjMDI3NmIzIC0xcHggMXB4LCAjMDI3NmIzIC0xcHggLTFweCwgIzAyNzZiMyAxcHggLTFweDsgYm9yZGVyLXJhZGl1czoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjM7IH0gLmdSYXRpbmctaWNvbiBpIHsgZm9udC1zaXplOjEuMDYzcmVtIDsgfSAuZ1JhdGluZy1pY29uI2dSYXRpbmcgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgd2lkdGg6OTBweDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgY29sb3I6d2hpdGU7IGNvbG9yOiNmZmZmZmY7IGNvbG9yOiNmN2Y3Zjc7IGdhcDo3cHg7IH0gLmdSYXRpbmctaW1nI2dSYXRpbmcgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2dyYXRpbmcucG5nKTsgY29sb3I6IzM1NkNGMjsgd2lkdGg6OTVweDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6NHB4IDMxcHggMTBweCAxMHB4OyBtYXJnaW4tdG9wOjFweDsgfSAjZ1JhdGluZ3sgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LXNpemU6MS4wNjNyZW0gOyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyB9IElOUFVUW3R5cGU9InRleHQiXS52YWxpZGl0eS1lcnJvbmVvdXN7IGJvcmRlcjoxcHggc29saWQgI2RjMzU0NTsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gSU5QVVRbdHlwZT0idGVsIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9ImVtYWlsIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9InBhc3N3b3JkIl0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IEgxLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMjVweCAwOyB9IEgxLmRlZmF1bHQgQXsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gSDEuZGVmYXVsdCBJLmljb24sIEgxLmRlZmF1bHQgc3Bhbi5pY29uIHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyM3B4OyBoZWlnaHQ6MjlweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNTYzcmVtIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxLCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMXsgbWFyZ2luLXRvcDoxMHB4OyB9IEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMSwgSDEuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgxeyBtYXJnaW4tdG9wOjJweDsgfSBIMS5kZWZhdWx0ID4gRElWeyBkaXNwbGF5OnRhYmxlLXJvdzsgfSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMSl7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDMpeyBmb250LXNpemU6MC44cmVtOyBmb250LXNpemU6MC44cmVtOyBjb2xvcjojYmJiOyBwYWRkaW5nLXRvcDo1cHg7IH0gaDEuY2tlZGl0b3ItZGVmYXVsdCB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToyLjEyNXJlbSA7IHBhZGRpbmc6MCAwIDE1cHggMDsgY29sb3I6IzAwMDAwMDsgfSBoMS5ja2VkaXRvci1kZWZhdWx0OjpiZWZvcmUgeyBjb250ZW50OiJcZjA1NCI7IGZvbnQtZmFtaWx5OkZvbnRBd2Vzb21lOyB3aWR0aDoyOHB4OyBoZWlnaHQ6MzVweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IHBhZGRpbmc6NHB4IDAgMCAxMXB4OyBib3JkZXItcmFkaXVzOjQxcHg7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IGZsb2F0OmxlZnQ7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyB9IEgyLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojMDAwMDAwOyBmb250LXdlaWdodDpub3JtYWw7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MTBweCAwOyBtYXJnaW4tdG9wOjEwcHg7IH0gSDIuZGVmYXVsdCBJLmljb24sIEgyLmRlZmF1bHQgc3Bhbi5pY29ueyBib3JkZXItcmFkaXVzOjMwcHg7IHdpZHRoOjIwcHg7IGhlaWdodDoyNXB4OyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctbGVmdDo5cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXI6MXB4IHNvbGlkICMxMDJiNGU7IGNvbG9yOiMxMDJiNGU7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgfSBIMi5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMiwgSDIuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6N3B4OyB9IEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMiwgSDIuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgyeyBtYXJnaW4tdG9wOjBweDsgfSBIMi5kZWZhdWx0ID4gRElWeyBkaXNwbGF5OnRhYmxlLXJvdzsgfSBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMSl7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gSDIuZGVmYXVsdC5jcmVkc2lpVXNlZE1pbkhlaWdodCAuVGl0bGVUZXh0IHsgd2lkdGg6ODAlOyB9IEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MC45MzhyZW0gOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyeyB3aWR0aDo4MDBweDsgaGVpZ2h0OjYwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgI2ZpcnN0U2xpZGVySW1nIElNR3sgbWF4LXdpZHRoOjgwMHB4OyBtYXgtaGVpZ2h0OjYwMHB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCB7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbiB7IHdpZHRoOjI4cHg7IGhlaWdodDozNXB4OyBmb250LXNpemU6MS45MzhyZW0gOyBwYWRkaW5nLWxlZnQ6MTFweDsgYm9yZGVyLXJhZGl1czo0MXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MTFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMSwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0LmNyZWRzaWlVc2VkTWluSGVpZ2h0IC5UaXRsZVRleHQgeyB3aWR0aDo5MCU7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5tdWx0aUxpbmVIMnsgbWFyZ2luLXRvcDoxMXB4OyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgyLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDo0cHg7IH0gfSAjY2l0eVRpdGxlIHtjb2xvcjojMDAwMDAwO30gLm1haW5fbGVmdF9ib3ggeyBjb2xvcjojMDAwMDAwOyB9IC5kaXZUYWJsZSB7IGRpc3BsYXk6dGFibGU7IH0gLmRpdlRhYmxlLmFsaWduLWNlbnRlciB7IG1hcmdpbjowIGF1dG87IH0gLmRpdlRhYmxlIC5mb3Jtc19ib3gyMiwgLmRpdlRhYmxlIGZvcm1bbmFtZT0ic2VuZEVtYWlsRm9ybSJdIHsgd2lkdGg6OTQwcHg7IH0gLmRpdlRhYmxlIC50ZXh0MzAgeyB3aWR0aDoxMDAlOyB9IC5zZXJ2aWNlLXRpdGxlIHsgbWFyZ2luLXRvcDoyMHB4OyB9IC5mdWxsV2lkdGhGb3JtIC5mb3Jtc19ib3gyMiB7IHdpZHRoOjEwMCU7IG1hcmdpbi1sZWZ0OjA7IG1hcmdpbi1yaWdodDowOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmZ1bGxXaWR0aEZvcm0gLnRleHQzMCB7IHdpZHRoOjEwMCU7IH0gLmZvcm0tZ3JvdXAgeyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmlubGluZS1mb3JtLWdyb3VwIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmZvcm0tZ3JvdXAgbGFiZWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWF4LXdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDo3MDA7IH0gLmRpdlNlYXJjaE1zZyB7IGZvbnQtc2l6ZTowLjlyZW07IG1hcmdpbjoyMHB4IDAgMCAwOyBwYWRkaW5nOjE1cHg7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgYm9yZGVyLXJhZGl1czo1cHg7IGNsZWFyOmJvdGg7IH0gLmNyZWRzaWlOZXcgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6NDcwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaU5ld1ZEUCB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDozNTBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBoZWlnaHQ6YXV0bzsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDowOyByaWdodDowOyB9IC5jcmVkc2lpVXNlZE1pbkhlaWdodCB7IG1pbi1oZWlnaHQ6MTMwcHg7IH0gLmNyZWRzaWlGaW5hbmNlIHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjk2MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MTI1cHg7IG1hcmdpbi10b3A6MTVweDsgfSAuY3JlZHNpaUZpbmFuY2UgLmNyZWRzaWktd2lkZ2V0LWNvbnRhaW5lcnsgbWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC5jcmVkc2lpRmluYW5jZU1lbnUgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6MzQ1cHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaURpdiAuY3JlZHNpaUZpbmFuY2VNZW51IHsgbWF4LXdpZHRoOjM3NXB4OyB9IC5jcmVkc2lpRmluYW5jZU1lbnUgLmNyZWRzaWktd2lkZ2V0eyBib3JkZXI6MDsgfSAucHJvbW8tY2FyZCB7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWJvdHRvbToxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMWYxZjE7IHBhZGRpbmc6MjBweDsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5wcm9tby1ib2R5IC5waWNfYm94MiB7IG1pbi1oZWlnaHQ6MTMwcHg7IH0gLnByb21vLWhvdmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IG9wYWNpdHk6MDsgfSAucHJvbW8tYm9keTpob3ZlciAucHJvbW8taG92ZXIgeyBvcGFjaXR5OjE7IH0gLnByb21vLWJvZHk6aG92ZXIgLnByb21vLWluZm8geyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxLDEpOyB9IC5wcm9tby1tYXNrIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC41KTsgfSAucHJvbW8taW5mbyB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDo1MCU7IHdpZHRoOjM1JTsgbWFyZ2luOmF1dG87IC13ZWJraXQtYm9yZGVyLXJhZGl1czoyNXB4OyAtbW96LWJvcmRlci1yYWRpdXM6MjVweDsgYm9yZGVyLXJhZGl1czoyNXB4OyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDVweCByYmdhKDAsMCwwLDAuMik7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgfSAuZm9ybS1lbmQgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuZm9ybS1lbmQgLmJ0bi13cmFwcGVyIHsgbWFyZ2luOjAgYXV0bzsgfSAuZm9ybS1lbmQgLmVtcHR5LXNwYWNlIHsgbWFyZ2luOmF1dG87IH0gLmZvcm0tZW5kIC5wcm9tby1idG4geyBwb3NpdGlvbjppbml0aWFsOyB9IC5mb3JtLWVuZCAucHJpbnQgeyBtYXJnaW4tbGVmdDphdXRvOyB3aWR0aDppbml0aWFsOyB9IC5wcm9tby1idG4geyBwYWRkaW5nOjEwcHggMTBweCAxMHB4IDEwcHg7IHdpZHRoOjEwMCU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlcjoxcHggc29saWQ7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcG9zaXRpb246YWJzb2x1dGU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0tcHJvbW8tYnRuLWJvcmRlci1yYWRpdXMpOyB0cmFuc2l0aW9uOjAuMjVzOyB9IC5wcm9tb3MgeyBiYWNrZ3JvdW5kOiNmMWYxZjE7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IHBvc2l0aW9uOnJlbGF0aXZlOyBjdXJzb3I6ZGVmYXVsdDsgbWFyZ2luOjEycHggMTBweDsgZGlzcGxheTogZ3JpZDsgZ3JpZC1yb3c6c3BhbiA4OyBncmlkLWNvbHVtbjpzcGFuIDE7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpzdWJncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6c3ViZ3JpZDsgfSAucHJvbW9zIC5oZWFkZXIgeyBncmlkLWFyZWE6aGVhZGVyOyB9ICNzZXJ2aWNlIC5wcm9tb3MgLnByb21vLWNvbnRlbnR7IGRpc3BsYXk6YmxvY2s7IGdyaWQtcm93OmF1dG87IH0gLnByb21vcyAucHJvbW8tY29udGVudCB7IGdyaWQtYXJlYTpjb250ZW50OyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyBncmlkLXJvdzoyIC8gNzsgfSAucHJvbW9zIC5wcm9tby1mb290ZXIgeyBncmlkLWFyZWE6Zm9vdGVyOyBwYWRkaW5nOjAgMTVweCAxNXB4IDE1cHg7IH0gLnByb21vczpob3ZlciAucHJvbW8tYnRuLCAucHJvbW8tYnRuOmhvdmVyIHsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci1iZy1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IH0gLnByb21vcyAucHJvbW8tYnRuIHsgd2lkdGg6aW5oZXJpdDsgcG9zaXRpb246aW5pdGlhbDsgZGlzcGxheTpibG9jazsgcGFkZGluZzoxNXB4IDQ1cHg7IH0gLnByb21vcy5wcm9tby1zbWFsbCAucHJvbW8tYnRuIHsgcGFkZGluZzoxMHB4IDI1cHg7IH0gLnByb21vLWJyZWFrIHsgYm9yZGVyLXRvcDoxcHggc29saWQgI2FiYWJhYjsgcGFkZGluZy10b3A6MTBweDsgbWFyZ2luOjE1cHggMDsgfSAucHJvbW8taW1hZ2UsIC5wcm9tby1kZXRhaWxzLWltYWdlIHsgb3ZlcmZsb3c6aGlkZGVuOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBhc3BlY3QtcmF0aW86dmFyKC0tcHJvbW8taW1nLXJhdGlvLCBub25lKTsgfSAucHJvbW8tZGV0YWlscy1pbWFnZXsgd2lkdGg6MTAwJTsgfSAucHJvbW9zOmhvdmVyIC5wcm9tby1pbWFnZSBpbWcgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtbW96LXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtbXMtdHJhbnNmb3JtOnNjYWxlKDEuMSk7IC1vLXRyYW5zZm9ybTpzY2FsZSgxLjEpOyB0cmFuc2Zvcm06c2NhbGUoMS4xKTsgfSAucHJvbW8taW1hZ2UgaW1nIHsgbWF4LXdpZHRoOjEwMCU7IHRyYW5zaXRpb246dHJhbnNmb3JtIDFzOyBkaXNwbGF5OnRhYmxlLWNlbGw7IG1hcmdpbjowIGF1dG87IH0gLnByb21vLWJvZHkgeyBwYWRkaW5nOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5wcm9tby1ib2R5LmdyaWQgeyBkaXNwbGF5OmdyaWQ7IGhlaWdodDoxMDAlOyBncmlkLXRlbXBsYXRlLXJvd3M6MWZyIDNmcjsgfSAucHJvbW8tYm9keS5ncmlkIC5wcm9tby1jYXB0aW9uLmhlYWRlciB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOjFmciBhdXRvOyB9IC5wcm9tby1jb250ZW50LnBhZGRlZCB7IHBhZGRpbmc6MTVweDsgfSAucHJvbW8tZGVzYyB7IGRpc3BsYXk6bm9uZTsgfSAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS41cmVtIDsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NjAwOyBjb2xvcjojMzMzMzMzOyBtaW4taGVpZ2h0Ojc4cHg7IH0gLnByb21vLW1lZGl1bSAucHJvbW8tdGl0bGUgeyBtaW4taGVpZ2h0Ojg3cHg7IH0gLnByb21vLXNtYWxsIC5wcm9tby10aXRsZSB7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucHJvbW8tY2FwdGlvbiB7IGNvbG9yOiMzMzMzMzM7IH0gLnByb21vLWNhcHRpb246bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucHJvbW8tb2ZmZXIgLnByb21vLXRpdGxlIHsgbWluLWhlaWdodDowOyB9IC5wcm9tby1zdWJjYXB0aW9uIHsgbWFyZ2luLXRvcDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbTsgfSAucHJvbW8tc3ViY2FwdGlvbi5zdWJoZWFkaW5nLi1taCB7IG1pbi1oZWlnaHQ6MzFweDsgfSAucHJvbW8tc3ViY2FwdGlvbi5kZXNjcmlwdGlvbi4tbWggeyBtaW4taGVpZ2h0OjQ4cHg7IH0gLnByb21vLWRpc2xjYWltZXIgeyBmb250LXNpemU6MC43NXJlbTsgfSAucHJvbW8tbGlua3MgeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLnByb21vLWxpbmstaXRlbSAucHJpbnQgeyB3aWR0aDphdXRvOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpncmlkOyB9IC5wcm9tb3MtY29udGFpbmVyIC5mYS1hcnJvdy1kb3duLXRvLWxpbmUgeyBmb250LXNpemU6MnJlbTsgY29sb3I6IzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTAlOyB0b3A6NTAlOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IHBhZGRpbmc6NnB4OyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLCAwLCAwLCAwLjIpOyB0cmFuc2l0aW9uOmFsbCAwLjI1cyBlYXNlLW91dDsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLnByb21vLW1lZGl1bSB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMiwgMWZyKTsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLnByb21vLXNtYWxsIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLCAxZnIpOyB9IC5wcm9tb3MtY29udGFpbmVyLmdyaWQuY29sbGFwc2UgeyBoZWlnaHQ6MTQycHg7IG92ZXJmbG93OmhpZGRlbjsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IGxlZnQ6MTBweDsgcmlnaHQ6MTBweDsgdG9wOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDBkZWcsIHJnYigwIDAgMCAvIDMwJSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSkgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOmhvdmVyOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMTM4IDEzOCAxMzggLyAzMCUpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpOyBjdXJzb3I6cG9pbnRlcjsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlOmhvdmVyIC5mYS1hcnJvdy1kb3duLXRvLWxpbmUgeyB0b3A6NTUlOyBjb2xvcjojODM4MzgzOyB9IC5iYW5uZXItZm9ybSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OnRhYmxlOyBtYXJnaW46MCBhdXRvOyB9IC5iYW5uZXItZm9ybSAuTWFpbkJveExheWVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTA7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjA7IGRpc3BsYXk6dGFibGUtY2VsbDsgaGVpZ2h0OjEwMCU7IH0gLmJhbm5lci1mb3JtLWJveCB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MDsgbWF4LXdpZHRoOjM1MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjM1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyAuTWFpbkJveExheWVyIC5iYW5uZXItZm9ybS1ib3ggeyB0b3A6NTAlOyAtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgbWFyZ2luLXRvcDowOyB9IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjEzMDFweCkgeyAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLWJveCB7IHBhZGRpbmc6MTVweDsgbWF4LXdpZHRoOjI3MHB4OyBmb250LXNpemU6MC44MTNyZW0gOyB9IC5iYW5uZXItZm9ybSAjYmFubmVyRm9ybSAuZm9ybS1jb250cm9sIHsgcGFkZGluZzo0cHggOHB4OyBoZWlnaHQ6MzBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyB9IC5iYW5uZXItZm9ybSAuYmFubmVyLWZvcm0tdGl0bGUgeyBmb250LXNpemU6MTVwdDsgfSAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLXN1YnRpdGxlIHsgZm9udC1zaXplOjExcHQ7IH0gLmJhbm5lci1mb3JtIC5idG4uYmFubmVyLWJ0biB7IHBhZGRpbmc6NHB4IDEycHg7IH0gfSAub3RoZXJMb2dvTWVudUNvbnRhaW5lcnsgZmxvYXQ6bGVmdDsgfSAub3RoZXJMb2dvTWVudUNvbnRhaW5lclJpZ2h0eyBmbG9hdDpyaWdodDsgfSAub3RoZXJMb2dvTWVudUltYWdleyBtYXgtd2lkdGg6MjUwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gLmN0YWJveC0td3JhcHBlciB7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MC43NXJlbSAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IH0gLmN0YWJveC0tdGFibGUgeyB3aWR0aDo4NSUhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTIwMHB4OyBtYXJnaW46YXV0bzsgYm9yZGVyLXNwYWNpbmc6MXJlbTsgYm9yZGVyLWNvbGxhcHNlOnVuc2V0OyB9IC5jdGFib3gtLWNlbGwgeyB3aWR0aDoyNSU7IHRyYW5zaXRpb246YWxsIDAuMnMgbGluZWFyOyB9IC5jdGFib3gtLWNlbGw6bm90KFtvbmNsaWNrPScnXSk6aG92ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMSB7IHdpZHRoOjEwMCU7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzIgeyB3aWR0aDo0ODBweDsgfSAuY3RhYm94LS1jZWxsLmN0YWJveC0tY2VsbF9fMyB7IHdpZHRoOjMzJTsgfSAuY3RhYm94LS1jb250YWluZXIgeyBwYWRkaW5nOjFyZW07IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24geyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uLmN0YWJveC0taWNvbl9fdG9wIHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbi5jdGFib3gtLWljb25fX2xlZnQgeyBmbG9hdDpsZWZ0OyB9IC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS10aXRsZSwgLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLWRlc2NyaXB0aW9uLCAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tYnV0dG9uIHsgbWFyZ2luLWxlZnQ6MzVweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tdGl0bGUgeyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1kZXNjcmlwdGlvbiB7IG1hcmdpbi10b3A6MTBweDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tYnV0dG9uIHsgbWFyZ2luLXRvcDoyMHB4OyB9IC5wYXJhbGxheC1zZWN0aW9uIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgYmFja2dyb3VuZC1hdHRhY2htZW50OmxvY2FsOyBwYWRkaW5nOjI1cHggMDsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lciB7IHdpZHRoOjYwJTsgcGFkZGluZy1yaWdodDoxNXB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgbWFyZ2luLXJpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OmF1dG87IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lci5sYXJnZSB7IHdpZHRoOjgwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5wYXJhbGxheC1jb250ZW50IHsgd2lkdGg6NDUlOyBwYWRkaW5nOjQwcHggNDBweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNyk7IGNvbG9yOiNmZmY7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtdGl0bGUgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MjBweDsgY29sb3I6aW5oZXJpdDsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy1kZXNjIHsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246bGVmdDsgY29sb3I6aW5oZXJpdDsgfSAucGFyYWxsYXgtY29udGVudCAucGFyYWxsYXgtY29udGVudC1idXNpbmVzcy1kZXNjIGF7IGNvbG9yOmluaGVyaXQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6MTMzMHB4KSB7IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIgeyB3aWR0aDo4MCU7IH0gLnBhcmFsbGF4LXNlY3Rpb24gLmNvbnRhaW5lci5sYXJnZSB7IHdpZHRoOjEwMCU7IH0gfSAuc3Itb25seSB7IHBvc2l0aW9uOmFic29sdXRlICFpbXBvcnRhbnQ7IHdpZHRoOjFweCAhaW1wb3J0YW50OyBoZWlnaHQ6MXB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46LTFweCAhaW1wb3J0YW50OyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgY2xpcDpyZWN0KDAsIDAsIDAsIDApICFpbXBvcnRhbnQ7IGJvcmRlcjowICFpbXBvcnRhbnQ7IH0gLmJucF9wdWxsb3V0X2ltZ3sgbWF4LXdpZHRoOjEwcmVtOyBtYXJnaW46YXV0bzsgfSAuYm5wX3B1bGxvdXRfY29sX3NlcGFyYXRvcnsgd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNFQkVCRUI7IGhlaWdodDo5OHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIwcHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2x7IHdpZHRoOjcwJTsgZGlzcGxheTp0YWJsZS1jZWxsOyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3JpZ2h0eyBib3JkZXItbGVmdC13aWR0aDoxcHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfc2VwYXJhdG9yeyB3aWR0aDoxcHg7IGJhY2tncm91bmQtY29sb3I6I0VCRUJFQjsgaGVpZ2h0OjQwcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NzhweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZV93aXRoX3RpdGxleyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjQ1JTsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZXsgZm9udC1zaXplOjJyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IEBtZWRpYSAobWF4LXdpZHRoOjEzMzBweCkgeyAuYm5wX3B1bGxvdXRfbWlkX2NvbCB7IHdpZHRoOjUwJTsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9wcmljZV93aXRoX3RpdGxlIHsgd2lkdGg6MTAwJTsgfSAuYm5wX3B1bGxvdXRfY29sX3NlcGFyYXRvciB7IGhlaWdodDoxNjRweDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9zZXBhcmF0b3IgeyBoZWlnaHQ6MTA2cHg7IH0gfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRJbWd7IGhlaWdodDoxMTBweDsgYmFja2dyb3VuZC1jb2xvcjojNGQ4ZjE0OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dEJ1dHRvbnsgYmFja2dyb3VuZDojNDE3RjFBICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4OyBjb2xvcjojZmZmZmZmOyBwYWRkaW5nOjdweCAyMHB4IDdweDsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDo3MDA7IHRleHQtc2hhZG93OjAuNHB4IDA7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudHsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEuNTYzcmVtIDsgZm9udC13ZWlnaHQ6NzAwOyBtYXJnaW4tYm90dG9tOi0xNXB4OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnRTY29yZXsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MS44NzVyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50RnJlZXsgY29sb3I6IzQxN0YxQTsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6Mi44MTNyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZC5pc0Z1bGxXaWR0aFBhZ2UgLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0TWF4V2lkdGh7IG1heC13aWR0aDoxMjAwcHg7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0TWF4V2lkdGh7IG1heC13aWR0aDo5NjBweDsgfSAuc2xpZGVyLW1haW4gaW1neyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0IH0gLmNvbW11bmljYXRpb25QcmVmeyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgd2lkdGg6NTAlICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnVwX21lbnUgLlMxMDBQZXJjZW50V2lkdGggeyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyB9IC51cF9tZW51LmZpeGVkIC5TMTAwUGVyY2VudFdpZHRoeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDcsMjQ3LDI0NykgfSAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAub3JnLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuc3RyZWV0LWFkZHJlc3MsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5sb2NhbGl0eSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnJlZ2lvbiwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnBvc3RhbC1jb2RlLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuYWRkcmVzcy1zZXAsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5waG9uZS10eXBlLWxhYmVsLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAuZXh0ZW5kZWRQaG9uZVRyaWdnZXIsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5waG9uZS1saW5rIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpICFpbXBvcnRhbnQ7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmRlYWxlck1hcExpbmsgc3ZnIHsgZmlsbDp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmZhLWNhcmV0LWRvd246OmJlZm9yZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmZhLXBob25lOjpiZWZvcmUgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnVwX21lbnUgLlMxMDBQZXJjZW50V2lkdGggPiB1bCA+IGxpID4gYS50b3BfbGluayB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLW1lbnUtaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uLmFjdGl2ZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uIHsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgZGl2LmQyYy1mYXZzLW5hdi13cmFwcGVyIGkuZmFyIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSAuYnRuIHsgYm9yZGVyLWNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubGFuZ3VhZ2VCYXIgLmdSYXRpbmctaWNvbiNnUmF0aW5nLCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLCAubGFuZ3VhZ2VCYXIgLmRlc2t0b3BfbGFuZ19idXR0b24geyBib3JkZXItcmFkaXVzOnZhcigtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzKSAhaW1wb3J0YW50OyB9IC5nUmF0aW5nLWljb24jZ1JhdGluZyAucmF0aW5nIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGxpbmUtaGVpZ2h0OjE7IH0gLm1hcmdpbi1ib3R0b20tLTRweCB7IG1hcmdpbi1ib3R0b206LTRweDsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5iYW5uZXItc2VhcmNoLWJveC13cmFwcGVyIHsgei1pbmRleDoyOyBwb3NpdGlvbjpyZWxhdGl2ZSB9Ci8qKiAvY3NzL3Byb19kcm9wZG93bl80LmNzcyAqKi8KLmlkTmF2MSB7IHBhZGRpbmc6MDsgbGlzdC1zdHlsZTpub25lOyBoZWlnaHQ6MjhweDsgZm9udC1zaXplOjAuNzVyZW0gOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojRjlGOUY5OyB9IC5pZE5hdjEgbGkudG9wIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowO30gLmlkTmF2MSBsaS50b3AxIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBwYWRkaW5nOjA7IHBhZGRpbmctcmlnaHQ6MnB4OyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQ6I2Y3ZjdmNzsgY29sb3I6IzEwMmI0ZTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgZmlsdGVyOmJyaWdodG5lc3MoOTUlKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbmsxIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgbGluZS1oZWlnaHQ6MzBweDsgY29sb3I6I2ZlZmVmZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjBweCAxMnB4IDBweCAxMnB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ibF9ob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MiB7IHBhZGRpbmc6MDsgbGlzdC1zdHlsZTpub25lOyBoZWlnaHQ6MjhweDsgZm9udC1zaXplOjAuNzVyZW0gOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBjb2xvcjojRjlGOUY5OyB9IC5pZE5hdjIgbGkudG9wIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowOyBwYWRkaW5nLXJpZ2h0OjJweDt9IC5pZE5hdjIgbGkudG9wMSB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IHBhZGRpbmc6MDsgcGFkZGluZy1yaWdodDoycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fSAuaWROYXYyIGxpIGEudG9wX2xpbmsge2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBsaW5lLWhlaWdodDozMHB4OyBjb2xvcjojZmVmZWZlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2JnMi5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MiBsaSBhLnRvcF9saW5rOmhvdmVyIHtjb2xvcjojZmZmOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyMi5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MiBsaSBhLnRvcF9saW5rMSB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGNvbG9yOiNmZWZlZmU7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fQovKiogL2Nzcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5jc3MgKiovCi51aS1oZWxwZXItaGlkZGVue2Rpc3BsYXk6bm9uZX0udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxle2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS51aS1oZWxwZXItcmVzZXR7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO291dGxpbmU6MDtsaW5lLWhlaWdodDoxLjM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjEwMCU7bGlzdC1zdHlsZTpub25lfS51aS1oZWxwZXItY2xlYXJmaXg6YmVmb3JlLC51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0udWktaGVscGVyLWNsZWFyZml4OmFmdGVye2NsZWFyOmJvdGh9LnVpLWhlbHBlci16Zml4e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTApIn0udWktZnJvbnR7ei1pbmRleDoxMDB9LnVpLXN0YXRlLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lfS51aS1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tdG9wOi0uMjVlbTtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDotOTk5OTlweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS51aS13aWRnZXQtaWNvbi1ibG9ja3tsZWZ0OjUwJTttYXJnaW4tbGVmdDotOHB4O2Rpc3BsYXk6YmxvY2t9LnVpLXdpZGdldC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXJ7ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MnB4IDAgMCAwO3BhZGRpbmc6LjVlbSAuNWVtIC41ZW0gLjdlbTtmb250LXNpemU6MTAwJX0udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudHtwYWRkaW5nOjFlbSAyLjJlbTtib3JkZXItdG9wOjA7b3ZlcmZsb3c6YXV0b30udWktc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdH0udWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt3aWR0aDoxLjJlbTtoZWlnaHQ6MS4yZW07Y3Vyc29yOnBvaW50ZXI7LW1zLXRvdWNoLWFjdGlvbjpub25lO3RvdWNoLWFjdGlvbjpub25lfS51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7Zm9udC1zaXplOi43ZW07ZGlzcGxheTpibG9jaztib3JkZXI6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItaGFuZGxlLC51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1yYW5nZXtmaWx0ZXI6aW5oZXJpdH0udWktc2xpZGVyLWhvcml6b250YWx7aGVpZ2h0Oi44ZW19LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxle3RvcDotLjNlbTttYXJnaW4tbGVmdDotLjZlbX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZXt0b3A6MDtoZWlnaHQ6MTAwJX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1heHtyaWdodDowfS51aS1zbGlkZXItdmVydGljYWx7d2lkdGg6LjhlbTtoZWlnaHQ6MTAwcHh9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0uM2VtO21hcmdpbi1sZWZ0OjA7bWFyZ2luLWJvdHRvbTotLjZlbX0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2V7bGVmdDowO3dpZHRoOjEwMCV9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1pbntib3R0b206MH0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfS51aS13aWRnZXR7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IC51aS13aWRnZXR7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IGlucHV0LC51aS13aWRnZXQgc2VsZWN0LC51aS13aWRnZXQgdGV4dGFyZWEsLnVpLXdpZGdldCBidXR0b257Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2M1YzVjNX0udWktd2lkZ2V0LWNvbnRlbnR7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMzMzfS51aS13aWRnZXQtY29udGVudCBhe2NvbG9yOiMzMzN9LnVpLXdpZGdldC1oZWFkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2U5ZTllOTtjb2xvcjojMzMzO2ZvbnQtd2VpZ2h0OmJvbGR9LnVpLXdpZGdldC1oZWFkZXIgYXtjb2xvcjojMzMzfS51aS1zdGF0ZS1kZWZhdWx0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCwudWktYnV0dG9uLGh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDpob3ZlcixodG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6YWN0aXZle2JvcmRlcjoxcHggc29saWQgI2M1YzVjNTtiYWNrZ3JvdW5kOiNmNmY2ZjY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiM0NTQ1NDV9LnVpLXN0YXRlLWRlZmF1bHQgYSwudWktc3RhdGUtZGVmYXVsdCBhOmxpbmssLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkLGEudWktYnV0dG9uLGE6bGluay51aS1idXR0b24sYTp2aXNpdGVkLnVpLWJ1dHRvbiwudWktYnV0dG9ue2NvbG9yOiM0NTQ1NDU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXN0YXRlLWhvdmVyLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLC51aS1zdGF0ZS1mb2N1cywudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywudWktYnV0dG9uOmhvdmVyLC51aS1idXR0b246Zm9jdXN7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JhY2tncm91bmQ6I2VkZWRlZDtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6IzJiMmIyYn0udWktc3RhdGUtaG92ZXIgYSwudWktc3RhdGUtaG92ZXIgYTpob3ZlciwudWktc3RhdGUtaG92ZXIgYTpsaW5rLC51aS1zdGF0ZS1ob3ZlciBhOnZpc2l0ZWQsLnVpLXN0YXRlLWZvY3VzIGEsLnVpLXN0YXRlLWZvY3VzIGE6aG92ZXIsLnVpLXN0YXRlLWZvY3VzIGE6bGluaywudWktc3RhdGUtZm9jdXMgYTp2aXNpdGVkLGEudWktYnV0dG9uOmhvdmVyLGEudWktYnV0dG9uOmZvY3Vze2NvbG9yOiMyYjJiMmI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXZpc3VhbC1mb2N1c3tib3gtc2hhZG93OjAgMCAzcHggMXB4IHJnYig5NCwxNTgsMjE0KX0udWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1hY3RpdmUsYS51aS1idXR0b246YWN0aXZlLC51aS1idXR0b246YWN0aXZlLC51aS1idXR0b24udWktc3RhdGUtYWN0aXZlOmhvdmVye2JvcmRlcjoxcHggc29saWQgIzAwM2VmZjtiYWNrZ3JvdW5kOiMwMDdmZmY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiNmZmZ9LnVpLWljb24tYmFja2dyb3VuZCwudWktc3RhdGUtYWN0aXZlIC51aS1pY29uLWJhY2tncm91bmR7Ym9yZGVyOiMwMDNlZmY7YmFja2dyb3VuZC1jb2xvcjojZmZmfS51aS1zdGF0ZS1hY3RpdmUgYSwudWktc3RhdGUtYWN0aXZlIGE6bGluaywudWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZHtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodHtib3JkZXI6MXB4IHNvbGlkICNkYWQ1NWU7YmFja2dyb3VuZDojZmZmYTkwO2NvbG9yOiM3Nzc2MjB9LnVpLXN0YXRlLWNoZWNrZWR7Ym9yZGVyOjFweCBzb2xpZCAjZGFkNTVlO2JhY2tncm91bmQ6I2ZmZmE5MH0udWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0IGF7Y29sb3I6Izc3NzYyMH0udWktc3RhdGUtZXJyb3IsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3J7Ym9yZGVyOjFweCBzb2xpZCAjZjFhODk5O2JhY2tncm91bmQ6I2ZkZGZkZjtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvciBhLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYXtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvci10ZXh0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dHtjb2xvcjojNWYzZjNmfS51aS1wcmlvcml0eS1wcmltYXJ5LC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeXtmb250LXdlaWdodDpib2xkfS51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXNlY29uZGFyeXtvcGFjaXR5Oi43Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9NzApIjtmb250LXdlaWdodDpub3JtYWx9LnVpLXN0YXRlLWRpc2FibGVkLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjM1Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIjtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnVpLXN0YXRlLWRpc2FibGVkIC51aS1pY29uey1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIn0udWktaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS51aS1pY29uLC51aS13aWRnZXQtY29udGVudCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzQ0NDQ0NF8yNTZ4MjQwLnBuZyIpfS51aS13aWRnZXQtaGVhZGVyIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhvdmVyIC51aS1pY29uLC51aS1zdGF0ZS1mb2N1cyAudWktaWNvbiwudWktYnV0dG9uOmhvdmVyIC51aS1pY29uLC51aS1idXR0b246Zm9jdXMgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc181NTU1NTVfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLC51aS1idXR0b246YWN0aXZlIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhpZ2hsaWdodCAudWktaWNvbiwudWktYnV0dG9uIC51aS1zdGF0ZS1oaWdobGlnaHQudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzc3NzYyMF8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1lcnJvciAudWktaWNvbiwudWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zX2NjMDAwMF8yNTZ4MjQwLnBuZyIpfS51aS1idXR0b24gLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc183Nzc3NzdfMjU2eDI0MC5wbmciKX0udWktaWNvbi1ibGFuay51aS1pY29uLWJsYW5rLnVpLWljb24tYmxhbmt7YmFja2dyb3VuZC1pbWFnZTpub25lfS51aS1pY29uLWNhcmV0LTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktaWNvbi1jYXJldC0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggMH0udWktaWNvbi1jYXJldC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAwfS51aS1pY29uLWNhcmV0LTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAwfS51aS1pY29uLWNhcmV0LTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IDB9LnVpLWljb24tY2FyZXQtMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IDB9LnVpLWljb24tY2FyZXQtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggMH0udWktaWNvbi1jYXJldC0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IDB9LnVpLWljb24tY2FyZXQtMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggMH0udWktaWNvbi1jYXJldC0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAwfS51aS1pY29uLXRyaWFuZ2xlLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTZweH0udWktaWNvbi1hcnJvdy0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zMnB4fS51aS1pY29uLWFycm93LTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uZS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTMycHh9LnVpLWljb24tYXJyb3d0aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjoxcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLW5lLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtNDhweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS13e2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1le2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTY0cHh9LnVpLWljb24tYXJyb3ctNHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTgwcHh9LnVpLWljb24tYXJyb3ctNC1kaWFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTgwcHh9LnVpLWljb24tZXh0bGlua3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC04MHB4fS51aS1pY29uLW5ld3dpbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC04MHB4fS51aS1pY29uLXJlZnJlc2h7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtODBweH0udWktaWNvbi1zaHVmZmxle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTgwcHh9LnVpLWljb24tZm9sZGVyLWNvbGxhcHNlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTk2cHh9LnVpLWljb24tZm9sZGVyLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtOTZweH0udWktaWNvbi1kb2N1bWVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC05NnB4fS51aS1pY29uLWRvY3VtZW50LWJ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtOTZweH0udWktaWNvbi1ub3Rle2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTk2cHh9LnVpLWljb24tbWFpbC1jbG9zZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtOTZweH0udWktaWNvbi1tYWlsLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtOTZweH0udWktaWNvbi1zdWl0Y2FzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtOTZweH0udWktaWNvbi1jb21tZW50e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC05NnB4fS51aS1pY29uLXBlcnNvbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtOTZweH0udWktaWNvbi1wcmludHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtOTZweH0udWktaWNvbi10cmFzaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtOTZweH0udWktaWNvbi1sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTk2cHh9LnVpLWljb24tdW5sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTk2cHh9LnVpLWljb24tYm9va21hcmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTk2cHh9LnVpLWljb24tdGFne2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC05NnB4fS51aS1pY29uLWhvbWV7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMTJweH0udWktaWNvbi1mbGFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTExMnB4fS51aS1pY29uLWNhbGVuZGFye2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTExMnB4fS51aS1pY29uLWNhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTEycHh9LnVpLWljb24tcGVuY2lse2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTExMnB4fS51aS1pY29uLWNsb2Nre2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTExMnB4fS51aS1pY29uLWRpc2t7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTEycHh9LnVpLWljb24tY2FsY3VsYXRvcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTEycHh9LnVpLWljb24tem9vbWlue2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xMTJweH0udWktaWNvbi16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xMTJweH0udWktaWNvbi1zZWFyY2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTExMnB4fS51aS1pY29uLXdyZW5jaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTEycHh9LnVpLWljb24tZ2VhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTEycHh9LnVpLWljb24taGVhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTExMnB4fS51aS1pY29uLXN0YXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTExMnB4fS51aS1pY29uLWxpbmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTExMnB4fS51aS1pY29uLWNhbmNlbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEyOHB4fS51aS1pY29uLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTI4cHh9LnVpLWljb24tcGx1c3RoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTEyOHB4fS51aS1pY29uLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTEyOHB4fS51aS1pY29uLW1pbnVzdGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTI4cHh9LnVpLWljb24tY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTI4cHh9LnVpLWljb24tY2xvc2V0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xMjhweH0udWktaWNvbi1rZXl7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTEyOHB4fS51aS1pY29uLWxpZ2h0YnVsYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTI4cHh9LnVpLWljb24tc2Npc3NvcnN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTEyOHB4fS51aS1pY29uLWNsaXBib2FyZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTI4cHh9LnVpLWljb24tY29weXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTI4cHh9LnVpLWljb24tY29udGFjdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTI4cHh9LnVpLWljb24taW1hZ2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTEyOHB4fS51aS1pY29uLXZpZGVve2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0xMjhweH0udWktaWNvbi1zY3JpcHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTEyOHB4fS51aS1pY29uLWFsZXJ0e2JhY2tncm91bmQtcG9zaXRpb246MCAtMTQ0cHh9LnVpLWljb24taW5mb3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNDRweH0udWktaWNvbi1ub3RpY2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTQ0cHh9LnVpLWljb24taGVscHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNDRweH0udWktaWNvbi1jaGVja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNDRweH0udWktaWNvbi1idWxsZXR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb257YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNDRweH0udWktaWNvbi1waW4td3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTQ0cHh9LnVpLWljb24tcGluLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE0NHB4fS51aS1pY29uLXBsYXl7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNjBweH0udWktaWNvbi1wYXVzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNjBweH0udWktaWNvbi1zZWVrLW5leHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTYwcHh9LnVpLWljb24tc2Vlay1wcmV2e2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE2MHB4fS51aS1pY29uLXNlZWstZW5ke2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE2MHB4fS51aS1pY29uLXNlZWstc3RhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTYwcHh9LnVpLWljb24tc2Vlay1maXJzdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNjBweH0udWktaWNvbi1zdG9we2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2MHB4fS51aS1pY29uLWVqZWN0e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb257YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE2MHB4fS51aS1pY29uLXBvd2Vye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTc2cHh9LnVpLWljb24tc2lnbmFsLWRpYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTc2cHh9LnVpLWljb24tc2lnbmFse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTF7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0ye2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktM3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNzZweH0udWktaWNvbi1jaXJjbGUtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE5MnB4fS51aS1pY29uLWNpcmNsZS1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29taW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2hlY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1wbHVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTIwOHB4fS51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246MCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMjRweH0udWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTIyNHB4fS51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0yMjRweH0udWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0yMjRweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLWxlZnQsLnVpLWNvcm5lci10bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLXJpZ2h0LC51aS1jb3JuZXItdHJ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItbGVmdCwudWktY29ybmVyLWJse2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItcmlnaHQsLnVpLWNvcm5lci1icntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHh9LnVpLXdpZGdldC1vdmVybGF5e2JhY2tncm91bmQ6I2FhYTtvcGFjaXR5Oi4zOy1tcy1maWx0ZXI6QWxwaGEoT3BhY2l0eT0zMCl9LnVpLXdpZGdldC1zaGFkb3d7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCA1cHggIzY2Njtib3gtc2hhZG93OjAgMCA1cHggIzY2Nn0KLyoqIC9jc3Mvc3R5bGUuY3NzICoqLwpodG1sLCBib2R5LCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBibG9ja3F1b3RlLCBwcmUsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSwgZGVsLCBkZm4sIGVtLCBmb250LCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gaHRtbCB7IC1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOyB9IGJvZHkgeyBwYWRkaW5nOjA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOiNGRkZGRkY7IGNvbG9yOiMzMzMzMzM7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dC1tb2IpOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgYnV0dG9uIHsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0LW1vYik7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IC5mdWxsV2lkdGhCdXR0b24gYSwgLnRvcG5hdiB0ciB0ZCBhLCBhI21vYmlsZVByb21vdGlvbkJ0biBzcGFueyBmb250LWZhbWlseTp2YXIoLS1mb250LWJ1dHRvbnMtbW9iKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1idXR0b25zLXdlaWdodCk7IH0gLmRlYWxlci1jb2xvciB7IGNvbG9yOiNmN2Y3Zjc7IH0gLmgyZm9ybXsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgYmFja2dyb3VuZDojOTk5OyBjb2xvcjp3aGl0ZTsgcGFkZGluZzo1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLXRvcDoxNXB4OyB9IC4tc2VsZWN0IHsgcGFkZGluZzowOyBtYXJnaW46MDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBib3JkZXItcmFkaXVzOjNweDsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJhY2tncm91bmQ6I2ZmZjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnVzZWRfZGV0YWlsc19vcHRpb25zX3RpdGxlLCAubmV3X2RldGFpbHNfb3B0aW9uc190aXRsZXsgYmFja2dyb3VuZC1jb2xvcjojY2NjOyBjb2xvcjojMDAwOyBwYWRkaW5nOjEwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IG1hcmdpbi1sZWZ0Oi0xMHB4OyBtYXJnaW4tcmlnaHQ6LTEwcHg7IH0gLi1zZWxlY3Q6YWZ0ZXIgeyB0b3A6NTAlOyByaWdodDo1cHg7IGJvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBwb3NpdGlvbjphYnNvbHV0ZTsgcG9pbnRlci1ldmVudHM6bm9uZTsgYm9yZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMCk7IGJvcmRlci10b3AtY29sb3I6IzAwMDAwMDsgYm9yZGVyLXdpZHRoOjVweDsgbWFyZ2luLXRvcDotMnB4OyB6LWluZGV4OjEwMDsgfSAuLXNlbGVjdCBzZWxlY3QgeyBwYWRkaW5nOjVweCA4cHg7IHdpZHRoOjEwMCU7IGJvcmRlcjpub25lOyBib3gtc2hhZG93Om5vbmU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBhcHBlYXJhbmNlOm5vbmU7IH0gLi1zZWxlY3Qgc2VsZWN0OmZvY3VzIHsgb3V0bGluZTpub25lOyB9IGEsIGE6aG92ZXIgeyBvdXRsaW5lOm5vbmU7IH0gLm5hdiA+IHVsID4gbGl7IG1hcmdpbi1ib3R0b206M3B4OyB9IGgxeyBmb250LXNpemU6MS40ZW07IHBhZGRpbmctdG9wOjEwcHg7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEtbW9iKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyB9IHNwYW4uaDItYWx0LHNwYW4uaDMtYWx0eyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGgyLGgzLGg0LGg1LGg2LHNwYW4uaDItYWx0LHNwYW4uaDMtYWx0eyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyLW1vYik7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgfSBpbnB1dFt0eXBlPWJ1dHRvbl0sIC5kZXRhaWxzIGEsIC5oLWJ1dHRvbnMgdWwgbGkgYSwgLnByaWNlLCAuZGV0YWlscywgLmRldGFpbHMgYSwgLmJ1dHRvbi1wcm9tbzMsIC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZyB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYnV0dG9ucy1tb2IpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWJ1dHRvbnMtd2VpZ2h0KTsgfSAuY2xlYXJ7IGNsZWFyOmJvdGg7fSBhLCBhOmhvdmVyIHt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5jb250YWluZXIgeyB3aWR0aDoxMDAlOyBtYXJnaW46MCAwIDAgMDsgfSAudG9wIHsgYmFja2dyb3VuZDojMjIyMjIyOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGhlaWdodDo1MHB4OyB9IC50b3BuYXYgLmJ1cmdlci1idG4tY29udGFpbmVyLm1lbnUtdGFsbHsgd2lkdGg6NDBweCAhaW1wb3J0YW50OyB9IC50b3BuYXYgYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MWVtOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyB9IC5idXJnZXItbWVudXsgaGVpZ2h0OjIwMCUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNSkgIWltcG9ydGFudDsgfSAucmlnaHRib3JkZXIgeyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkOyBib3JkZXItY29sb3I6I2ZmZmZmZjsgYm9yZGVyLWNvbG9yOiMwMDAwMDA7IH0gLmxlZnRib3JkZXIgeyBib3JkZXItbGVmdDoxcHggc29saWQ7IGJvcmRlci1jb2xvcjojZmZmZmZmOyBib3JkZXItY29sb3I6IzAwMDAwMDsgfSAudGVsZXBob25lLCAubWFwIHtkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6NjRweDsgcGFkZGluZzoyNXB4IDAgMCAwO30gLnRlbGVwaG9uZSB7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uLXBob25lLnBuZykgbm8tcmVwZWF0IDIwcHggMTVweDsgfSAubWFwIHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24tbWFwLnBuZykgbm8tcmVwZWF0IDUwcHggMTBweDt9IC5oZWFkZXJiYXIgeyBiYWNrZ3JvdW5kOiMzMzM7IGNvbG9yOndoaXRlOyBib3gtc2hhZG93OnJnYmEoMCwgMCwgMCwgMC41KSAwIDAgNXB4IDNweDsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojMDAwMDAwIH0gLmhlYWRlcmJhci50YWxsIHsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IHdpZHRoIDoxMDAlOyB9IC5oZWFkZXJiYXIgLnRvcG5hdiB7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGRpc3BsYXkgOmZsZXg7IGp1c3RpZnktY29udGVudCA6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXMgOmNlbnRlcjsgfSAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiB7IGp1c3RpZnktY29udGVudDpzdHJldGNoOyB9IC5oZWFkZXJiYXIgLnRvcG5hdiA+IGRpdiB7IGhlaWdodCA6NTBweDsgZGlzcGxheSA6ZmxleDsgYWxpZ24taXRlbXMgOmNlbnRlcjsgfSAuaGVhZGVyYmFyIC50b3BuYXYgPiAubG9nby1hY3Rpb24geyBmbGV4LWRpcmVjdGlvbiA6Y29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQgOnNwYWNlLWV2ZW5seTsgfSAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiA+IGRpdjpub3QoLmJ1cmdlci1idG4tY29udGFpbmVyKSB7IGZsZXgtZ3JvdzoxOyB9IC5oZWFkZXJiYXIudGFsbCAudG9wbmF2ID4gZGl2Om5vdCg6bGFzdC1vZi10eXBlKSB7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDsgfSAuaGVhZGVyYmFyIC5tZW51LmJ1cmdlci1idG4tY29udGFpbmVyIHsgbWF4LXdpZHRoIDo0MHB4OyBoZWlnaHQgOjUwcHg7IH0gLmhlYWRlcmJhciAuYnVyZ2VyLW1lbnUtYnV0dG9uLCAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiA+IGRpdiB7IGRpc3BsYXkgOmZsZXg7IGp1c3RpZnktY29udGVudCA6Y2VudGVyOyBhbGlnbi1pdGVtcyA6Y2VudGVyOyB0ZXh0LWNlbnRlciA6Y2VudGVyOyB9IC5oZWFkZXJiYXIgLmJ1cmdlci1tZW51LWJ1dHRvbiBpIHsgZm9udC1zaXplOjEuMjVyZW07IGNvbG9yOiMwMDAwMDA7IH0gLmhlYWRlcmJhciAubG9nby1hY3Rpb24gaW1nIHsgcGFkZGluZyA6MDsgaGVpZ2h0IDoxMDAlOyBtYXgtaGVpZ2h0IDo1MHB4OyB9IC5oZWFkZXJiYXIgLmhlYWRlci1kZWFsZXItbmFtZSB7IGRpc3BsYXkgOmJsb2NrOyB0ZXh0LWFsaWduIDpjZW50ZXI7IGxpbmUtaGVpZ2h0IDoxLjNlbTsgZm9udC1zaXplIDowLjhyZW07IGNvbG9yIDojODg4ODg4OyBmb250LWZhbWlseSA6dmFyKC0tZm9udC1oMS1tb2IpOyBmb250LXdlaWdodCA6dmFyKC0tZm9udC13ZWlnaHQtaDEtbW9iKTsgfSAuaGVhZGVyYmFyIC50b3BuYXYgPiBkaXY6bm90KC5sb2dvLWFjdGlvbikgPiBhIHsgdGV4dC1hbGlnbiA6Y2VudGVyOyB3aWR0aCA6MTAwJTsgcGFkZGluZyA6MC43NXJlbTsgfSBkaXYjcGhvbmVOdW1iZXJEaXYgbGkgeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luLWJvdHRvbToxNXB4OyB9ICNuZXdzQ29udGFpbmVyIGF7IGNvbG9yOiMzMzM7IH0gI25ld3NDb250YWluZXIgYS50b3BfbGluayB7IGNvbG9yOiNmZmY7IH0gLm5ld3NfYXJ0aWNsZSBoMnsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MS4xMjVyZW0gOyB9IC5uZXdzX2FydGljbGUgaDEsaDIsaDMsaDQsaDUsaDZ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuYWRkcmVzcyB7IGxldHRlci1zcGFjaW5nOi0xcHg7IGNvbG9yOiMzMzM7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6bm9ybWFsOyB3aWR0aDo1MCU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5hZGRyZXNzLCAubG9nbyB7IHZlcnRpY2FsLWFsaWduOnRvcDsgfSAuY29udGVudHMgeyBiYWNrZ3JvdW5kOiNmYmZiZmI7IHBhZGRpbmc6MTBweDsgfSAuY29udGVudHMgaDIge2ZvbnQtc2l6ZToxLjVyZW07IGxpbmUtaGVpZ2h0OjIuMjVyZW07fSAuY29udGVudHMgcCB7Zm9udC1zaXplOjFlbTsgbGluZS1oZWlnaHQ6MS4xZW07IHRleHQtYWxpZ246anVzdGlmeTsgbGV0dGVyLXNwYWNpbmc6MDt9IC5tb2JpbGVfYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZDojZmZmZmZmIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IH0gLm1lbnUgeyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyB9ICNuZXdzQ29udGFpbmVyIC5uZXdzX2FydGljbGUgaW1nW3NyYyo9Jy9ja2ZpbmRlciddeyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyB9ICNuZXdzQ29udGFpbmVyIC5uZXdzX2FydGljbGUgaW1neyBtYXgtd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IH0gI25ld3NDb250YWluZXIgLmNsZWFyZml4IHsgaGVpZ2h0OjBweDsgfSAubWVudSB1bCBsaSBhIHNwYW4ge3BhZGRpbmctbGVmdDo3cHg7fSAubWVudSB1bCBsaSBhIHNwYW4udGV4dHZhbCB7bGluZS1oZWlnaHQ6MzJweDsgIyNNT0JJTEVfTUVOVV9DU1MjI30gLm1lbnUgdWwgbGkgYSBzcGFuIGltZyB7cGFkZGluZy1sZWZ0OjEwcHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTt9IC5ib3R0b20gLmxpbmtzIGEgeyBjb2xvcjojNjY2NjY2OyB9IC5FTkdMSVNIIC5ib3R0b20gLmxpbmtzIHVsIGxpIGF7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gLmJvdHRvbSAubGlua3MgZGl2IHsgbWFyZ2luOjE1cHggMDsgZGlzcGxheTpibG9jazsgfSAuYm90dG9tIHsgcGFkZGluZzoxMHB4OyBkaXNwbGF5OmJsb2NrOyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtbW96LWJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjM7IGNvbG9yOiM2NjY2NjY7IC0tdHh0LWNvbG9yOiM2NjY2NjY7IH0gLmJvdHRvbSAubGlua3MgeyBmb250LXNpemU6MC45MzhyZW0gOyBsaW5lLWhlaWdodDoyMXB4OyBjbGVhcjpib3RoOyBwYWRkaW5nLXRvcDo1cHg7IH0gLmJvdHRvbSAuZm9vdGVyX2FkZHJlc3Mgc3BhbnsgY29sb3I6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5ib3R0b20gLmxpbmtzIGRpdi5mb290ZXJfbG9nbyB7IG1hcmdpbjoxLjI1cmVtIDAgMS43NXJlbSAwOyB9IC5ib3R0b20gLmxpbmtzIGRpdi5mb290ZXJfbG9nbyBpbWcgeyBtYXgtd2lkdGg6MTgwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gYS5idXR0b24tcHJvbW8geyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgfSAuYnJlYWRjcnVtYnMgeyBmb250LXNpemUgOjAuOXJlbTsgY29sb3IgOiMyMjIyMjI7IGZvbnQtd2VpZ2h0IDpib2xkOyBwYWRkaW5nIDoxNXB4OyB9IC5icmVhZGNydW1icyBhIHtjb2xvcjojNjY2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYm90dG9tIC5saW5rcyBkaXYuZm9vdGVyLWNhcmxpc3RpbmcgeyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gLmNGb290ZXJDYXJMaW5rc3sgcGFkZGluZzowIDAgNXB4IDA7IH0gLnNlYXJjaGJveCB7IGJhY2tncm91bmQ6I0U1RTVFNTsgfSAuc2VhcmNoYm94IGgzIC51aS1hY2NvcmRpb24taGVhZGVyLWljb24ge3BhZGRpbmc6MHB4IDRweCA2cHggMHB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kb3duYXJyb3cucG5nKSBuby1yZXBlYXQgOTglIGNlbnRlcjsgdG9wOjE4cHghaW1wb3J0YW50O30gLmZvcm1hcmVhIHsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IC1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyBib3gtc2hhZG93Omluc2V0IDAgMXB4IDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IH0gLmZvcm1hcmVhIHRhYmxlIHRyIHRkIHsgcGFkZGluZzo1cHg7IH0gaW5wdXQsIGlucHV0W3R5cGU9dGV4dF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1lbWFpbF0sIHNlbGVjdCwgdGV4dGFyZWF7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6NXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmNoZWNrYm94IHsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6YmxvY2s7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0geyB3aWR0aDphdXRvOyBvcGFjaXR5OjAuMDAwMDAwMDE7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IG1hcmdpbi1sZWZ0Oi0ycHg7IH0gLmNoZWNrYm94X2hlbHBlciB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTRweDsgbGVmdDotNHB4OyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjFyZW0gOyB1c2VyLXNlbGVjdDpub25lOyBjb2xvcjojZTdlN2U3OyB9IC5jaGVja2JveF9oZWxwZXI6YmVmb3JlIHsgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IG1hcmdpbjo0cHg7IHdpZHRoOjE1cHg7IGhlaWdodDoxNXB4OyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjI4cyBlYXNlOyBib3JkZXItcmFkaXVzOjJweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBiYWNrZ3JvdW5kOndoaXRlOyB9IC5jaGVja2JveF9oZWxwZXI6YWZ0ZXIgeyBjb250ZW50OicnOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDo4cHg7IGhlaWdodDo1cHg7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMzMzM7IGJvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzMzOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTsgLW1vei10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMCk7IC1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMCk7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo3cHg7IGxlZnQ6OHB4OyB9IC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJdY2hlY2tlZCB+IC5jaGVja2JveF9oZWxwZXI6OmJlZm9yZSB7IGNvbG9yOiMzMzM7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZCB+IC5jaGVja2JveF9oZWxwZXI6OmFmdGVyIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMSk7IC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpOyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpOyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMSk7IH0gLmNoZWNrYm94IGxhYmVsIHsgbWluLWhlaWdodDoyNHB4OyBwYWRkaW5nLWxlZnQ6MjRweDsgbWFyZ2luLWJvdHRvbTowOyBmb250LXdlaWdodDpub3JtYWw7IGN1cnNvcjpwb2ludGVyOyB2ZXJ0aWNhbC1hbGlnbjpzdWI7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHsgb3V0bGluZTpyZ2IoNTksIDE1MywgMjUyKSBhdXRvIDVweDsgfSBzZWxlY3R7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gLmRyb3Bkb3duIHt3aWR0aDo5NSU7IG1hcmdpbjphdXRvIDVweDt9IC5idXR0b24ge2JhY2tncm91bmQ6IzMzMzsgY29sb3I6I2ZmZjsgZm9udC1zaXplOjEuMWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MzAwcHg7IHBhZGRpbmc6MTVweDsgY3Vyc29yOnBvaW50ZXJ9IC5pbWFnZV9ib3ggeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjdweDsgfSAuaW1hZ2VfYm94IGltZ3sgYm9yZGVyOjFweCBzb2xpZCAjZWVlOyB9ICNjb250YWluZXJGbEIgeyB6LWluZGV4Ojk5OTk5OTk7IH0gLmltYWdlX3JpYmJvbiB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjNweDsgdG9wOi00cHg7IHotaW5kZXg6ODUwOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjExMnB4OyBoZWlnaHQ6MTEycHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmltYWdlX3JpYmJvbiBzcGFuIHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzEwMmI0ZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjI4cHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IHdpZHRoOjE0OHB4OyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOiNmN2Y3Zjc7IGJveC1zaGFkb3c6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MzBweDsgbGVmdDotMzBweDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjZjdmN2Y3OyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2Y3ZjdmNzsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjZjdmN2Y3OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2Y3ZjdmNzsgfSAucmliYm9uLWNvbnRhaW5lciB7IHdpZHRoIDoyMDBweDsgaGVpZ2h0IDoyMDBweDsgb3ZlcmZsb3cgOmhpZGRlbjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IGxlZnQgOjA7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib24geyB6LWluZGV4IDo1NTU7IG1hcmdpbiA6MDsgcGFkZGluZyA6MC41cmVtIDAgIWltcG9ydGFudDsgYm94LXNoYWRvdyA6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IGZvbnQtc2l6ZSA6MXJlbTsgbGluZS1oZWlnaHQgOjEycHg7IHRleHQtYWxpZ24gOmNlbnRlcjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IGxlZnQgOjA7IHRyYW5zZm9ybSA6dHJhbnNsYXRlWCgtMzUlKSB0cmFuc2xhdGVZKDAlKSByb3RhdGUoLTQ1ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbiA6dG9wIHJpZ2h0OyBiYWNrZ3JvdW5kIDp2YXIoLS1jb3JuZXItcmliYm9uLWJnLWNvbG9yKTsgY29sb3IgOnZhcigtLWNvcm5lci1yaWJib24tdGV4dC1jb2xvcik7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlLCAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IGNvbnRlbnQgOiIiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbWFyZ2luIDowIC0xcHg7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGJhY2tncm91bmQgOnZhcigtLWNvcm5lci1yaWJib24tYmctY29sb3IpOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSB7IGxlZnQ6MTAwJTsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IHJpZ2h0OjEwMCU7IH0gLmhlYWRpbmcgeyBtaW4taGVpZ2h0OjM1cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICM4MDgwODA7IGJhY2tncm91bmQ6I2NjY2NjYzsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTBweCA1cHggNXB4IDVweDsgfSAuaGVhZGluZyB0YWJsZXsgd2lkdGg6MjI1cHg7IG1hcmdpbjowIGF1dG87IH0gI3NlYXJjaENvbnRhaW5lciAuaXRlbSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsgYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjQpOyBwYWRkaW5nOjEwcHggaW5oZXJpdDsgbWFyZ2luOjAgMCAwIDA7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IG1pbi1oZWlnaHQ6ODBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAjc2VhcmNoQ29udGFpbmVyIC5pdGVtIGltZyB7ZmxvYXQ6bGVmdDsgd2lkdGg6OTBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlcjozcHggc29saWQgI2ZmZjsgbWFyZ2luOi4zZW0gMTBweDsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCk7IC1tb3otYm94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCk7IH0gI3NlYXJjaENvbnRhaW5lciAuaXRlbSBoMyB7IG1hcmdpbjowIDAgMCAwOyBwYWRkaW5nOjAgMCAwIDA7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojMTExOyBsaW5lLWhlaWdodDoxOHB4OyBtYXJnaW4tdG9wOjVweDsgfSAucHJpY2UsIC5kZXRhaWxzIHsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDsgLW1vei1ib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyLXJhZGl1czo2cHg7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyAtbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC40KTsgYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjdweDsgZmxvYXQ6bGVmdDsgZGlzcGxheTpibG9jazsgfSAucHJpY2VfdXNlZF9sZWZ0LC5wcmljZV91c2VkX3JpZ2h0eyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgYmFja2dyb3VuZC1jb2xvcjojRjJGMkYyOyBoZWlnaHQ6NjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MDsgd2lkdGg6NTAlOyB9IC5zcGVjc191c2VkX2xlZnQgeyBwYWRkaW5nOjhweCAxMHB4OyBjb2xvcjojYWFhYWFhOyB9IC5zcGVjc191c2VkX3JvdzIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGMkYyRjI7IH0gLnNwZWNzX3VzZWRfYWZ0ZXJ7IGJhY2tncm91bmQtY29sb3I6I0YyRjJGMjsgcGFkZGluZy1ib3R0b206MTBweDsgYm9yZGVyLXRvcDoxcHggc29saWQgI2NjY2NjYzsgfSAudXNlZF9kZXRhaWxzX2J0bnsgZGlzcGxheTpibG9jazsgd2lkdGg6MjQwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGJhY2tncm91bmQ6IzAwMDsgbWFyZ2luOjAgYXV0bzsgcGFkZGluZzoxMHB4IDA7IH0gLnVzZWRfZGV0YWlsc19idG4gYXsgY29sb3I6I0ZGRjsgfSAucHJpY2VfdXNlZF9sZWZ0IHNwYW57IGNvbG9yOiNEM0QzRDM7IH0gLnVzZWRfc2VhcmNoX3JlYmF0ZXsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEuMTg4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucmViYXRlX3ByaWNleyBjb2xvcjpyZWQ7IH0gLnVzZWRfc2VhcmNoX3JlYmF0ZV90ZHsgcGFkZGluZzoxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiNlNmU2ZTY7IH0gLnByaWNlIHsgYmFja2dyb3VuZC1jb2xvcjojY2RjZGNkOyBjb2xvcjojMTExOyBmb250LXNpemU6MC43NXJlbSA7IHBhZGRpbmctdG9wOjhweDsgd2lkdGg6MzYlOyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gcHJpY2Vfc2VhcmNoX3VzZWR7IGJhY2tncm91bmQ6I0YyRjJGMjsgaGVpZ2h0OjQwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnVzZWRfb2xkX3ByaWNleyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojYWFhYWFhOyBsaW5lLWhlaWdodDoxMHB4OyB9IC5kZXRhaWxzIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAuMDUsIzAwMDAwMCksY29sb3Itc3RvcCgxLCMzMzMzMzMpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMCcsZW5kQ29sb3JzdHI9JyMzMzMzMzMnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzOyBtYXJnaW4tcmlnaHQ6MTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLWxlZnQ6NXB4OyBwYWRkaW5nOjhweCAyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4OyB9IC52aWRlb3NfcGljdHVyZXNfYnV0dG9uc19jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOjBweCFpbXBvcnRhbnQ7IH0gLmktY2FtZXJhOmJlZm9yZXsgY29udGVudDoiXGYwM2QiOyBmb250LWZhbWlseToiRm9udCBBd2Vzb21lIDUgUHJvIjsgcGFkZGluZy1yaWdodDo1cHg7IGZvbnQtd2VpZ2h0OjkwMDsgd2lkdGg6MTVweDsgfSAuaS1waG90bzpiZWZvcmUgeyBjb250ZW50OiJcZjAzMCI7IGZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNSBQcm8iOyBwYWRkaW5nLXJpZ2h0OjVweDsgZm9udC13ZWlnaHQ6OTAwOyB3aWR0aDoxNXB4OyB9IC5mdWxsV2lkdGhCdXR0b257IHdpZHRoOjkwJTsgcGFkZGluZzp2YXIoLS1zKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi1sZWZ0OjUlOyBtYXJnaW4tcmlnaHQ6NSU7IGJvcmRlci1yYWRpdXM6M3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZnVsbFdpZHRoQnV0dG9uIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZmIuZnVsbFdpZHRoQnV0dG9ueyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojM2E1ODk4OyBjb2xvcjojZmZmOyB9IC5mYi5mdWxsV2lkdGhCdXR0b24gYSB7IGNvbG9yOiNmZmY7IG1hcmdpbi1sZWZ0OjUwcHg7IH0gLmZiIHNwYW4uZmEtc3RhY2t7IGNvbG9yOiMzYTU4OTg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgfSAudGV4dF9zbGlkZSBhIHsgaGVpZ2h0OjE0cHghaW1wb3J0YW50OyB9ICN2ZHBfcHJpY2VfYmxvY2ssI3ZkcF9wcmljZV9ibG9ja191c2VkeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0KTsgYm9yZGVyLWNvbG9yOiNiYmI7IH0gI3ZkcF9wcmljZV9ibG9ja3sgbWluLWhlaWdodDozMHB4OyB9IGRpdiNjb21wbF90YWJsZSBhIHsgY29sb3I6IzMzMzsgfSAuY2hldnJvbi1yaWdodDphZnRlciB7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA1IFBybyI7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXdlaWdodDo5MDA7IHRleHQtZGVjb3JhdGlvbjppbmhlcml0OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MiU7IH0gZnVsbFdpZHRoQnV0dG9uOmJlZm9yZSB7IGZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNSBQcm8iOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6OTAwOyB0ZXh0LWRlY29yYXRpb246aW5oZXJpdDsgcGFkZGluZy1yaWdodDo1cHg7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyBwYWRkaW5nLXRvcDoycHg7IH0gI3NvY2lhbF9tZWRpYV9pY29uc19kaXZ7IG1hcmdpbi10b3A6MTVweDsgfSAjc29jaWFsX21lZGlhX2ljb25zX2RpdiAqICsgKnsgbWFyZ2luLWxlZnQ6MXJlbTsgfSAjc29jaWFsX21lZGlhX2ljb25zX2RpdiAuZmFieyBmb250LXNpemU6MS41cmVtOyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGF7IGNvbG9yOiM4MDgwODA7IH0gLnNvY2lhbCB7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxOXB4OyBoZWlnaHQ6MTlweDsgZmxvYXQ6cmlnaHQ7IGJhY2tncm91bmQ6cmdiKDI1NSwyNTUsMjU1KTsgYm9yZGVyOjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpOyBib3gtc2hhZG93OjAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMTUpLCBpbnNldCAwIDAgNTBweCByZ2JhKDAsMCwwLDAuMSk7IGJvcmRlci1yYWRpdXM6MTAwcHg7IG1hcmdpbjowIDEwcHggMHB4IDA7IHBhZGRpbmc6OXB4OyB9IC5zb2NpYWwtc2hhcmUgeyB3aWR0aDoxOXB4OyBoZWlnaHQ6MTlweDsgYmFja2dyb3VuZDpyZ2IoMjU1LDI1NSwyNTUpOyBib3JkZXItcmFkaXVzOjEwMHB4OyBtYXJnaW46MCAxMHB4IDBweCAwOyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGEuc29jaWFsIC5mYWJ7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gLnNvY2lhbCBpeyBmb250LXNpemU6MS4yNXJlbSA7IH0gLmdvb2dsZS1wbHVzOmhvdmVye2JhY2tncm91bmQ6I0RENEIzOTtjb2xvcjojRkZGIWltcG9ydGFudDt9IC5mYWNlYm9vazpob3ZlcntiYWNrZ3JvdW5kOiMzYjU5OTg7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAudHdpdHRlcjpob3ZlcntiYWNrZ3JvdW5kOiMwMGFjZWU7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAucGludGVyZXN0OmhvdmVye2JhY2tncm91bmQ6I2M4MjMyYztjb2xvcjojRkZGIWltcG9ydGFudDt9IC5saW5rZWRpbjpob3ZlcntiYWNrZ3JvdW5kOiMwZTc2YTg7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAuc2t5cGU6aG92ZXJ7YmFja2dyb3VuZDojMDBhZmYwO2NvbG9yOiNGRkYhaW1wb3J0YW50O30gLnlvdXR1YmU6aG92ZXJ7YmFja2dyb3VuZDojYzQzMDJiO2NvbG9yOiNGRkYhaW1wb3J0YW50O30gLnR1bWJscjpob3ZlcntiYWNrZ3JvdW5kOiMzNDUyNmY7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAuZGV0YWlscyBhIHsgY29sb3I6I2ZmZjsgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnBhZ2luYXRpb24ge2NsZWFyOmJvdGg7IHBhZGRpbmc6NXB4OyBwYWRkaW5nLWxlZnQ6MTAwcHg7fSAucGFnaW5hdGlvbiBhLCAucGFnaW5hdGlvbiBhLnNlbGVjdGVkIHsgZGlzcGxheTpibG9jazsgcGFkZGluZzo1cHggN3B4OyBwYWRkaW5nLXRvcDo4cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyBmbG9hdDpsZWZ0OyB3aWR0aDoxM3B4OyBtYXJnaW46NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgfSAucGFnaW5hdGlvbiBhIHtiYWNrZ3JvdW5kOiM2NjYgO30gLnBhZ2luYXRpb24gYS5zZWxlY3RlZCB7YmFja2dyb3VuZDojMjIyIDt9IC5wYWdlbm81e3dpZHRoOjEwMCU7bWFyZ2luOjMwcHggMCAyMHB4IDBweDsgcGFkZGluZzowOyBmbG9hdDpsZWZ0fSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzMzMzsgfSAucGFnZW5vMntoZWlnaHQ6MjRweDsgfSAucGFnZW5vMiB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLnBhZ2VubzIgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTppbmxpbmU7fSAucGFnZW5vMiB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojYjNiNGI1OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6IzI4MjgyODsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5wYWdlbm8yIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gI3BhZ2VEaXYgYSB7IGNvbG9yOiNmZmY7IH0gI3NlYXJjaF91c2VkX2ZpbHRlci1ib3gsLmZpbHRlci1hZGp7IGJhY2tncm91bmQ6IzgwODA4MDsgY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNzZWFyY2hfdXNlZF9maWx0ZXItYm94eyBwYWRkaW5nOjE1cHggNXB4OyB9IC5maWx0ZXItYWRqeyBwYWRkaW5nOjVweCA1cHg7IH0gI3NlYXJjaF91c2VkX2ZpbHRlci1ib3ggLmZhLCAuZmlsdGVyLWFkaiAuZmF7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbnsgbWFyZ2luLXRvcDotMTFweCFpbXBvcnRhbnQ7IH0gLnVpLWFjY29yZGlvbi1jb250ZW50eyBib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50OyBib3JkZXI6bm9uZSFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gI2NpdHlUaXRsZXsgY29sb3I6IzY2NjY2NjsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBkaXNwbGF5OmJsb2NrOyB9IC50aXRsZUluZm97IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgfSAudGl0bGVDYXJ7IGZvbnQtc2l6ZToxLjM3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBmb250LXdlaWdodDpib2xkIWltcG9ydGFudDsgfSAuc2VhcmNocmVzdWx0IGgyLCAjU2VhcmNoVGl0bGUgeyBjb2xvcjojMzMzOyBmb250LXNpemU6MS41NjNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbjowIDAgMCAwOyBwYWRkaW5nOjI1cHggMCAxMHB4IDE1cHg7IGNsZWFyOmJvdGg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubmV3LWl0ZW0geyBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7IHBhZGRpbmc6MCA7IG1hcmdpbjowIDAgMCAwOyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyBmb250LXNpemU6MC44NzVyZW0gOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IH0gLm5ldy1pdGVtOmxhc3Qtb2YtdHlwZXsgYm9yZGVyLWJvdHRvbTpub25lOyB9IC5uZXdfcHJpY2VfYmxvY2t7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZmxvYXQ6bGVmdDsgY2xlYXI6Ym90aDsgbWFyZ2luLXRvcDotNXB4OyB9IC5uZXdfbWFrZV9uYW1leyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi1ib3R0b206LTNweDsgfSAubmV3LWl0ZW0gLnRodW1iIHsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjQwJTsgbWFyZ2luOi4zZW0gMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5uZXdjYXJfYmxvY2tfZGVzYyBheyBjb2xvcjojMzMzMzMzOyB9IC5uZXdfbW9kZWxfbmFtZXsgZm9udC1zaXplOjEuMTI1cmVtIDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubmV3X3llYXJ7IGZsb2F0OmxlZnQ7IH0gLm5ldy1pdGVtIC50aHVtYiBpbWd7IG1heC13aWR0aDoxMDAlOyBib3JkZXI6MDsgfSAubmV3Y2FyX2Jsb2NrX2Rlc2MgeyBtYXJnaW4tdG9wOjEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjIwcHg7IHdpZHRoOjUwJTsgcGFkZGluZy1sZWZ0OjI1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMzMzM7IH0gbmV3Y2FyX2Jsb2NrIGgzeyB9IC5uZXctaXRlbSBoMyB7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgd2lkdGg6OTUlOyB9IC5uZXctaXRlbSAuYXJyb3cgeyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNDcsMjQ3LDI0Nyk7IGJvcmRlci1yYWRpdXM6MTRweDsgd2lkdGg6MTVweDsgbWFyZ2luOjMwcHggNXB4IDEwcHggMTBweDsgfSAubmV3LWRldGFpbHMgaDEsIC5uZXctZGV0YWlscyBoMiAsLnVzZWRfc2VhcmNoX2l0ZW0gaDIsIC51c2VkLWRldGFpbHMgaDEsIC5uZXctZGV0YWlscyBzcGFuLmgyLWFsdCB7IGNvbG9yOiMxMTE7IGNsZWFyOmJvdGg7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nLWxlZnQ6MjBweDsgbGluZS1oZWlnaHQ6MjFweDsgbWFyZ2luLWxlZnQ6MTVweDsgbWFyZ2luLXJpZ2h0OjE1cHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAubmV3LWRldGFpbHMgLnRib3JkZXIgeyBwYWRkaW5nLXRvcDoxMHB4OyBib3JkZXItdG9wOjFweCBzb2xpZCAjZTdlN2U3OyB9IC5uZXctZGV0YWlscyBoMSAubWFrZU1vZGVsWWVhciwgLnVzZWRfc2VhcmNoX2l0ZW0gaDIgLm1ha2VNb2RlbFllYXIsIC51c2VkLWRldGFpbHMgaDEgLm1ha2VNb2RlbFllYXJ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLm5ldy1kZXRhaWxzIGgxIC52ZXJzaW9uRnVsbCwgLnVzZWRfc2VhcmNoX2l0ZW0gaDIgLnZlcnNpb25GdWxsLCAudXNlZC1kZXRhaWxzIGgxIC52ZXJzaW9uRnVsbHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MXJlbSA7IG92ZXJmbG93LXdyYXA6YW55d2hlcmU7IH0gLm5ldy1kZXRhaWxzIGgxIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUsIC51c2VkX3NlYXJjaF9pdGVtIGgyIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUsIC51c2VkLWRldGFpbHMgaDEgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuOTM4cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAuZnVsbFdpZHRoQnV0dG9uIGl7IHBhZGRpbmctcmlnaHQ6NXB4OyBtaW4td2lkdGg6MThweDsgfSAudXNlZC1kZXRhaWxzIGgxIHNwYW4uZmEtY2hldnJvbi1yaWdodHsgbWluLXdpZHRoOjEuNXJlbTsgbWluLWhlaWdodDoxLjVyZW07IGZvbnQtc2l6ZToxcmVtOyBwYWRkaW5nOjA7IGJvcmRlci1yYWRpdXM6MXJlbTsgbWFyZ2luOjAgNXB4IDAgMDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLm5ldy1kZXRhaWxzICNjYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodCwgLnVzZWRfc2VhcmNoX2l0ZW0gI2NhclRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0LCAudXNlZC1kZXRhaWxzIGgxIC5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjEzcHg7IHdpZHRoOjE0cHg7IGhlaWdodDoxN3B4OyBwYWRkaW5nLXRvcDozcHg7IHBhZGRpbmctbGVmdDo2cHg7IG1hcmdpbi1sZWZ0Oi0yOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjE0cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBjb2xvcjojMTAyYjRlOyB9ICNTZWFyY2hUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyM3B4ICFpbXBvcnRhbnQ7IGhlaWdodDoyOXB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctdG9wOjNweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MTFweCAhaW1wb3J0YW50OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICMxMDJiNGU7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgY29sb3I6IzEwMmI0ZSA7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5mb290ZXJfZGlzY2xhbWVyIGF7IGNvbG9yOiM2NjY2NjYgfSAubmV3Y2FyX2Jsb2NrX2Rlc2MgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MTBweDsgd2lkdGg6MTJweDsgaGVpZ2h0OjE0cHg7IHBhZGRpbmctdG9wOjJweDsgcGFkZGluZy1sZWZ0OjRweDsgbWFyZ2luLWxlZnQ6LTI4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTRweDsgZm9udC1zaXplOjAuODEzcmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjMTAyYjRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IGNvbG9yOiMxMDJiNGUgOyB9IC5uZXctZGV0YWlscyAjbWFpbkNvbXBhcmVWaWV3IGgyLCAubmV3LWRldGFpbHMgI21haW5Db21wYXJlVmlldyBzcGFuLmgyLWFsdCwgLm5ldy1kZXRhaWxzIC5icm9jaHVyZS1pbWctYnRuIHNwYW4uaDItYWx0LCBoMi5icm9jaHVyZS1pbWctdGl0bGUgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBtYXJnaW46MCAwIDAgMDsgcGFkZGluZzo3cHggMCA3cHggMTBweDsgY2xlYXI6Ym90aDsgfSAubmV3LWRldGFpbHMgI21haW5Db21wYXJlVmlldyBzcGFuLmgyLWFsdCwgLm5ldy1kZXRhaWxzIC5icm9jaHVyZS1pbWctYnRuIHNwYW4uaDItYWx0IHsgZGlzcGxheTpibG9jazsgfSAubmV3LWRldGFpbHMgPiBwIHtwYWRkaW5nOjdweCAxMHB4O30gLm90aGVyTGlua3MgeyBtYXJnaW46MzBweCAwIDE1cHg7IHBhZGRpbmc6MCAxNXB4OyB9IC5vdGhlckxpbmtzIGEgeyBkaXNwbGF5Omxpc3QtaXRlbTsgZm9udC1zaXplOjEuMWVtOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsgfSAub3RoZXJMaW5rcyBhICsgYSB7IG1hcmdpbi10b3A6MTBweDsgfSAucmFpdGluZy1kZXRhaWxzIGgxeyBjb2xvcjojMTExOyBmb250LXNpemU6MS4zZW07IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnJhaXRpbmctZGV0YWlscyAuYm94Ml90ZXh0eyB0ZXh0LWFsaWduOmp1c3RpZnk7IHBhZGRpbmc6MCA1cHg7IH0gLnBvc2l0aXZlUmF0aW5nVHh0e3BhZGRpbmc6MTBweDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7dGV4dC10cmFuc2Zvcm06bm9uZTt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBwIHtmb250LXNpemU6MS4wNjNyZW0gOyB0ZXh0LWFsaWduOmp1c3RpZnk7fSAucGFnZV9uYW1lMnt0ZXh0LWFsaWduOmNlbnRlcjt9IC5vdXJ0ZWFtIGEgeyBjb2xvcjojMzMzMzMzOyB9ICNzZWFyY2hfdXNlZF9maWx0ZXJ7IGJvcmRlcjowOyBib3JkZXItcmFkaXVzOnVuc2V0OyBmb250LXdlaWdodDpib2xkOyB9ICN1c2VkT3B0aW9ucyAubGlzdGl0ZW06YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDBjIjsgZm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA1IFBybyI7IGZvbnQtd2VpZ2h0OjkwMDsgcGFkZGluZy1yaWdodDo1cHg7IHdpZHRoOjE1cHg7IGZsb2F0OnJpZ2h0OyB9IC5saXN0aXRlbSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsgcGFkZGluZzo1cHggMDsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSAubGlzdGl0ZW0gaW1nIHt3aWR0aDoxMDAlICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDt9IC5saXN0aXRlbSBzcGFuIHtkaXNwbGF5OmlubGluZS1ibG9jazt9IC5saXN0aXRlbSAubGlzdGRlc2Mge2Zsb2F0OmxlZnQ7IHdpZHRoOjUwJTsgbWFyZ2luLWxlZnQ6NXB4O30gLmxpc3RpdGVtIC5saXN0dmFsIHtmbG9hdDpyaWdodDt3aWR0aDo0NSU7IHRleHQtYWxpZ246cmlnaHQ7bWFyZ2luLXJpZ2h0OjVweDt9IC5iaWcge3dpZHRoOjk1JTsgY2xlYXI6Ym90aDsgbWFyZ2luOjEwcHggYXV0bzsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjQwcHg7fSAucHJpY2V0ZXh0IHtjb2xvcjojMTExOyBmb250LXNpemU6MXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbjoxMHB4IDAgMCAwOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0fSAucHJpbnQsIC5saWtlIHtmbG9hdDpyaWdodDsgd2lkdGg6NjBweDtmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246cmlnaHQ7IG1hcmdpbi10b3A6MTBweDt9IC5vbGQtZGV0YWlscyB0YWJsZXsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9ICNzcGVjVGl0bGV7IGJvcmRlci10b3A6MXB4IHNvbGlkICNhYWFhYWE7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNhYWFhYWE7IHBhZGRpbmctdG9wOjEwcHg7IHBhZGRpbmctYm90dG9tOjEwcHg7IHBhZGRpbmctbGVmdDoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IG1hcmdpbi10b3A6MjVweDsgfSAub2xkLWRldGFpbHMgdGFibGUgdHIgdGR7IHBhZGRpbmc6NXB4IDBweCA1cHggMTBweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U2ZTZlNjsgfSAub2xkLWRldGFpbHMgdWx7IGxpc3Qtc3R5bGU6bm9uZTsgfSAub2xkLWRldGFpbHMgdGQgaS5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjEzcHg7IHdpZHRoOjEycHg7IGhlaWdodDoxNHB4OyBwYWRkaW5nLXRvcDozcHg7IHBhZGRpbmctbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbWFyZ2luOjBweDsgYm9yZGVyOjFweCBzb2xpZCAjMTAyYjRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IGNvbG9yOiMxMDJiNGUgOyB9IC5vbGQtZGV0YWlscyB0cjpudGgtY2hpbGQoZXZlbikgeyBiYWNrZ3JvdW5kOiNlZWU7IH0gLm90aGVyQkd7IGJhY2tncm91bmQ6I2ZmZmZmZiAhaW1wb3J0YW50OyB9IC5iZ05vbmV7IGJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50OyB9IC50ZXh0Q29sb3J7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgfSAudGV4dENvbG9yVXNlZFNSUE1vYmlsZXsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyB9IC50ZXh0X3NsaWRlIGEgPiBieyBmbG9hdDpsZWZ0IWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDsgbWFyZ2luOjBweCFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB0b3A6LTNweCFpbXBvcnRhbnQ7IHdpZHRoOjIwMHB4IWltcG9ydGFudDsgbGVmdDoycHg7IH0gLmdyYXliZyB7IG1hcmdpbjoxMHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgY2xlYXI6Ym90aDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojY2ZjZmNmIHVybCgvaW1hZ2VzL2dyYXliZy5wbmcpIHJlcGVhdC14IDAgMDsgcGFkZGluZzowIDEwcHg7IGhlaWdodDo1MHB4OyB9IC50ZXh0MSwgdGV4dDIsIHBpYyB7bWFyZ2luOjAgMCAwIDA7IGhlaWdodDo1MHB4OyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjAgMTBweCAwIDEwcHg7IGxpbmUtaGVpZ2h0OjUwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7fSAudGV4dDEge2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjYpO30gLnBpYyB7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4zKTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNik7fSAudGV4dDIge2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMyk7fSAucHJvbW9pbWFnZSB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTEwcHg7IG1hcmdpbi10b3A6N3B4O30gLnByb21vZGV0YWlsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxNzBweDt9IC5wcm9tb2RldGFpbCBoMiB7Zm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbjotMTBweCAwIDAgMDsgcGFkZGluZzowIDAgMCAwfSAucHJvbW8tY2FyZCB7IG1hcmdpbjowIDE1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo4cHg7IGRpc3BsYXk6YmxvY2s7IGJvcmRlcjoxcHggc29saWQgI2M4YzhjODsgcGFkZGluZzozcHg7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjBweCAwcHggMTBweCAycHggI2M4YzhjODsgfSAucHJvbW8tY2FyZCAucHJvbW8taW1hZ2UgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucHJvbW8tY2FyZCAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS4zMTNyZW0gOyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo2MDA7IGNvbG9yOiMzMzM7IG1hcmdpbi10b3A6OHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucHJvbW8taW1hZ2UgaW1nIHsgd2lkdGg6MTAwJTsgfSAucHJvbW8tY2FyZCAucHJvbW8tZGV0YWlscy13cmFwcGVyIHsgfSAucHJvbW8tY2FwdGlvbiB7IGNvbG9yOiMzMzMzMzM7IH0gLnByb21vLWNhcHRpb246bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAucHJvbW8tY2FwdGlvbiAucHJvbW8tdGl0bGUgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnByb21vLW9mZmVyIC5wcm9tby1ib2R5IC5wcm9tby10aXRsZSB7IG1pbi1oZWlnaHQ6MDsgfSAucHJvbW8tc3ViY2FwdGlvbiB7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW07IH0gLnByb21vLWRldGFpbHMtYnRuIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAuMDUsIzAwMDAwMCksY29sb3Itc3RvcCgxLCMzMzMzMzMpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMCcsZW5kQ29sb3JzdHI9JyMzMzMzMzMnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzOyBmb250LXNpemU6MC45MzhyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo2cHg7IHBhZGRpbmc6N3B4OyB9IC5wcm9tby1jYXJkIC5wcm9tby1kZXRhaWxzLWJ0biBhIHsgY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5zZXJ2aWNlLXNlY3Rpb24ge2NsZWFyOmJvdGg7IG1hcmdpbjoxMHB4OyBkaXNwbGF5OmJsb2NrOyBtaW4taGVpZ2h0OjgwcHg7fSAuc2VydmljZS1zZWN0aW9uIGltZyB7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206N3B4OyB9IC5zZXJ2aWNlLXNlY3Rpb24gLmRldGFpbHMgeyBiYWNrZ3JvdW5kOnJnYig2OCw2OCw2OCk7IHdpZHRoOjE2NXB4OyBmbG9hdDpub25lOyBmb250LXNpemU6MC43NXJlbSA7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDowcHg7IH0gLnNlcnZpY2VfZGVzY3sgfSAuc2VydmljZV9tYWluX2Rlc2MgeyBtYXJnaW46MTBweDsgfSAuc2VydmljZV9tYWluX2Rlc2MgYXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuc3RlcHMge30gLnN0ZXBzIHVsIHt9IC5zdGVwcyB1bCBsaXsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luOjAgMTBweCAwIDEwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjcwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgY3Vyc29yOmRlZmF1bHR9IC5zdGVwcyB1bCBsaSAuYWN0aXZlLCAuc3RlcHMgdWwgbGkgLmluYWN0aXZlIHsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7IC1tb3otYm94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpOyBib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7IC13ZWJraXQtYm9yZGVyLXJhZGl1czoyNXB4OyAtbW96LWJvcmRlci1yYWRpdXM6MjVweDsgYm9yZGVyLXJhZGl1czoyNXB4OyB3aWR0aDoyNXB4OyBoZWlnaHQ6MjVweDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDotMnB4OyBwYWRkaW5nLXJpZ2h0OjFweDsgbGluZS1oZWlnaHQ6MjVweDsgfSAuc3RlcHMgdWwgbGkgLmFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvd2hpdGUucG5nKSByZXBlYXQteDsgY29sb3I6IzAwMDAwMDt9IC5zdGVwcyB1bCBsaSAuaW5hY3RpdmUge2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxhY2sucG5nKSByZXBlYXQteDsgY29sb3I6I2ZmZjsgfSAuZm9ybSB7bWFyZ2luOjEwcHg7fSAuZm9ybXNfYm94MjIgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MCAwIDEwcHggMDsgfSAudm9pIHsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbCBpbnB1dCB7IG1hcmdpbi10b3A6MTBweDsgfSBzcGFuLmFzdGsgeyBjb2xvcjojRkYwMTAxOyBmb250LXNpemU6MC42ODhyZW07IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6M3B4OyB9IC5jcmVkaXQtY29uc2VudF9fY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBwYWRkaW5nOjAgMC43cmVtOyBmb250LXNpemU6MC44cmVtOyBjb2xvcjojMjQyNDI0OyB9IC5jcmVkaXQtY29uc2VudF9fY29udGFpbmVyIGRpdjpub3QoOmZpcnN0LW9mLXR5cGUpIHsgbWFyZ2luLWxlZnQ6MC43cmVtOyB9IC5maWVsZCB7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAubGFiZWwge3BhZGRpbmc6MTBweCAwIDAgMDt9IC5kZWFsZXJhZGRyZXNzLCAuZGVhbGVycGhvbmUsIC5kZWFsZXJlbWFpbCB7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjMwcHg7IGJhY2tncm91bmQtcG9zaXRpb246NXB4IDEzcHg7IGJhY2tncm91bmQtY29sb3I6I2RiZGJkYjsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IG1hcmdpbjoxMHB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDQwcHg7IGZvbnQtd2VpZ2h0Om5vcm1hbCB9IC5kZWFsZXJhZGRyZXNzLCAuZGVhbGVycGhvbmUsIC5kZWFsZXJlbWFpbCB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLmRlYWxlcmFkZHJlc3M6YmVmb3JlIHsgY29udGVudDoiXGYwMTUiOyB9IC5kZWFsZXJwaG9uZTpiZWZvcmUgeyBjb250ZW50OiJcZjA5NSI7IG1hcmdpbi10b3A6OHB4OyB9IC5kZWFsZXJlbWFpbDpiZWZvcmUgeyBjb250ZW50OiJcZjBlMCI7IH0gLmRlYWxlcmFkZHJlc3M6YmVmb3JlLCAuZGVhbGVycGhvbmU6YmVmb3JlLCAuZGVhbGVyZW1haWw6YmVmb3JleyBmb250LWZhbWlseToiRm9udCBBd2Vzb21lIDUgUHJvIjsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0OjkwMDsgdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7IGNvbG9yOiMzMzM7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjIxcHg7IH0gLmRlYWxlcnBob25lICNhY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiwgLm9wZW5faG91cnNfY29udGFpbmVyIC51aS1hY2NvcmRpb24taGVhZGVyLWljb24geyBkaXNwbGF5Om5vbmU7IH0gLm9wZW5faG91cnNfY29udGFpbmVyIC5tYXBfb3Blbl9ob3Vyc19leHBhbmQgeyBjb2xvcjojMDAwMDAwOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgLnZpc2l0Q29udGFjdEJ1dHRvbiwgLm9wZW5faG91cnNfY29udGFpbmVyIC52aXNpdENvbnRhY3RCdXR0b257IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjExcHggNXB4IDlweDsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luLXRvcDoxMHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6IzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgfSAuZGVhbGVycGhvbmUgLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWljb25zeyBwYWRkaW5nLWxlZnQ6MDsgfSAuZGVhbGVycGhvbmUgLmZhLWNhbGVuZGFyeyBtYXJnaW4tbGVmdDoxM3B4OyBtYXJnaW4tcmlnaHQ6NXB4OyB9IC5kZWFsZXJwaG9uZSAudWktYWNjb3JkaW9uLWNvbnRlbnQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMhaW1wb3J0YW50OyBib3JkZXI6bm9uZSFpbXBvcnRhbnQ7IH0gLmRlYWxlcnBob25lLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlcnsgcGFkZGluZzo4cHg7IH0gLmgzLm1vYmlsZUJ1dHRvbnsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSAubW9iaWxlQnV0dG9uQ29udGFjdHsgYm9yZGVyLXJhZGl1czo0cHg7IGRpc3BsYXk6YmxvY2s7IGN1cnNvcjpwb2ludGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLXRvcDoycHg7IHBhZGRpbmc6LjVlbSAuNWVtIC41ZW0gLjdlbTsgem9vbToxOyBwYWRkaW5nLWxlZnQ6Mi4yZW07IG91dGxpbmU6MDsgbGluZS1oZWlnaHQ6MS4zOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbGlzdC1zdHlsZTpub25lOyB9IC5tb2JpbGVCdXR0b25Db250YWN0IGl7IG1hcmdpbi1sZWZ0Oi0yMHB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuYmlnZmIge3BhZGRpbmc6MzBweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JpZ2ZiLnBuZykgcmVwZWF0LXggMCAwfSAuYnV0dG9uX2pvYm9mZmVyIHsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6NTBweDsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvaWNvbl9lbXBsb3kucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwcHggMHB4IHJnYigyMzEsIDIzMiwgMjMyKTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWxlZnQ6NDBweDsgfSBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkJBQkE7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNEODAwMEM7IGRpc3BsYXk6bm9uZTsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB6LWluZGV4Ojk5OTk7IH0gLmVtYWlsQm9keSwgLmVtYWlsU3ViamVjdHsgZGlzcGxheTpub25lOyB9IC5maWxlaW5wdXQtYnV0dG9uIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYmxfYmcucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wIHJnYmEoMCwgMCwgMCwgMCk7IH0gLmZpbGVpbnB1dC1idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9idXR0b25fMi5wbmciKSByZXBlYXQteCBzY3JvbGwgbGVmdCB0b3AgcmdiYSgwLCAwLCAwLCAwKTsgfSAuZmlsZWlucHV0LWJ1dHRvbiwgLmZpbGVpbnB1dC1idXR0b246aG92ZXIgeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MzFweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmZpbGVpbnB1dC1idXR0b24gaW5wdXQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IG1hcmdpbjowOyBvcGFjaXR5OjA7IC1tcy1maWx0ZXI6J2FscGhhKG9wYWNpdHk9MCknOyBjdXJzb3I6cG9pbnRlcjsgfSAucGFnZV9uYW1lNXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50O3BhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDtmb250LXdlaWdodDpub3JtYWwgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjdweDsgYm9yZGVyLXJhZGl1czo3cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjdweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjdweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjdweDsgYm9yZGVyLXJhZGl1czo3cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjdweDsgfSAudGV4dGJveDE5MXt3aWR0aDoxOTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjEuMjsgY29sb3I6IzI0MjQyNDsgfSAudGV4dGJveDE5MSBoNHsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzI0MjQyNDsgcGFkZGluZy1ib3R0b206NXB4OyB9IC5tYWluYm94Mjkxe3dpZHRoOjkzJTtoZWlnaHQ6MTEycHg7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlNmU3ZTc7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MTVweDsgcGFkZGluZzoxMHB4IDA7IH0gLnRleHRfYm94MTEgYSB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDoxNXB4OyBwYWRkaW5nOjEwcHggMDsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmp1c3RpZnk7IH0gLnRleHRfYm94MTEgcCBpbWd7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyBwYWRkaW5nOjEwcHggMCFpbXBvcnRhbnQ7IH0gLnByaWNlTm90ZSB7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjg1ZW07IGZvbnQtc3R5bGU6aXRhbGljOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctcmlnaHQ6MTBweDsgbGluZS1oZWlnaHQ6MS4xZW07IG1hcmdpbjoxMHB4IDA7IH0gLnN0YWNrZWREaXNjbGFpbWVyeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjEwcHg7IH0gc3Bhbi5zdGFja2VkRGlzY2xhaW1lcjpiZWZvcmV7IGNvbnRlbnQ6IioqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToxcmVtOyB9ICNtYWluQ29tcGFyZVZpZXd7IG1hcmdpbjowOyB9ICNjb21wbF90YWJsZXsgbWFyZ2luLWJvdHRvbToyMHB4OyB9IC5pZE5hdjEgeyBjb2xvcjojZjlmOWY5OyBmb250LXNpemU6MC43NXJlbSA7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6MjhweDsgbGlzdC1zdHlsZTpvdXRzaWRlIG5vbmUgbm9uZTsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5pZE5hdjEgbGkudG9wIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCAycHggMCAwOyB9IC5pZE5hdjEgbGkudG9wMSB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZmZjsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCAycHggMCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbmsgeyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMCkgdXJsKCIvaW1hZ2VzL2JsX2JnLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOnJnYigyNTUsIDI1NSwgMjU1KTsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAxMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMCkgdXJsKCIvaW1hZ2VzL2JsX2hvdmVyLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOiNmZmY7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rMSB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZlZmVmZTsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAxMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYnV0dG9uX3BvcHVwLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgY29sb3I6I2ZmZjsgfSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluazpob3ZlciB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBjb2xvcjojZmZmOyB9IC50ZXh0MjAgeyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6MjNweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnByb21vY29kZWJveHsgLW1vei1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggI2U4MGQwZDsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggI2U4MGQwZDsgYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICNlODBkMGQ7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLjA1LCAjZmYzMzMzKSwgY29sb3Itc3RvcCgxLCAjREIwMDAwKSk7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmMzMzMyA1JSwgI0RCMDAwMCAxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZjMzMzMgNSUsICNEQjAwMDAgMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzMzMycsIGVuZENvbG9yc3RyPScjREIwMDAwJyxHcmFkaWVudFR5cGU9MCk7IGJhY2tncm91bmQtY29sb3I6I2ZmMzMzMzsgYm9yZGVyOjFweCBzb2xpZCAjZjUxYTFhOyBjb2xvcjojRkZGRkZGIWltcG9ydGFudDsgZm9udC1zaXplOjAuOTM4cmVtIDsgcGFkZGluZzoxMHB4IDEwcHggMDsgbWFyZ2luOjA7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWxlZnQ6MzhweDsgbWluLXdpZHRoOjEwMHB4OyBib3JkZXItcmFkaXVzOjZweDsgYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBmb250LXdlaWdodDpib2xkOyBmbG9hdDpsZWZ0OyBkaXNwbGF5OmJsb2NrOyBib3JkZXI6MDsgd2lkdGg6MTAwcHg7IH0gLmRldGFpbFByaWNlV2l0aEJ1dHRvbiB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWxlZnQ6NXB4OyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1hcmdpbi1ib3R0b206MTBweDsgbWFyZ2luLXJpZ2h0OjVweDsgd2lkdGg6NDklOyBtYXgtd2lkdGg6MTk1cHg7IG1pbi13aWR0aDoxMjBweDsgfSAuZGV0YWlsUHJpY2VXaXRoQnV0dG9uID4gLmRldGFpbFByaWNlQmxvY2sgeyBtYXJnaW4tbGVmdDowOyBtYXJnaW4tYm90dG9tOjlweDsgfSAuZGV0YWlsUHJpY2VXaXRoQnV0dG9uID4gLnByb21vY29kZWJveCB7IG1hcmdpbjowcHg7IHdpZHRoOjEwMCU7IHBhZGRpbmc6NnB4IDBweCAzcHggMHB4OyBtYXJnaW4tdG9wOjlweDsgfSAuZGV0YWlsLXByaWNlLXByb21vIGgyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9idXR0b25fcHJvbW90aW9uLnBuZyk7IGNvbG9yOiNGRkY7IGJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjVweCAwOyB9IC5kZXRhaWwtcHJpY2UtcHJvbW8gYSB7IGNvbG9yOiNGRkY7IH0gLmRldGFpbFByaWNlQmxvY2t7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tbGVmdDo1cHg7IHBhZGRpbmc6MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JleTsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdpZHRoOjEwMCU7IG1heC13aWR0aDoxOTVweDsgfSAubmV3LWRldGFpbHMgLmRldGFpbFByaWNlV2l0aEJ1dHRvbiA+IC5kZXRhaWxQcmljZUJsb2NrIHsgbWFyZ2luLWJvdHRvbTowcHg7IH0gQG1lZGlhKG1heC13aWR0aDozMDdweCkgeyAuZGV0YWlsUHJpY2VCbG9jayB7IG1heC13aWR0aDoxNzVweDsgfSB9IC5kZXRhaWxQcmljZUJsb2NrICNyZWJhdGV7IG1hcmdpbjowOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czowIDAgNXB4IDVweDsgcGFkZGluZzo0cHggMCAwIDA7IH0gLmRldGFpbFByaWNlQmxvY2sgI2NhclByaWNleyBiYWNrZ3JvdW5kOm5vbmU7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowcHg7IGNvbG9yOiMxMTExMTE7IGhlaWdodDoyNXB4OyB9IC5zY3JhdGNoRGV0YWlsUHJpY2V7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6M3B4OyBsZWZ0Oi0xcHg7IH0gLnByb21vQlROOmhvdmVyLCAucHJvbW9CVE4gYTpob3ZlciwgLmJyb2NodXJlQnRuOmhvdmVyIHsgYmFja2dyb3VuZDojMDI3NmIzIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiFpbXBvcnRhbnQ7IGJvcmRlcjpub25lIWltcG9ydGFudDsgfSBkaXYjbGVhc2VDb21tZW50cyB7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLmRldGFpbFByaWNlQmxvY2sgI2NhclByaWNlRGlzY3sgYmFja2dyb3VuZDpub25lOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MHB4OyBjb2xvcjojRDQwMDAwOyBoZWlnaHQ6MjBweDsgfSAuZGV0YWlsUHJpY2VCbG9jayAjY2FyUHJpY2VQcm9tb3sgYmFja2dyb3VuZDpub25lOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzUElUaXRsZSB7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgbGkgbGFiZWx7IG1hcmdpbi1sZWZ0OjBweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9uc3sgcGFkZGluZzowcHghaW1wb3J0YW50OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGl7IGhlaWdodDoyMHB4IWltcG9ydGFudDsgd2lkdGg6MjYwcHghaW1wb3J0YW50OyBwYWRkaW5nOjAhaW1wb3J0YW50OyBtYXJnaW46MnB4IWltcG9ydGFudDsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgPiBsaXsgcGFkZGluZzoxMHB4IWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTo1cHghaW1wb3J0YW50OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwc3sgdGV4dC1pbmRlbnQ6MCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzIHsgcGFkZGluZy1sZWZ0OjY1cHghaW1wb3J0YW50OyBtYXJnaW4tdG9wOjhweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzbm97IHdpZHRoOjYwcHghaW1wb3J0YW50OyBtYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgaW5wdXR7IHBhZGRpbmcgOjBweCFpbXBvcnRhbnQ7IH0gI215Y2Fyb3VzZWxkaXZ7IG1hcmdpbi10b3A6MTBweDsgfSAjbXljYXJvdXNlbGRpdi5ibHVycnlmaXJzdGltYWdleyBtaW4taGVpZ2h0OnZhcigtLW1vYi1jYXJvdXNlbC1taW4taGVpZ2h0KTsgfSAjbXljYXJvdXNlbGRpdi5ibHVycnlmaXJzdGltYWdlIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZ3sgYm9yZGVyOjA7IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bHsgdmlzaWJpbGl0eTp2aXNpYmxlOyBvcGFjaXR5OjE7IHotaW5kZXg6MjsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bCAucGxhY2Vob2xkZXJ7IGhlaWdodDoxMDAlOyB3aWR0aDpjYWxjKDEwMHZ3IC0gMjBweCk7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7IG1hcmdpbjowIDEwcHg7IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bC5mYWRlLW91dHsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgLXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDFzLCBvcGFjaXR5IDFzIGxpbmVhcjsgLW1vei10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDFzLCBvcGFjaXR5IDFzIGxpbmVhcjsgLW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAxcywgb3BhY2l0eSAxcyBsaW5lYXI7IHRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMXMsIG9wYWNpdHkgMXMgbGluZWFyOyB9IGlucHV0W3R5cGU9cmFkaW9deyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IC1tb3otYm94LXNoYWRvdzogbm9uZSFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6IG5vbmUhaW1wb3J0YW50OyB9IC5sYW5ndWFnZUJhcnsgbWF4LXdpZHRoOjIwMHB4OyB9IC51aS13aWRnZXQtY29udGVudCwgLnVpLXdpZGdldC1oZWFkZXJ7IGJhY2tncm91bmQ6I0YyRjJGMiFpbXBvcnRhbnQ7IH0gLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWNvbnRlbnQgeyBwYWRkaW5nOjEwcHghaW1wb3J0YW50OyB9IC51aS13aWRnZXQtY29udGVudCB7IGJhY2tncm91bmQ6I2U2ZTZlNiFpbXBvcnRhbnQ7IH0gLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpeyBwYWRkaW5nOjFweCAzcHghaW1wb3J0YW50OyB9ICNtYWluRGl2X05ld01vYmlsZUxhbmRpbmdQYWdleyBiYWNrZ3JvdW5kOiNmZmYgdXJsKC9pbWFnZXMvZmluYW5jZS9oZWFkZXItYmctbW9iaWxlLmpwZykgdG9wIGNlbnRlciBuby1yZXBlYXQgfSAuY3JlZGl0X21faGVhZGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmNyZWRpdF9tX2hlYWRlciBpbWcgeyBtYXJnaW46MCBhdXRvOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9IC5jcmVkaXRfbV90ZXh0LXdyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IGxlZnQ6NTAlOyB0b3A6MDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IH0gLmNyZWRpdF9tX3RpbWUgeyBjb2xvcjojOEYwRDIwOyBmb250LXdlaWdodDo1MDA7IH0gLmNyZWRpdF9tX2JveCB7IGNvbG9yOiNmZmZmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbi1sZWZ0OjQwJTsgbWFyZ2luLXRvcDo5JTsgbGluZS1oZWlnaHQ6MTV2dzsgfSAuY3JlZGl0X21fYm94MiB7IG1hcmdpbi1sZWZ0OjQ3JTsgbWFyZ2luLXRvcDo1JTsgZm9udC1zaXplOjUuNXZ3OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6NDUlOyB9IC5jcmVkaXRfbV9ib3ggLmNyZWRpdF9tXzk5IHsgZm9udC1zaXplOjE5dnc7IH0gLmNyZWRpdF9tX2JveCAuY3JlZGl0X21fYXBwcm92ZWQgeyBmb250LXNpemU6OHZ3OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5jcmVkaXRfbV9sb2dveyBwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpyaWdodDtoZWlnaHQ6ODVweDttYXJnaW4tcmlnaHQ6MzBweDtjbGVhcjpib3RoOyB9IC5jcmVkaXRfbV9waG90b3sgaGVpZ2h0OjM2M3B4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ZpbmFuY2UvbW9iaWxlLWZpbmFuY2luZy1pbWcucG5nKSAwIDAgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6MTAwJTsgfSAuY3JlZGl0X21fYXBwcm92YWxfZnJ7IGZsb2F0OnJpZ2h0OyBjbGVhcjpyaWdodDsgd2lkdGg6MTYzcHg7IGhlaWdodDoxMzdweDsgbWFyZ2luOjI1cHggMjBweCAxMHB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZmluYW5jZS9sb2dvLWFwcHJvdmVkLW1vYmlsZV9yZWRfZnIucG5nKSAwIDAgbm8tcmVwZWF0OyB9IC5jcmVkaXRfbV9hcHByb3ZhbF9lbnsgZmxvYXQ6cmlnaHQ7IGNsZWFyOnJpZ2h0OyB3aWR0aDoxNjNweDsgaGVpZ2h0OjEzN3B4OyBtYXJnaW46MjVweCAyMHB4IDEwcHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9maW5hbmNlL2xvZ28tYXBwcm92ZWQtbW9iaWxlX3JlZF9lbi5wbmcpIDAgMCBuby1yZXBlYXQ7IH0gLmNyZWRpdF9tX3N0YXJ0aW5nYXRfd3JhcHBlcnsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXIgIWltcG9ydGFudDtsaW5lLWhlaWdodDoyNHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwMjQwNmY7Y2xlYXI6Ym90aDttYXJnaW4tYm90dG9tOjMwcHg7IH0gLmNyZWRpdF9tX3N0YXJ0aW5nYXQgeyBtYXJnaW4tdG9wOjI2MHB4O2ZvbnQtc2l6ZToxLjQzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQgIWltcG9ydGFudDtsaW5lLWhlaWdodDoyNnB4O2Rpc3BsYXk6YmxvY2s7IH0gLmNyZWRpdF9tX2RlbGl2ZXJ5eyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6bGlnaHRlciAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwMjQwNmY7IH0gLmNyZWRpdF9tX2NhbGx1c193cmFwcGVyeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjYyYWM7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoIzAyNjJhYywjMDEzNzYwKTsgYmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCgjMDI2MmFjLCMwMTM3NjApOyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgjMDI2MmFjLCMwMTM3NjApOyB3aWR0aDoxMDAlOyBtYXJnaW46MCAwIDIwcHggMDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jcmVkaXRfbV9jYWxsdXMsIC5jcmVkaXRfbV9jYWxsdXMgYXsgZGlzcGxheTpibG9jaztoZWlnaHQ6NTVweDt3aWR0aDoxMDAlO2NvbG9yOiNmZmY7IH0gLmNyZWRpdF9jYWxsX3VzXzEgeyBmb250LXNpemU6MC43NXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXIgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MTJweDsgbGluZS1oZWlnaHQ6NTVweDsgbWFyZ2luLWxlZnQ6MTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBib3R0b206NnB4OyB9IC5jcmVkaXRfY2FsbF91c18yIHsgY29udGVudDp1cmwoL2ltYWdlcy9maW5hbmNlL2ljb24tcGhvbmUtd2hpdGUucG5nKTttYXJnaW46MCAxMHB4OyB9IC5jcmVkaXRfY2FsbF91c18zIHsgZm9udC1zaXplOjEuMzc1cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjIycHg7IGxpbmUtaGVpZ2h0OjU1cHg7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5jcmVkaXRfbV9pbm5lciB7IHBhZGRpbmc6MTVweCAxMHB4OyB9IC5jcmVkaXRfbV9zZWVuX2FsbHsgcG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTsgaGVpZ2h0OjQwMHB4OyBtYXJnaW46MCBhdXRvOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ZpbmFuY2UvaGVhZGVyLWNvbmRpdGlvbnMtYmctbV9yZWQucG5nKSB0b3AgY2VudGVyIG5vLXJlcGVhdDsgei1pbmRleDo1OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bHsgcGFkZGluZy10b3A6MjBweDtmb250LXNpemU6MS4xMjVyZW0gOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bCBsaXsgZm9udC1zaXplOjEuMTI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBwYWRkaW5nOjVweDsgYm9yZGVyLXRvcDoxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjIpIHNvbGlkOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bCBsaTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctdG9wOjA7IGJvcmRlci10b3A6bm9uZTsgfSAuY3JlZGl0X21fc2Vlbl9hbGwgcHsgZm9udC1zaXplOjEuOTM4cmVtIDsgbGluZS1oZWlnaHQ6MzFweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgbWFyZ2luOjIwcHggMCAwIDA7IH0gLmNyZWRpdF9tX2Zvcm1fd3JhcHBlcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlci1yaWdodDpub25lOyBjb2xvcjojMDI0MDZmOyBmb250LXdlaWdodDpub3JtYWwgIWltcG9ydGFudDsgYm94LXNpemluZzpib3JkZXItYm94OyB6LWluZGV4OjcwOyBwYWRkaW5nOjIwcHggMTBweCA4MHB4IDVweDsgcG9zaXRpb246cmVsYXRpdmU7IGJvcmRlcjo1cHggc29saWQgIzAyNDA2ZjsgYm9yZGVyLXJhZGl1czoxMHB4OyBiYWNrZ3JvdW5kOiNGRkY7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MjBweDsgfSAuY3JlZGl0X21fYmVmb3JlX2Zvcm17IGZvbnQtc2l6ZToyLjEyNXJlbSA7IGxpbmUtaGVpZ2h0OjM0cHg7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IH0gLmNyZWRpdF9tX2JlZm9yZV9mb3JtIHB7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGxpbmUtaGVpZ2h0OjE5cHg7IG1hcmdpbi10b3A6MTVweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuY3JlZGl0X21fZm9ybV9ib3R0b217IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206LTJweDsgbGVmdDotMnB4OyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHggMnB4IDhweCAycHg7IGJhY2tncm91bmQ6IzAyNDA2ZjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjE2cHg7IH0gLmNyZWRpdF9tX2FmdGVyX2Zvcm17IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgY29sb3I6I2ZmZjsgcGFkZGluZzozNXB4IDA7IGJhY2tncm91bmQ6I2ZmZiB1cmwoL2ltYWdlcy9maW5hbmNlL2ZlYXQtYmdfcmVkLnBuZyk7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBzcGFueyB9IC5jcmVkaXRfbV9mb3JtX2JvdHRvbSBweyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjEuMzsgfSAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMnsgZm9udC1zaXplOjEuMzEzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNXB4OyBtYXJnaW46NXB4IDAgMCAwOyBwYWRkaW5nOjA7IH0gQG1lZGlhKG1heC13aWR0aDo0NTBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMjAlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDIwJTt9IH0gQG1lZGlhKG1heC13aWR0aDo0MDBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMTUlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDE1JTt9IH0gQG1lZGlhKG1heC13aWR0aDozNDBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMTAlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDEwJTt9IH0gLmNyZWRpdF9tXzNzdGVwc3sgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246cmVsYXRpdmU7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luOjAgYXV0bzsgcGFkZGluZy1yaWdodDoxMHB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgbWF4LXdpZHRoOjk2MHB4OyB9IC5jcmVkaXRfbV8zc3RlcHMgaDJ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBtYXJnaW4tdG9wOjA7IHBhZGRpbmctdG9wOjA7IGJvcmRlci10b3A6bm9uZTsgY29sb3I6IzAyNDA2ZjsgfSAuY3JlZGl0X21fM3N0ZXBzIHVseyBsaXN0LXN0eWxlOm5vbmU7IH0gLmNyZWRpdF9tXzNzdGVwcyBsaXsgcGFkZGluZzoyMHB4IDIwcHggMjBweCAxMTNweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBtYXJnaW4tdG9wOjEwcHg7IH0gLmNyZWRpdF9tXzNzdGVwc193cmFwcGVyeyBwYWRkaW5nOjQwcHggMDsgYmFja2dyb3VuZDojZTFlMWUxIHVybCgvaW1hZ2VzL2ZpbmFuY2Uvc3RlcHMtYmcuanBnKSB0b3AgY2VudGVyIG5vLXJlcGVhdDsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsIGxpIGgzeyBmb250LXNpemU6MS4zNzVyZW0gOyBmb250LXdlaWdodDpub3JtYWwgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MjJweDsgY29sb3I6IzAyNDA2ZjsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsIGxpIHB7IGxpbmUtaGVpZ2h0OjIwcHg7IG1hcmdpbjowIDAgMTVweCAwOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxOHB4OyB9IC5jcmVkaXRfbV8zc3RlcHMgdWwgbGk6YWZ0ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgYm90dG9tOjA7IGxlZnQ6MjBweDsgbWFyZ2luOmF1dG8gMDsgY29udGVudDonICc7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjczcHg7IGhlaWdodDo2NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9maW5hbmNlL3N0ZXBzLW1vYmlsZV9yZWQucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsID4gbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTFweCAwOyB9IC5jcmVkaXRfbV8zc3RlcHMgdWwgPiBsaTpudGgtY2hpbGQoMik6YWZ0ZXJ7IGJhY2tncm91bmQtcG9zaXRpb246MCAxcHg7IH0gLmNyZWRpdF9tXzNzdGVwcyB1bCA+IGxpOm50aC1jaGlsZCgzKTphZnRlcnsgYmFja2dyb3VuZC1wb3NpdGlvbjotOTBweCA5cHg7IH0gLmNyZWRpdF9tX2Zvb3Rlcl93cmFwcGVyeyBwYWRkaW5nOjEwcHggMDsgfSAuY3JlZGl0X21fZm9vdGVyeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbjowIGF1dG87IHBhZGRpbmctcmlnaHQ6MTBweDsgcGFkZGluZy1sZWZ0OjEwcHg7IG1heC13aWR0aDo5NjBweDsgfSAuY3JlZGl0X21fZm9vdGVyIGgyIHsgbWFyZ2luOnZhcigtLXM5KSAwIHZhcigtLXMzKSAwOyBsaW5lLWhlaWdodDoxLjc1cmVtOyB9IC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9dGV4dF0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9ZGF0ZV0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9bnVtYmVyXSwgLmNyZWRpdF9tX2Zvcm0gaW5wdXRbdHlwZT1lbWFpbF0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9dGVsXSwgLmNyZWRpdF9tX2Zvcm0gc2VsZWN0eyBoZWlnaHQ6NTBweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyMnB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjBweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBtYXJnaW46MDsgcGFkZGluZzozcHggNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNEQURBREE7IGJvcmRlcjoxcHggI0MyQjNCMyBzb2xpZDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5jcmVkaXRfbV9mb3JtIHRhYmxleyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMTBweDsgfSAuY3JlZGl0X21fZm9ybSAuY3JlZGl0X3JlcXVlc3Rfc3VibWl0eyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS44NzVyZW0gOyBwYWRkaW5nOjVweDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDo2MHB4OyBtYXJnaW46MzBweCAwIDMwcHggMDsgYm94LXNoYWRvdzpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiNjZjE3MWY7IGNvbG9yOiNmZmY7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGJvcmRlci1yYWRpdXM6MTBweDsgfSAuY3JlZGl0X21fZm9ybSAubGFiZWx7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7ICFpbXBvcnRhbnQ7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246bGVmdDsgfSAuY3JlZGl0X21fcmVxdWlyZWR7IGNvbG9yOiNjMDA7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyeyB3aWR0aDoyODBweDsgaGVpZ2h0OjQ5MHB4OyBwYWRkaW5nOjI2cHggMTBweCAxMHB4IDEwcHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgd2lkdGg6MjgwcHg7IGhlaWdodDo0OTBweDsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIgLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9wb3B1cHMvbS9mci9iZXN0UHJpY2VOZXdWZHAucG5nJyk7IH0gLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWNvbG9yOiM0NDQ0NDQ7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAucG9wdXBGb3JtIC5hc3Rlcmlza3sgY29sb3I6I2QwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowOyBmb250LXNpemU6aW5oZXJpdDsgbWFyZ2luOjA7IH0gLnBvcHVwRm9ybXsgei1pbmRleDo1MDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyNzdweDsgaGVpZ2h0OjI0OXB4OyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IHdpZHRoOjI3MHB4OyBwYWRkaW5nOjNweDsgfSAucG9wdXBGb3JtIHRhYmxleyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnBvcHVwRm9ybVRpdGxleyBoZWlnaHQ6MjVweDsgbWFyZ2luOjhweDsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IC5wb3B1cEZvcm1JbnB1dHMgdGQgeyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOnJpZ2h0OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IHBhZGRpbmctYm90dG9tOjNweDsgbGluZS1oZWlnaHQ6MTNweDsgbWluLXdpZHRoOjYwcHg7IH0gLnBvcHVwRm9ybSBpbnB1dHsgd2lkdGg6MTgwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnR7IHdpZHRoOjg1JTsgbWF4LXdpZHRoOjYwMHB4OyBwYWRkaW5nOjEwcHggMTBweDsgei1pbmRleDoxMDAwMDIxOyB9IC5zdHJpa2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zdHJpa2U6OmFmdGVyeyBjb250ZW50OicnOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjQ0UwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MjUlOyB3aWR0aDoxMDAlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpzY3JvbGw7IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lci0xNng5IHsgcGFkZGluZy1ib3R0b206NTYuMjUlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lci00eDMgeyBwYWRkaW5nLWJvdHRvbTo3NSU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyLTEwMCB7IHBhZGRpbmctYm90dG9tOjEwMCU7IHdpZHRoOjEwMCU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyLTEwIHsgcGFkZGluZy1ib3R0b206MTAlOyB3aWR0aDoxMDAlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lciBpZnJhbWUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyIFtjbGFzcyo9ImNyZWRzaWkiXSBpZnJhbWUgeyBwb3NpdGlvbjppbmhlcml0OyB9IC5yZXNwb25zaXZlLWVkaXRvciBpZnJhbWV7IHBvc2l0aW9uOmluaXRpYWw7IH0gLnN1Ym1lbnVJdGVtQ29udGFpbmVyIC5sb2NhdGlvbi1uYW1lcyBhLCAuc3VibWVudUl0ZW1Db250YWluZXIgLmxvY2F0aW9uLW5hbWVzIC50aXRsZSwgLnN1Ym1lbnVJdGVtQ29udGFpbmVyIC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscy1pbmZvIGxpIHsgcGFkZGluZy1sZWZ0OjlweDsgfSAuc3VibWVudUl0ZW1Db250YWluZXIgLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgeyBkaXNwbGF5Om5vbmU7IH0gLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgeyBkaXNwbGF5OmJsb2NrOyB9IC5zdWJtZW51SXRlbUNvbnRhaW5lciAuc3VibWVudUl0ZW1DaGlsZENvbnRhaW5lciAuc3VibWVudUl0ZW1DaGlsZENvbnRhaW5lciB7IGRpc3BsYXk6bm9uZTsgfSAuc3VibWVudUl0ZW1Db250YWluZXIgLmxvY2F0aW9uLW5hbWVzID4gYSB7IGJhY2tncm91bmQtY29sb3I6IzEwMmI0ZTsgfSBsaS5sb2NhdGlvbi1uYW1lcyB7IHRleHQtYWxpZ246bGVmdDsgfSBsaS5sb2NhdGlvbi1uYW1lcy5tb2JpbGUgeyBtYXJnaW4tYm90dG9tOjA7IH0gbGkubG9jYXRpb24tbmFtZXMubW9iaWxlID4gYSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyLXJhZGl1czowOyBib3JkZXI6MXB4IHNvbGlkICNCQkI7IGJvcmRlci1ib3R0b206bm9uZTsgfSAubG9jYXRpb24tZGV0YWlscyB7IGZvbnQtc2l6ZToxcmVtIDsgfSAubG9jYXRpb24tZGV0YWlscy1sb2dvIC50aXRsZSB7IG1hcmdpbi10b3A6OHB4OyB9IC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28gaW1nIHsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaTpub3QoLmRldGFpbHMtaW5mby1saW5rKSB7IGJvcmRlci1sZWZ0Om5vbmU7IGJvcmRlci1yaWdodDpub25lOyBib3JkZXItYm90dG9tOm5vbmU7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaTpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlcjpub25lOyB9ICNkZWZhdWx0VG9wQmFubmVyVGV4dCB7IH0gQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMjBweCkgeyAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToxLjE4OHJlbSAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXNpemU6MS4xODhyZW0gIWltcG9ydGFudDsgfSB9IEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MzIwcHgpIHsgI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSwjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSB7IGZvbnQtc2l6ZToxLjE4OHJlbSAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dCwjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0IHsgZm9udC1zaXplOjEuMDYzcmVtICFpbXBvcnRhbnQ7IH0gfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MTY1cHggIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoxNjVweCAhaW1wb3J0YW50OyB9ICNkZWZhdWx0VG9wQmFubmVyeyBtaW4taGVpZ2h0OmluaXRpYWw7IGhlaWdodDphdXRvOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcCBkaXYuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjoxMHB4IDAgIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXAgeyB0b3A6MCFpbXBvcnRhbnQ7IHBhZGRpbmc6MTVweCA0cHggIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lclRpdGxlIHsgbGluZS1oZWlnaHQ6bm9ybWFsIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lclRleHQgeyB9ICNkZWZhdWx0VG9wQmFubmVyQnRuIHsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBwYWRkaW5nOjRweCAyMHB4IWltcG9ydGFudDsgfSAucHJvbW9CVE4gYXsgYm9yZGVyOm5vbmUhaW1wb3J0YW50OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5wcm9tb0JUTi5pcy1zdGlja3l7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjNyZW07IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuc3BlY2lhbC1zY2hlZHVsZSB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6N3B4IDhweCA3cHggMHB4OyBiYWNrZ3JvdW5kOnJnYig3MiwgNzIsIDczKTsgbWFyZ2luOjEycHggMTBweCAzcHggMTBweDsgfSAjZGVmYXVsdFRvcEJhbm5lciB7IGhlaWdodDphdXRvOyB9IElOUFVUW3R5cGU9InRleHQiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9ImRhdGUiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9ImVtYWlsIl0udmFsaWRpdHktZXJyb25lb3VzLCBJTlBVVFt0eXBlPSJ0ZWwiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9InBhc3N3b3JkIl0udmFsaWRpdHktZXJyb25lb3VzIHsgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gU0VMRUNULnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gVEVYVEFSRUEudmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5TZWxlY3RQb3B1cHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyBwYWRkaW5nOjAuM3JlbSFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6OnBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gLnJldmVhbC1tb2RhbCA6OnBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9IC5yZXZlYWwtbW9kYWwgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gLnJldmVhbC1tb2RhbCA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI2FzUHVyY2hhc2VJbnRlbnQgKnsgYm94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF90aXRsZXsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IGNvbG9yOiMwMDAwMDA7IH0gI3RyYWRlSW5CYXJQb3B1cFNlbGVjdGVkVmVoaWNsZXsgbWFyZ2luLWJvdHRvbToxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6IzAwMDAwMDsgfSAudHJhZGluU2VsZWN0V3sgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTBweDsgfSAudHJhZGluU2VsZWN0QXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnRyYWRpblNlbGVjdEE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAudHJhZGluTml2eyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgfSAudHJhZGluU2VsZWN0eyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICMjVFJBREVJTkpTRUxFQ1RCT1JERVJDT0xPUiMjOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDoyMDBweDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IH0gLnRyYWRpblNlbGVjdDphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIHsgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxMHB4OyBsZWZ0OjEwcHg7IHotaW5kZXg6NDsgd2lkdGg6MTQwcHggIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOjFweDsgdGV4dC1hbGlnbjpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItd2lkdGg6MXB4IDNweCA0cHggMXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgcGFkZGluZy10b3A6MTBweDsgfSBCT0RZLlVzZWRTcnAyTW9iaWxlIC50cmFkZUluQmFyTW9iaWxlQnV0dG9ueyBib3R0b206NnJlbTsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiBpeyBkaXNwbGF5OmlubGluZS1mbGV4OyBib3JkZXItcmFkaXVzOjEwMCU7IHdpZHRoOjJlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBib3JkZXI6MnB4IHNvbGlkICNmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgaGVpZ2h0OjEuNWVtOyBjb2xvcjojMDAwOyBmbG9hdDpsZWZ0OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uLndpdGhUb2FzdGVyIHsgYm90dG9tOjgwcHg7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24gYSB7IGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7IH0gLnRyYWRlSW5CYXJTdGVwMnsgbWFyZ2luOjYwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnRyYWRlSW5CYXJTdGVwMiAudHJhZGVJbkJhclN0ZXAyUXVlc3Rpb257IG1hcmdpbjoyMHB4IDA7IH0gLnRyYWRlSW5CYXJTdGVwMyAudHJhZGVJbkJhclN0ZXAzUXVlc3Rpb257IG1hcmdpbjoyMHB4IDA7IH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGxhYmVseyB3aWR0aDo1MHB4OyBwYWRkaW5nOjA7IG1hcmdpbjo1cHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrIH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGlucHV0eyB3aWR0aDphdXRvICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46NXB4ICFpbXBvcnRhbnQ7IGJvcmRlcjpub25lICFpbXBvcnRhbnQ7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnN7IG1hcmdpbi10b3A6NXB4OyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojYTlhOWE5IWltcG9ydGFudDsgcGFkZGluZzowLjNyZW0haW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1tZW51LnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjExMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVweyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckRlYWxlclN0ZXBNYWtlTW9kZWxZZWFyeyBmb250LXdlaWdodDo3MDA7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIHNwYW57IG1hcmdpbjowIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50OyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3R7IG1pbi1oZWlnaHQ6NDJweDsgbWFyZ2luOjE1cHggMDsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IHVseyBmbG9hdDpsZWZ0OyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgcGFkZGluZzowOyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGl7IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tcmlnaHQ6M3B4OyBsaW5lLWhlaWdodDo0MHB4OyBwYWRkaW5nOjBweCAxNXB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1jb2xvcjojZjBmMGYwOyBjb2xvcjojMDAwMDAwOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGk6aG92ZXJ7IGNvbG9yOiNmN2Y3Zjc7IGJhY2tncm91bmQtY29sb3I6IzEwMmI0ZTsgYm9yZGVyOjFweCBzb2xpZCAjZjdmN2Y3OyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3Qgc3BhbnsgbWFyZ2luLWxlZnQ6MTBweDsgYm9yZGVyLXJhZGl1czoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbG9yOiNmMGYwZjA7IHBhZGRpbmc6MnB4IDEwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IGxpOmhvdmVyIHNwYW57IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgY29sb3I6IzEwMmI0ZTsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IGxpLm1vZGVsbm95ZWFyQnV0dG9uU2VsZWN0ZWR7IGJhY2tncm91bmQtY29sb3I6cmdiKDI0NywyNDcsMjQ3KTsgY29sb3I6cmdiKDE2LDQzLDc4KTsgYm9yZGVyOjFweCBzb2xpZCByZ2IoMTYsNDMsNzgpOyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGkubW9kZWxub3llYXJCdXR0b25TZWxlY3RlZCBzcGFueyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigxNiw0Myw3OCk7IGNvbG9yOnJnYigyNDcsMjQ3LDI0Nyk7IH0gLm11bHRpZm9ybV9mb290ZXIgLm11bHRpZm9ybV9zdGVwMnsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm11bHRpZm9ybV9ib2R5eyBwYWRkaW5nOjMwcHggMTBweDsgfSAubXVsdGlmb3JtX3RleHR7IHBhZGRpbmctYm90dG9tOjE1cHghaW1wb3J0YW50OyB9IC5tdWx0aWZvcm1fYnRuXzJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5yZWJhdGVUYWd7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6NHB4IDdweCA0cHggN3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6Zml0LWNvbnRlbnQ7IGxpbmUtaGVpZ2h0OjE1cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiMwMjc2YjMhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZVRleHR7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmViYXRlVGFnIHNwYW4ucmViYXRlQW1vdW50eyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxcmVtIDsgfSAuZ3JheWJveCAuY2FyLXByaWNlLWRvd24tYXJyb3d7IG1hcmdpbi10b3A6LTI1cHg7IG1hcmdpbi1ib3R0b206MHB4OyBtYXJnaW4tbGVmdDoyMHB4OyBmbG9hdDpsZWZ0OyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo1OyB9IC5ncmF5Ym94IC5jYXItcHJpY2UtZG93bi1hcnJvdy51c2VkeyBtYXJnaW4tbGVmdDo1MHB4OyB9IC5wcm9tb0luZm9XcmFwcGVyeyB3aWR0aDoxMDAlOyBoZWlnaHQ6NjBweDsgYm90dG9tOjA7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgZGlzcGxheTppbmxpbmUtdGFibGU7IG1hcmdpbi10b3A6LTIwcHg7IH0gLmRpdkNhclBheW1lbnRDb250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBjb2xvcjpibGFjazsgfSAucmVzcG9uc2l2ZS1jb250YWluZXIgLmNvbnRlbnQtd3JhcHBlciB7IG1hcmdpbjowIDE1cHg7IH0gLmNhcmZheCB7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jYXJmYXggaW1nIHsgd2lkdGg6MjAwcHg7IHBhZGRpbmctdG9wOjE1cHg7IH0gLmNhcmZheCAuY2FycHJvb2YtYmFkZ2UgPiBESVZ7IG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmNhcmZheCAuY2FycHJvb2YtYmFkZ2UgPiBESVYgSU1HIHsgbWF4LXdpZHRoOm5vbmU7IGhlaWdodDo0MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW46MTBweCAwIDIwcHg7IH0gLmRpdlNlYXJjaE1zZyB7IGZvbnQtc2l6ZTowLjlyZW07IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBib3JkZXItcmFkaXVzOjVweDsgfSAuYnV0dG9uXzEsIC5idXR0b25fMiwgLmJ1dHRvbl8zIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IH0gLmJ1dHRvbl8zLmpzLUNUQS1udW1iZXIgYSA+ICo6Zmlyc3QtY2hpbGR7IG1hcmdpbi1yaWdodDowLjVyZW07IH0gLmJ1dHRvbl8zIGF7IGJhY2tncm91bmQ6IzAwMDsgY29sb3I6I0ZGRjsgfSAuYnV0dG9uXzMgYTpob3ZlciwgLmJ1dHRvbl8zIGE6Zm9jdXN7IGJhY2tncm91bmQ6IzY2NjY2NjsgfSAjcHJvbW9EZXNjIC5ja2VkaXRvcldyYXBwZXIgaWZyYW1lIHsgbWF4LXdpZHRoOjEwMCU7IH0gQk9EWS5Vc2VkU3JwMk1vYmlsZSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS4ycmVtOyBsaW5lLWhlaWdodDoxLjJyZW07IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMTVweCAwOyBkaXNwbGF5OmlubGluZS1mbGV4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdHsgcGFkZGluZzoxMHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbjowOyBkaXNwbGF5OmlubGluZS1mbGV4OyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uIHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoxNnB4OyBoZWlnaHQ6MjBweDsgcGFkZGluZy10b3A6NXB4OyBwYWRkaW5nLWxlZnQ6OHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IG1hcmdpbi1yaWdodDo1cHg7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MHB4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgxLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMXsgbWFyZ2luLXRvcDowcHg7IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjlyZW07IH0gQk9EWS5Vc2VkU3JwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMyl7IGZvbnQtc2l6ZTowLjhyZW07IGNvbG9yOiNiYmI7IHBhZGRpbmctdG9wOjVweDsgfSAuY2FyZmF4Lm1vYmlsZSBkaXZ7IGhlaWdodDphdXRvIWltcG9ydGFudDsgfSAuY2FyZmF4Lm1vYmlsZSBkaXYgYXsgZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IH0gLmNyZWRzaWlNb2JpbGV7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jcmVkc2lpTW9iaWxlIC5jcmVkc2lpLXdpZGdldC1jb250YWluZXJ7IG1heC13aWR0aDoxMDAlIWltcG9ydGFudDsgfSAuYmFubmVyLWZvcm0gLk1haW5Cb3hMYXllciB7IHdpZHRoOmluaXRpYWw7IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSAuc3BlY3MtaW1hZ2VzLWdyb3VweyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ3JpZC1nYXA6MzBweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBtYXJnaW46MzBweCAxNXB4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgLnNwZWNzLWltYWdlcy1ncm91cCA+IGRpdnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsZXg6MSAxIDQ1JTsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgPiBkaXYgPiBpbWcgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgcGFkZGluZzo1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgLmNlcnQtdGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSAuc3BlY3MtaW1hZ2VzLWdyb3VwIC5jZXJ0LXN1YnRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjojNzc3OyBmb250LXNpemU6MC45NWVtOyBtYXJnaW4tdG9wOjVweDsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgLmNlcnQtaGlnaGxpZ2h0ZWQtdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6I0ZGRjsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuY29tcGFyZVRhYmxlSW1nIHsgaGVpZ2h0OjkwcHg7IG1hcmdpbjowIGF1dG87IGRpc3BsYXk6YmxvY2s7IH0gLmRlYWxlci1pbnNpZGUtY2FsbCBidXR0b257IGRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IH0gLmJyb2NodXJlUG9zdGVyIHsgd2lkdGg6MTc1cHg7IG1hcmdpbjowIGF1dG87IGJvcmRlcjoxcHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo0cHg7IG92ZXJmbG93OmhpZGRlbjsgfSAuYnJvY2h1cmVQb3N0ZXIgaW1neyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgfSAucGh5c2ljYWxBZGRyZXNzQm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNGN0Y2Rjg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC51dmRwLWxvY2F0ZWQtYXQtbXNneyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiM3MDcwNzA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6NXB4OyB9IC51dmRwLWxvY2F0ZWQtZGVhbGVyLW5hbWV7IGZvbnQtc2l6ZToxLjMxM3JlbSA7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6NXB4OyBmb250LXdlaWdodDpib2xkOyB9IC51dmRwLWxvY2F0ZWQtYWRkcmVzc3sgZm9udC1zaXplOjAuNzVyZW0gOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAudXZkcC1sb2NhdGVkLXdlYnNpdGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOnZhcigtLWZzLTEpOyBmb250LXdlaWdodDpib2xkOyB9IC5kcm9wZG93bi1jb250ZW50eyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7IHdpZHRoOjEwMCU7IGJveC1zaGFkb3c6MHB4IDhweCAxNnB4IDBweCByZ2JhKDAsMCwwLDAuMik7IHotaW5kZXg6MTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MTBweCAtMTBweDsgfSAuZHJvcGRvd24tY29udGVudCBheyBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IGJvcmRlcjpub25lOyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgcGFkZGluZzo4cHg7IHRleHQtYWxpZ246bGVmdDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGxpbmUtaGVpZ2h0OjEuNXJlbTsgcGFkZGluZy1sZWZ0OjMwcHg7IH0gLnRlc3Rkcml2ZUljb257IGZvbnQtc2l6ZToxLjM3NXJlbSA7IG1hcmdpbi1yaWdodDoyMHB4OyB9IC5wcmljZURpdnsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nOjAgMjBweCAwIDEwcHg7IGZsZXgtZmxvdzp3cmFwOyB9IC5wcmljZU1zZ0RpdnsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgZGlzcGxheTpibG9jazsgd2lkdGg6NTAlOyB0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudDsgY29sb3I6IzZkNmQ2ZCAhaW1wb3J0YW50OyB9IC5wcmljZURpdlByaWNlLm11bHRpZmVlc3sgZm9udC1zaXplOjFyZW07IGNvbG9yOiM3MDcwNzA7IH0gLnByaWNlRGl2UHJpY2V7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOmJsYWNrOyB9IC5oYXNBdmcgLnByaWNlRGl2UHJpY2V7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLnByaWNlRGlzY2xhaW1lckRpdnsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDplbmQ7IHdpZHRoOjEwMCU7IH0gI3ZkcF9wcmljZV9ibG9jayAucHJpY2VEaXNjbGFpbWVyRGl2eyBwYWRkaW5nOjAgMjBweCAwIDEwcHg7IHdpZHRoOnVuc2V0OyB9IC5wcmljZURpc2NsYWltZXJTcGFueyBmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudDsgY29sb3I6IzZkNmQ2ZCAhaW1wb3J0YW50OyB9IC5wcmljZUJhcnsgYm9yZGVyLXRvcDoxcHggc29saWQgI2I4YjhiODsgbWFyZ2luOjAgMTBweCAwIDU1JTsgfSAuY2FySW5mb3NEaXZ7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjVweCAxJSAwcHggMSU7IH0gLmNhckluZm9QcmljZURpdnsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuNzVyZW0gOyBkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5jYXJJbmZvUHJpY2VEaXYgaXsgbWFyZ2luLXJpZ2h0OjJweCB9IC5jYXJJbmZvS017IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6MjglOyB9IC5jYXJJbmZvTWlkZGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MjclOyB9IC5jYXJJbmZvQ29sb3J7IHRleHQtYWxpZ246cmlnaHQ7IHdpZHRoOjQwJTsgfSAjdmRwdmlkZW97IG1heC13aWR0aDoxMDB2dzsgfSAjdmRwdmlkZW8gPiAqeyBtYXgtd2lkdGg6MTAwJTsgfSAuYmRjdHsgcGFkZGluZzowIDEwcHg7IG1hcmdpbjoyMHB4IDA7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjAuODVyZW07IGNvbG9yOiM2NjY7IH0gLmJkY3QgSDN7IHBhZGRpbmc6MDsgbWFyZ2luOjAgMCA1cHggMDsgZm9udC1zaXplOjFyZW07IH0gLmJkY3QgPiBkaXZ7IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyBib3JkZXItcmFkaXVzOjdweDsgfSAucHJvbW8tYnRuIHsgcGFkZGluZzoxNXB4IDIwcHg7IG1hcmdpbjphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWNvbG9yOiMxMDJiNGU7IGNvbG9yOiMxMDJiNGU7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgYm9yZGVyLXJhZGl1czoyNXB4OyBmb250LXNpemU6MC45cmVtOyB9IC4tdGV4dC11cHBlcmNhc2UsIC4tdXBwZXJjYXNlLCAudGV4dC11cHBlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9ICNkYXJrdG9vbHRpcC1jYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbnsgd2lkdGg6MjAwcHg7IH0KLyoqIC9jc3MvbmV3Y2Fycy5jc3MgKiovCi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyeyBtYXJnaW4tYm90dG9tOjQwcHg7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXI6bGFzdC1jaGlsZHsgbWFyZ2luLWJvdHRvbTowOyB9IEgxLmRlZmF1bHQuaXNTaW5nbGVUaXRsZS5pc0JvdHRvbUJvcmRlcmVkLCAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciBIMnsgYm9yZGVyOjA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhcnNCb3hXcmFwcGVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94eyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjdweDsgbWFyZ2luOjAgMCAyMHB4IDA7IHBhZGRpbmc6MTBweDsgYm9yZGVyOjFweCAjYWFhIHNvbGlkOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5eyBoZWlnaHQ6MTU2cHg7IHdpZHRoOmF1dG87IG1hcmdpbi10b3A6MjBweDsgcGFkZGluZzoyMHB4OyBib3JkZXItY29sb3I6I2VlZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seSBJTUcgeyBoZWlnaHQ6MTAwJTsgd2lkdGg6YXV0bzsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6YWN0aXZlIHsgYm9yZGVyLWNvbG9yOiM2NjY7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBmbG9hdDpsZWZ0OyBvcGFjaXR5OjE7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXJ7IGNsZWFyOmJvdGg7IHdpZHRoOjc1JTsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTpibG9jazsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxLjByZW07IGxpbmUtaGVpZ2h0OjEuMnJlbTsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGNvbG9yOiMwMDAwMDA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxLjRyZW07IGZvbnQtc2l6ZToxLjRyZW07IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBjb2xvcjojMDAwMDAwOyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhclRpdGxlQ29udGFpbmVyIC5kaXZOZXdDYXJTdGFydFByaWNlLCAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciAuZGl2TmV3Q2FyUHJvbW9QcmljZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MXJlbTsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0Om5vcm1hbDsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJJbWFnZUNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOi0xMHB4OyBtaW4taGVpZ2h0OjI1MHB4OyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhckltYWdlQ29udGFpbmVyIEF7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FySW1hZ2VDb250YWluZXIgSU1HeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfSBkaXYuZGl2Q2FyRm9vdGVyQ29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgYm90dG9tOjBweDsgbGVmdDowOyByaWdodDowOyB3aWR0aDoxMDAlOyB9IGRpdi5jYXJQYXltZW50V3JhcHBlcnsgaGVpZ2h0OjZyZW07IH0gLnJlYmF0ZVRhZ3sgcGFkZGluZzo1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjEwcHg7IHJpZ2h0OjEwcHg7IGJhY2tncm91bmQ6IzAyNzZiMyFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo1cHg7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZVRleHR7IGZvbnQtc2l6ZTowLjhyZW07IGxpbmUtaGVpZ2h0OjFyZW07IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZUFtb3VudHsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MXJlbTsgbGluZS1oZWlnaHQ6MS4ycmVtOyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjAgMCA3cHggN3B4OyBwYWRkaW5nOjEwcHggNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciBheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUyeyBmb250LXNpemU6MS4zcmVtOyBjb2xvcjpibGFjazsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTIgc3BhbnsgY29sb3I6IzAyNzZiMzsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTN7IGZvbnQtc2l6ZTowLjlyZW07IGxpbmUtaGVpZ2h0OjFyZW07IGNvbG9yOmdyZXk7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUxeyBmb250LXNpemU6MC45cmVtOyBsaW5lLWhlaWdodDoxcmVtOyBjb2xvcjpncmV5OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckNvbnRhY3RDVEFDb250YWluZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQXsgfSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJUb29sdGlweyBkaXNwbGF5OmlubGluZS10YWJsZTsgcGFkZGluZzowIDEwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjEwJTsgfSAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAucGF5bWVudEluZm9CdWJibGUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTAlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgZm9udC1zaXplOjEuNTYzcmVtIDsgdG9wOjMwJTsgY29sb3I6IzAwMDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS43cmVtOyBsaW5lLWhlaWdodDoxLjdyZW07IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMTBweCAwOyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7IH0gLk5ld1NycDJNb2JpbGUgSDEuZGVmYXVsdCBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0IEkuaWNvbiB7IGJvcmRlci1yYWRpdXM6MzJweDsgd2lkdGg6MzJweDsgaGVpZ2h0OjMycHg7IHBhZGRpbmctdG9wOjA7IHBhZGRpbmctbGVmdDoxMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4xMjVyZW0gOyBtYXJnaW4tcmlnaHQ6NXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGxpbmUtaGVpZ2h0OjMwcHg7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgY29sb3I6IzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxeyBtYXJnaW4tdG9wOjBweDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MHB4OyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgxKXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjEuMXJlbTsgbGluZS1oZWlnaHQ6MS4ycmVtOyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgzKXsgZm9udC1zaXplOjAuOHJlbTsgY29sb3I6I2JiYjsgcGFkZGluZy10b3A6NXB4OyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjRyZW07IGxpbmUtaGVpZ2h0OjEuNHJlbTsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjbGVhcjpib3RoOyBwYWRkaW5nOjIwcHggMDsgbWFyZ2luOjA7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCBJLmljb24geyBib3JkZXItcmFkaXVzOjI4cHg7IHdpZHRoOjI4cHg7IGhlaWdodDoyOHB4OyBwYWRkaW5nLXRvcDowOyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IGxpbmUtaGVpZ2h0OjI2cHg7IG1hcmdpbi1yaWdodDo1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm9yZGVyOjFweCBzb2xpZCAjMTAyYjRlOyBjb2xvcjojMTAyYjRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6MHB4OyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDowcHg7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MXJlbTsgbGluZS1oZWlnaHQ6MXJlbTsgfSAuTmV3U3JwMi5OZXdTcnAyTW9iaWxlIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIgeyBwYWRkaW5nOjEwcHg7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuY2FyX3RleHQgYSB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjEuMTt9IC5jYXJfdGV4dCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAwMDAwMH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgLmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IHBhZGRpbmc6M3B4IDhweDsgYm9yZGVyLXJhZGl1czozcHg7IHdpZHRoOmZpdC1jb250ZW50OyBjb2xvcjojMDAwOyBtYXJnaW4tdG9wOjEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjM7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgLmRpdkNhckluU3RvY2tMaW5rIGF7IGNvbG9yOiMwMDA7IH0gLmRpdkRpc2NsYWltZXJCbG9ja3sgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBib3JkZXItcmFkaXVzOjNweDsgfSAuZGl2RGlzY2xhaW1lckJsb2NrQ29udGVudHsgcGFkZGluZzoxNXB4IDA7IH0gLmRpdkRpc2NsYWltZXJCbG9ja1RpdGxleyBoZWlnaHQ6YXV0bzsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowIDQwcHggMTBweDsgYmFja2dyb3VuZDpub25lOyBtYXJnaW46MDsgfSAuZGl2RGlzY2xhaW1lckJsb2NrVGV4dHsgcGFkZGluZzowIDQwcHg7IGJhY2tncm91bmQ6bm9uZTsgbWFyZ2luOjA7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206MTBweDsgcGFkZGluZy10b3A6MjBweDsgZm9udC1zaXplOjFyZW0gOyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyQ2hlY2ssIC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAucmFkaW9Tb3J0eyBwb3NpdGlvbjphYnNvbHV0ZTsgb3BhY2l0eTowOyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IG92ZXJmbG93OmhpZGRlbjsgY2xpcDpyZWN0KDAgMCAwIDApOyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyQ2hlY2srLmZpbHRlclNwYW4sIC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAucmFkaW9Tb3J0Ky5maWx0ZXJTcGFueyBiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7IGNvbG9yOiMzMzMzMzM7IH0gLmRpdkZpbHRlck91dGVyQm94IHVsIGxpIC5maWx0ZXJDaGVjazpjaGVja2VkKy5maWx0ZXJTcGFuLCAuZGl2RmlsdGVyT3V0ZXJCb3ggdWwgbGkgLnJhZGlvU29ydDpjaGVja2VkKy5maWx0ZXJTcGFueyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjY2NjY7IGNvbG9yOiNGRkY7IH0gLmRpdkZpbHRlck91dGVyQm94IHVsIHsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgY29sdW1uLWdhcDoxMHB4OyByb3ctZ2FwOjVweDsgcGFkZGluZzowOyBtYXJnaW46MDsgYWxpZ24taXRlbXM6c3RyZXRjaDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggdWwgbGl7IGZsZXg6MCAwIGNhbGMoNTAlIC0gNXB4KTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyU3BhbnsgZGlzcGxheTpmbGV4OyBwYWRkaW5nOjdweCAyMHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1cHg7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDo1cHg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLk1haW5Cb3hMYXllciAuZmlsdGVyVG9nZ2xlV3JhcHBlciAuZmlsdGVyVG9nZ2xlQnRuIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MTBweCAyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjM7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjVweDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MXJlbSA7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7IHdpZHRoOjEwMCU7IHRleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDsgfSAuTWFpbkJveExheWVyIC5zZWxlY3RUb2dnbGVXcmFwcGVyeyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBjb2x1bW4tZ2FwOjEwcHg7IHJvdy1nYXA6NXB4OyBwYWRkaW5nOjA7IG1hcmdpbjowOyBhbGlnbi1pdGVtczpzdHJldGNoOyB9IC5NYWluQm94TGF5ZXIgLnNlbGVjdFRvZ2dsZVdyYXBwZXIgLnNlbGVjdEFsbFRvZ2dsZUJ0biwgLk1haW5Cb3hMYXllciAuc2VsZWN0VG9nZ2xlV3JhcHBlciAudW5zZWxlY3RBbGxUb2dnbGVCdG4geyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoxMHB4IDNweDsgYmFja2dyb3VuZC1jb2xvcjojMDI3NmIzOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1cHg7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjFyZW0gOyB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOyB0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7IGZsZXg6MCAwIGNhbGMoNTAlIC0gNXB4KTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kaXZGaWx0ZXJPdXRlckJveCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciB7IG1hcmdpbjowcHggMCA0MHB4IDAhaW1wb3J0YW50OyB9IC5kaXZQcmljZVJhbmdlU2xpZGVyID4gLmRpdlNwYW4uZGl2U3BhbjEyOm5vdCguZGl2RmlsdGVyVGl0bGUpIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmRpdlByaWNlUmFuZ2VTbGlkZXIgLnJhbmdlLXNsaWRlci1sZWZ0LCAuZGl2UHJpY2VSYW5nZVNsaWRlciAucmFuZ2Utc2xpZGVyLXJpZ2h0IHsgd2lkdGg6YXV0bzsgbWluLXdpZHRoOjQwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5kaXZQcmljZVJhbmdlU2xpZGVyIC5yYW5nZS1zbGlkZXIudWktc2xpZGVyIHsgZmxleDoxIDEgYXV0bzsgbWF4LXdpZHRoOjUwMHB4OyB9IC5NYWluQm94TGF5ZXIgLnNpZGVTaWRlYmFyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjMwMHB4OyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3gtc2hhZG93Oi0ycHggMCA4cHggcmdiYSgwLDAsMCwwLjMpOyBwYWRkaW5nOjAgMjBweCAyMHB4IDIwcHg7IHotaW5kZXg6MTAwMDsgb3ZlcmZsb3cteTphdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgbWF4LXdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7IH0gLk1haW5Cb3hMYXllciAuc2lkZVNpZGViYXIub3BlbiB7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOyBkaXNwbGF5OmJsb2NrOyB9IC5NYWluQm94TGF5ZXIgLmNsb3NlQnRuIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoxMHB4OyByaWdodDotMTBweDsgZm9udC1zaXplOjEuNXJlbSA7IGJhY2tncm91bmQ6bm9uZTsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB6LWluZGV4OjExOyB9IC5NYWluQm94TGF5ZXIgLnNpZGVTaWRlYmFyIC5kaXZGaWx0ZXJCb3hUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuMTI1cmVtIDsgcG9zaXRpb246c3RpY2t5OyB0b3A6MDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyB6LWluZGV4OjEwOyBwYWRkaW5nOjEwcHggMCAwIDA7IH0gLk1haW5Cb3hMYXllciAuc2lkZVNpZGViYXIgLnNpZGViYXJIZWFkZXIgeyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHotaW5kZXg6MTAwOyBwYWRkaW5nOjEwcHggMCAwIDA7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfQovKiogL2Nzcy9yZWQuY3NzICoqLwoubWVudSB1bCBsaSBhLCAubWVudSB1bCBsaSBhOmhvdmVyeyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgY29sb3I6I2ZmZmZmZjsgZmlsbDojZmZmZmZmOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NXB4IDAgNXB4IDdweDsgYmFja2dyb3VuZDojMTAyYjRlOyB9IC50b3BuYXYgLm1lbnUgdWwgbGkgYXsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyBmaWxsOiMwMDAwMDA7IH0gLm1lbnUgdWwgbGkgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHggM3B4IDBweCAwcHg7IH0gLm1lbnUgLnByb21vIHsgbWFyZ2luOmluaXRpYWw7IG1pbi1oZWlnaHQ6YXV0bzsgfSAubWVudS5idXJnZXItYnRuLWNvbnRhaW5lciB1bCBsaSBhLCAubWVudS5idXJnZXItYnRuLWNvbnRhaW5lciB1bCBsaSBhOmhvdmVyeyBib3JkZXItcmFkaXVzOjA7IH0gLm1vYmlsZUJ1dHRvbnsgY29sb3I6cmdiKDE2LDQzLDc4KSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJnYigyNDcsMjQ3LDI0NykhaW1wb3J0YW50OyB9IC5tZW51IHVsIGxpIGEuYmxhY2sge2JhY2tncm91bmQ6IzIyMjt9IC5oLWJ1dHRvbnMgdWwgbGkgYS5ibGFjayB7YmFja2dyb3VuZDojMDAwO2NvbG9yOiNGRkZGRkZ9IC5oLWJ1dHRvbnMge30gLmgtYnV0dG9ucyB1bCBsaSB7ZmxvYXQ6bGVmdDsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjAgMCAxMHB4IDBweDtkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5oLWJ1dHRvbnMgdWwgbGkgYSB7IGJhY2tncm91bmQtY29sb3I6cmdiKDI0NywyNDcsMjQ3KTsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpibG9jazsgcGFkZGluZzo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7IC1tb3otYm9yZGVyLXJhZGl1czo2cHg7IGJvcmRlci1yYWRpdXM6NnB4OyBtaW4td2lkdGg6OTVweDsgfSAuZGVhbGVycGhvbmUgdWwgbGkgYSB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6MjVweDsgYmFja2dyb3VuZC1wb3NpdGlvbjo5OCUgNnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNkMDA7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYXJyb3cucG5nKTsgfSAubWVudSBsaS5pbnZlcnNlLWNvbG9yID4gYSB7IGNvbG9yOiNmN2Y3Zjc7IGJhY2tncm91bmQtY29sb3I6IzEwMmI0ZTsgYm9yZGVyOjFweCBzb2xpZDsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5Vc2VkU3JwMk1vYmlsZSBpZnJhbWUjcG9kaXVtLWJ1YmJsZXsgYm90dG9tOjNyZW0gIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IG1pbi13aWR0aDoyMjVweDsgbWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1tZW51LnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjExMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnN7IG1hcmdpbi10b3A6NXB4OyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAudHJhZGluTml2eyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5OaXZ7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MC41cmVtOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lcnsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjAuNzVyZW0gOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0eyBkaXNwbGF5Om5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3RMYWJlbHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjowIDVweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3Q6Y2hlY2tlZCtsYWJlbHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgYmxhY2s7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkJhck11bHRpc2VsZWN0eyB3aWR0aDoxMDAlIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItY29sb3I6I2E5YTlhOSFpbXBvcnRhbnQ7IHBhZGRpbmc6MC4zcmVtIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5TZWxlY3RQb3B1cHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyBwYWRkaW5nOjAuM3JlbSFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvZGl2X3Jhbmdlc2xpZGVyLmNzcyAqKi8KZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXJ7IG1hcmdpbjowIDAgMTBweCAwOyBwYWRkaW5nOjA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci10aXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowIDAgMTBweCAwOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzeyBwYWRkaW5nOjAgMCAxNXB4IDA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXMgc3Bhbi5wcmljZS1taW57fSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlcyBzcGFuLnByaWNlLW1heHt9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXJ7IGJvcmRlci1yYWRpdXM6NXB4ICFpbXBvcnRhbnQ7IGhlaWdodDoxMHB4OyBtYXJnaW46NHB4IDZweCAwIC0zcHg7IHBhZGRpbmc6MDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItbGVmdCwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1yaWdodHsgZm9udC1zaXplOjAuNzVyZW0gOyBsaW5lLWhlaWdodDoyMHB4OyBjb2xvcjojNzU3NTc1OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItbGVmdHsgdGV4dC1hbGlnbjpsZWZ0OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcmlnaHR7IHRleHQtYWxpZ246cmlnaHQ7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBkaXYudWktc2xpZGVyLXJhbmdleyBiYWNrZ3JvdW5kOiNmN2Y3ZjchaW1wb3J0YW50OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZXsgbWFyZ2luOi04cHggMCAwIC0xMXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjUwcHggIWltcG9ydGFudDsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IHRvcDowOyBoZWlnaHQ6MjVweDsgd2lkdGg6MjVweDsgY3Vyc29yOnBvaW50ZXI7IG91dGxpbmU6bm9uZSAhaW1wb3J0YW50OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmUsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgc3Bhbi51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmV7IGJvcmRlci1jb2xvcjojNjY2OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3sgb3V0bGluZTpub25lICFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvcGF5bWVudENhbGN1bGF0b3IuY3NzICoqLwo6aXMoI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLCNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvcikuY2FsYy1tb2JpbGUgeyAtLXdyYXAtcGF5bWVudHM6d3JhcDsgLS1tb2JpbGUtZGlzcGxheTpub25lOyAtLW1vYi1mdWxsLXdpZHRoOjEwMCU7IC0tcGF5bWVudC1taW4td2lkdGg6Ni4zcmVtOyAtLWhlYWRlci1mb250LXNpemU6dmFyKC0tZnMyKTsgLS1oZWFkZXItaWNvbi1zaXplOnZhcigtLWZzNSk7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyeyBtaW4taGVpZ2h0OjQ1MHB4OyBjb2xvcjpibGFjazsgfSAjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcnsgYm9yZGVyOjRweCBzb2xpZCAjZjdmN2Y3OyB9ICNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyOmhhcyguY2FsYy1tb2JpbGUpeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLmNhbGMtbW9iaWxlIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyeyBvdmVyZmxvdy14OnZpc2libGU7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6MzcwcHg7IGZsZXgtd3JhcDp3cmFwOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyBvdmVyZmxvdy14OnNjcm9sbDsgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciwgLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyB3aWR0aDoxMDAlOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0eyB3aWR0aDo2NCU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0LCAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcy5ib3hlczR7IHdpZHRoOjgwJTsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIgc3BhbiwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHNwYW57IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MCFpbXBvcnRhbnQ7IGNvbG9yOmluaGVyaXQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyBtYXJnaW4tYm90dG9tOnZhcigtLXMpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWFyZ2luLWJvdHRvbTowOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyLCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzLmJveGVzNCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgd2lkdGg6MjQlOyB9IC5wYXltZW50Q2FsY3VsYXRvckxpbmV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGdyZXk7IG1hcmdpbjoxMHB4IDA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxeyBmb250LXNpemU6MC42ODhyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxIHNwYW57IGZvbnQtc2l6ZToxLjc1cmVtIDsgY29sb3I6IzAyNzZiMzsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMiBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lM3sgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUzIHNwYW57IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTR7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6Z3JleTsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZURpdnsgbWF4LXdpZHRoOjMzJTsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IHRvcDotNTAlOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXJ7IHdpZHRoOm1heCh2YXIoLS1tb2ItZnVsbC13aWR0aCwgNjYlKSwgMjByZW0pOyB9IC5jYWxjLXBheW1lbnRzeyBtYXgtd2lkdGg6dmFyKC0tbW9iLWZ1bGwtd2lkdGgsIDY2JSk7IH0gLmNhbGMtcGF5bWVudHMgOmlzKC5wcmljZS1mciwgLnByaWNlLWVuKXsgdGV4dC1hbGlnbjpyZXZlcnQ7IG1pbi13aWR0aDp1bnNldDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUNvbnRhaW5lcnsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY2NjYzsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVDb250YWluZXJ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZXsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjAgMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGl7IHBhZGRpbmc6MTBweDsgZmxvYXQ6bGVmdDsgbWluLXdpZHRoOjVyZW07IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItYm90dG9tOjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGk6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2Q5ZDlkOTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaS5hY3RpdmVQYXltZW50VHlwZXsgYmFja2dyb3VuZC1jb2xvcjojOTg5ODk4OyBjb2xvcjp3aGl0ZTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lcnsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyID4gKiB7IHBhZGRpbmctYm90dG9tOjAuNXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciBsYWJlbHsgY29sb3I6Z3JleTsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luLWxlZnQ6M3B4OyBtYXJnaW4tYm90dG9tOjA7IH0gLnBheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6MTByZW07IG1heC13aWR0aDoyMHJlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsIC5kMmNmb3JtIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6N3JlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2V7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6MTEwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50eyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6NXJlbTsgcGFkZGluZy1sZWZ0OjIwcHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6NjAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6NDAlOyAtbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjowOyB9IC5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lcnsgbWluLXdpZHRoOjE4cmVtOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojODY4Njg2OyBwYWRkaW5nOjA7IG1hcmdpbjowOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIuYm94ZXM0eyB3aWR0aDozMCU7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgcCwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgc3BhbnsgY29sb3I6aW5oZXJpdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2V7IHdpZHRoOjUwJTsgbWFyZ2luLXRvcDozMHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZveyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaWNvbnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgbWFyZ2luOjA7IHBhZGRpbmc6MC40cmVtOyAtLXR4dC1jb2xvcjojZmZmZmZmOyAtLWZzOnZhcigtLWhlYWRlci1pY29uLXNpemUsIHZhcigtLWZzNykpOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjM7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDIgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoMiBzcGFueyBmb250LXNpemU6dmFyKC0taGVhZGVyLWZvbnQtc2l6ZSwgdmFyKC0tZnMzKSk7IG1hcmdpbjowOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzowOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgzeyBmb250LXNpemU6MS4xODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIHNwYW4uaDItYWx0eyBtYXJnaW46MDsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDp2YXIoLS1zKTsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgbGluZS1oZWlnaHQ6MS4yZW07IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMi1hbHQgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDItYWx0IHNwYW57IGZvbnQtc2l6ZTp2YXIoLS1oZWFkZXItZm9udC1zaXplLCB2YXIoLS1mczMpKTsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0Om5vcm1hbDsgZm9udC13ZWlnaHQ6NzAwOyBwYWRkaW5nOjA7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgzLWFsdHsgZm9udC1zaXplOjEuMTg4cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5wYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lci5ib3hlczR7IHdpZHRoOjY0JTsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYXsgd2lkdGg6bWluKDY0JSwxOHJlbSk7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdHsgfSAuZmEuZmEtY2FsY3VsYXRvcnsgY29sb3I6IzAwMDAwMDsgfSAuLWJnLWJsYWNrIC5mYS5mYS1jYWxjdWxhdG9yeyBjb2xvcjojRkZGRkZGOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBzZWxlY3Q6Oi1tcy1leHBhbmQgeyBkaXNwbGF5Om5vbmU7IH0gLmNhbGMtcGF5bWVudC1jYXNoIHsgd2lkdGg6bWluKDE3cmVtLDkwJSk7IHBhZGRpbmc6MCAxLjVyZW07IH0gLmNhbGMtcGF5bWVudC1jYXNoIHNwYW57IG1hcmdpbi1ib3R0b206MDsgZm9udC1zaXplOnJldmVydDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlRmluYWwgeyBwYWRkaW5nLXRvcDp2YXIoLS1zKTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JiYjsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlUm93IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBsaW5lLWhlaWdodDpub3JtYWw7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZU5hbWV7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6dmFyKC0tZnMwKTsgfSAjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkJ1dHRvbnsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTA1cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZXsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjEwMHB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24geyBib3JkZXI6MS41cHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo2cHg7IHBhZGRpbmc6OHB4OyB3aWR0aDoxOTBweDsgYmFja2dyb3VuZDp3aGl0ZTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsZXgtc2hyaW5rOjA7IG1pbi13aWR0aDoxODdweDsgYm94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLnNlbGVjdGVkLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24uc2VsZWN0ZWQgeyBib3JkZXItY29sb3I6IzAwN0JGRjsgYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsIDEyMywgMjU1LCAwLjUpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAudGVybSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC50ZXJtIHsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzMzsgbWFyZ2luLWJvdHRvbToycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5kb3duLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZG93bi1wYXltZW50IHsgZm9udC1zaXplOjAuNjI1cmVtIDsgY29sb3I6Izk5OTsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zZXBhcmF0b3JQYXksICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc2VwYXJhdG9yUGF5IHsgd2lkdGg6OTAlOyBoZWlnaHQ6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7IG1hcmdpbi1ib3R0b206NnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuY29udGVudC1jb250YWluZXIgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyOyBhbGlnbi1pdGVtczpzdGFydDsgd2lkdGg6MTAwJTsgcGFkZGluZy1ib3R0b206OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubGVmdC1zZWN0aW9uLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnJpZ2h0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubGVmdC1zZWN0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnJpZ2h0LXNlY3Rpb24geyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyBncmlkLXJvdzpzcGFuIDQ7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjZweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sZWZ0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubGVmdC1zZWN0aW9uIHsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubG93ZXN0LXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubG93ZXN0LXBheW1lbnQsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXBheW1lbnQgeyBmb250LXNpemU6MS4yNXJlbSA7IGNvbG9yOiNkMzJmMmY7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuaW5mby1pY29uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmluZm8taWNvbiB7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzY2NjsgY3Vyc29yOnBvaW50ZXI7IG1hcmdpbi1sZWZ0OjRweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcmF0ZSwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcmF0ZSB7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IG1hcmdpbi10b3A6NXB4OyBmb250LXdlaWdodDpib2xkOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXJhdGUsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubG93ZXN0LXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubG93ZXN0LXJhdGUgeyBjb2xvcjojMzMzOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZGV0YWlsc1RheCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5kZXRhaWxzVGF4IHsgZm9udC1zaXplOjAuNjg4cmVtIDsgY29sb3I6IzMzMzsgbWFyZ2luLXRvcDoycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5yYWRpby1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucmFkaW8tY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDowcHg7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6MC42ODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdIHsgbWFyZ2luLXJpZ2h0OjRweDsgb3BhY2l0eTp1bnNldDsgd2lkdGg6dW5zZXQ7IGhlaWdodDp1bnNldDsgcG9zaXRpb246dW5zZXQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zaW5nbGUtY29sdW1uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNpbmdsZS1jb2x1bW4geyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBncmlkLWNvbHVtbjoxIC8gLTE7IHBhZGRpbmc6OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc21hbGwtYm94LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNtYWxsLWJveCB7IHdpZHRoOjEwMHB4OyBwYWRkaW5nOjhweDsgbWluLXdpZHRoOjEwMHB4OyBtYXgtd2lkdGg6MTAwcHg7IH0KLyoqIC9jc3MvZGFya3Rvb2x0aXAuY3NzICoqLwouZGFyay10b29sdGlweyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyB0b3A6MDsgbGVmdDowO30gLmRhcmstdG9vbHRpcCAuZXZhcExpbmt7IGNvbG9yOiMwMDY2Y2M7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmRhcmstdG9vbHRpcC5zbWFsbHsgcGFkZGluZzo0cHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbWF4LXdpZHRoOjE1MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4OyAtbW96LWJvcmRlci1yYWRpdXM6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgfSAuZGFyay10b29sdGlwLm1lZGl1bXsgcGFkZGluZzo2cHg7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IG1heC13aWR0aDoyMDBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7fSAuZGFyay10b29sdGlwLmxhcmdleyBwYWRkaW5nOjE2cHg7IGZvbnQtc2l6ZToxcmVtIDsgbWF4LXdpZHRoOjI1MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgfSAuZGFyay10b29sdGlwIC50aXB7IHRyYW5zZm9ybTpzY2FsZSgxLjAxKTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wMSk7IHRyYW5zZm9ybTpzY2FsZSgxLjAxKTsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyBib3JkZXItc3R5bGU6c29saWQ7IGxpbmUtaGVpZ2h0OjBweDsgfSAuZGFyay10b29sdGlwLnNvdXRoIC50aXB7IGxlZnQ6NTAlOyB0b3A6MTAwJTt9IC5kYXJrLXRvb2x0aXAud2VzdCAudGlweyBsZWZ0OjA7IHRvcDo1MCU7fSAuZGFyay10b29sdGlwLm5vcnRoIC50aXB7IGxlZnQ6NTAlOyB0b3A6MDsgfSAuZGFyay10b29sdGlwLmVhc3QgLnRpcHsgbGVmdDoxMDAlOyB0b3A6NTAlO30gLmRhcmstdG9vbHRpcC5zb3V0aC5zbWFsbCAudGlweyBib3JkZXItd2lkdGg6MHB4IDVweCAwIDVweDsgbWFyZ2luLWxlZnQ6LTVweDt9IC5kYXJrLXRvb2x0aXAuc291dGgubWVkaXVtIC50aXB7IGJvcmRlci13aWR0aDowcHggNnB4IDAgNnB4OyBtYXJnaW4tbGVmdDotNnB4O30gLmRhcmstdG9vbHRpcC5zb3V0aC5sYXJnZSAudGlweyBib3JkZXItd2lkdGg6MHB4IDEycHggMCAxMnB4OyBtYXJnaW4tbGVmdDotMTJweDt9IC5kYXJrLXRvb2x0aXAud2VzdC5zbWFsbCAudGlweyBib3JkZXItd2lkdGg6NXB4IDdweCA1cHggMDsgbWFyZ2luLWxlZnQ6LTdweDsgbWFyZ2luLXRvcDotNXB4O30gLmRhcmstdG9vbHRpcC53ZXN0Lm1lZGl1bSAudGlweyBib3JkZXItd2lkdGg6NnB4IDhweCA2cHggMDsgbWFyZ2luLWxlZnQ6LThweDsgbWFyZ2luLXRvcDotNnB4O30gLmRhcmstdG9vbHRpcC53ZXN0LmxhcmdlIC50aXB7IGJvcmRlci13aWR0aDoxMnB4IDE0cHggMTJweCAwOyBtYXJnaW4tbGVmdDotMTRweDsgbWFyZ2luLXRvcDotMTJweDt9IC5kYXJrLXRvb2x0aXAubm9ydGguc21hbGwgLnRpcHsgYm9yZGVyLXdpZHRoOjAgNXB4IDdweCA1cHg7IG1hcmdpbi1sZWZ0Oi01cHg7IG1hcmdpbi10b3A6LTdweDt9IC5kYXJrLXRvb2x0aXAubm9ydGgubWVkaXVtIC50aXB7IGJvcmRlci13aWR0aDowIDZweCA4cHggNnB4OyBtYXJnaW4tbGVmdDotNnB4OyBtYXJnaW4tdG9wOi04cHg7fSAuZGFyay10b29sdGlwLm5vcnRoLmxhcmdlIC50aXB7IGJvcmRlci13aWR0aDowIDEycHggMTRweCAxMnB4OyBtYXJnaW4tbGVmdDotMTJweDsgbWFyZ2luLXRvcDotMTRweDt9IC5kYXJrLXRvb2x0aXAuZWFzdC5zbWFsbCAudGlweyBib3JkZXItd2lkdGg6NXB4IDAgNXB4IDBweDsgbWFyZ2luLXRvcDotNXB4O30gLmRhcmstdG9vbHRpcC5lYXN0Lm1lZGl1bSAudGlweyBib3JkZXItd2lkdGg6NnB4IDBweCA2cHggMHB4OyBtYXJnaW4tdG9wOi02cHg7fSAuZGFyay10b29sdGlwLmVhc3QubGFyZ2UgLnRpcHsgYm9yZGVyLXdpZHRoOjEycHggMCAxMnB4IDBweDsgbWFyZ2luLXRvcDotMTJweDt9IC5kYXJrLXRvb2x0aXAgdWwuY29uZmlybXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luLXRvcDo1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjAgYXV0bzsgfSAuZGFyay10b29sdGlwIHVsLmNvbmZpcm0gbGl7IHBhZGRpbmc6MTBweDtmbG9hdDpsZWZ0O21hcmdpbjo1cHg7bWluLXdpZHRoOjI1cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4Oy1vLWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4O30gLmRhcmstdG9vbHRpcC5kYXJreyBiYWNrZ3JvdW5kLWNvbG9yOiNEQUQ5REI7IGNvbG9yOiMwMDA7fSAuZGFyay10b29sdGlwLmxpZ2h0eyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IGNvbG9yOiM1ZTVlNWU7IGJvcmRlcjoxcHggc29saWQgIzVlNWU1ZTsgei1pbmRleDoxMDAwMDMwO30gLmRhcmstdG9vbHRpcC5kYXJrLnNvdXRoIC50aXB7IGJvcmRlci1jb2xvcjojREFEOURCIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyBfYm9yZGVyLWNvbG9yOiNEQUQ5REIgIzAwMDAwMCAjMDAwMDAwICMwMDAwMDA7IF9maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpOyB9IC5kYXJrLXRvb2x0aXAuZGFyay53ZXN0IC50aXB7IGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjREFEOURCIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyBfYm9yZGVyLWNvbG9yOiMwMDAwMDAgI0RBRDlEQiAjMDAwMDAwICMwMDAwMDA7IF9maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpOyB9IC5kYXJrLXRvb2x0aXAuZGFyay5ub3J0aCAudGlweyBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI0RBRDlEQiB0cmFuc3BhcmVudDsgX2JvcmRlci1jb2xvcjojMDAwMDAwICMwMDAwMDAgI0RBRDlEQiAjMDAwMDAwOyBfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKTsgfSAuZGFyay10b29sdGlwLmRhcmsuZWFzdCAudGlweyBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI0RBRDlEQjsgX2JvcmRlci1jb2xvcjojMDAwMDAwICMwMDAwMDAgIzAwMDAwMCAjREFEOURCOyBfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKTsgfSAuZGFyay10b29sdGlwLmxpZ2h0LnNvdXRoIC50aXB7IGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBzLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgd2lkdGg6MTJweDsgaGVpZ2h0OjhweDsgfSAuZGFyay10b29sdGlwLmxpZ2h0Lndlc3QgLnRpcHsgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcHcucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB3aWR0aDo4cHg7IGhlaWdodDoxMnB4OyB9IC5kYXJrLXRvb2x0aXAubGlnaHQubm9ydGggLnRpcHsgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcG4ucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB3aWR0aDoxMnB4OyBoZWlnaHQ6OHB4OyB9IC5kYXJrLXRvb2x0aXAubGlnaHQuZWFzdCAudGlweyBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwZS5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCBjZW50ZXI7IHdpZHRoOjhweDsgaGVpZ2h0OjEycHg7fSAuZGFyay10b29sdGlwLmRhcmsgdWwuY29uZmlybSBsaXsgYmFja2dyb3VuZC1jb2xvcjojNDE2RTg1O30gLmRhcmstdG9vbHRpcC5kYXJrIHVsLmNvbmZpcm0gbGk6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6IzQxN0U4NTt9IC5kYXJrLXRvb2x0aXAubGlnaHQgdWwuY29uZmlybSBsaXsgYmFja2dyb3VuZC1jb2xvcjojQzFEQkRCO30gLmRhcmstdG9vbHRpcC5saWdodCB1bC5jb25maXJtIGxpOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNEQ0U4RTg7fSAuYW5pbWF0ZWR7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tcy1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW8tYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjVzOy1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOi41czstbXMtYW5pbWF0aW9uLWR1cmF0aW9uOi41czstby1hbmltYXRpb24tZHVyYXRpb246LjVzO2FuaW1hdGlvbi1kdXJhdGlvbjouNXM7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblVwIHsgMC4wMDAxJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7IG9wYWNpdHk6MDt9IDQwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpO30gNzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO30gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpOyBvcGFjaXR5OjE7fSB9IEAtbW96LWtleWZyYW1lcyBmbGlwSW5VcCB7IDAuMDAwMSUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpO30gNzAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO30gMTAwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO29wYWNpdHk6MTt9IH0gQC1vLWtleWZyYW1lcyBmbGlwSW5VcCB7IDAuMDAwMSUgey1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpO30gNzAlIHstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO30gMTAwJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO29wYWNpdHk6MTt9IH0gQGtleWZyYW1lcyBmbGlwSW5VcCB7IDAuMDAwMSUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpO30gNzAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO30gMTAwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO29wYWNpdHk6MTt9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblJpZ2h0IHsgMC4wMDAxJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7IG9wYWNpdHk6MDt9IDQwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpO30gNzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO30gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpOyBvcGFjaXR5OjE7fSB9IEAtbW96LWtleWZyYW1lcyBmbGlwSW5SaWdodCB7IDAuMDAwMSUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpO30gNzAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO30gMTAwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpO29wYWNpdHk6MTt9IH0gQC1vLWtleWZyYW1lcyBmbGlwSW5SaWdodCB7IDAuMDAwMSUgey1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpO30gNzAlIHstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO30gMTAwJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpO29wYWNpdHk6MTt9IH0gQGtleWZyYW1lcyBmbGlwSW5SaWdodCB7IDAuMDAwMSUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpO30gNzAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO30gMTAwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpO29wYWNpdHk6MTt9IH0gLmZsaXBJbiB7IC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7IC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7IC1vLWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50OyBiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudH0gLmZsaXBJbi5zb3V0aCwgLmZsaXBJbi5ub3J0aCB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7IC1tb3otYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7IC1vLWFuaW1hdGlvbi1uYW1lOmZsaXBJblVwOyBhbmltYXRpb24tbmFtZTpmbGlwSW5VcDsgfSAuZmxpcEluLndlc3QsIC5mbGlwSW4uZWFzdCB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7IC1tb3otYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7IC1vLWFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0OyBhbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDsgfSBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluIHsgMCUge29wYWNpdHk6MDt9IDEwMCUge29wYWNpdHk6MTt9fSBALW1vei1rZXlmcmFtZXMgZmFkZUluIHsgMCUge29wYWNpdHk6MDt9IDEwMCUge29wYWNpdHk6MTt9fSBALW8ta2V5ZnJhbWVzIGZhZGVJbiB7MCUge29wYWNpdHk6MDt9MTAwJSB7b3BhY2l0eToxO319IEBrZXlmcmFtZXMgZmFkZUluIHswJSB7b3BhY2l0eTowO30xMDAlIHtvcGFjaXR5OjE7fX0gLmZhZGVJbnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJbjsgLW1vei1hbmltYXRpb24tbmFtZTpmYWRlSW47IC1vLWFuaW1hdGlvbi1uYW1lOmZhZGVJbjsgYW5pbWF0aW9uLW5hbWU6ZmFkZUluO30KLyoqIC9jc3MvcmV2ZWFsLmNzcyAqKi8KLnJldmVhbC1tb2RhbC1iZyB7IHBvc2l0aW9uOmZpeGVkOyBoZWlnaHQ6MTAwJTsgd2lkdGg6MTAwJTsgYmFja2dyb3VuZDojMDAwOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpOyB6LWluZGV4OjEwMDAwMDk7IGRpc3BsYXk6bm9uZTsgdG9wOjA7IGxlZnQ6MDsgfSAucmV2ZWFsLW1vZGFsIHsgdmlzaWJpbGl0eTpoaWRkZW47IHRvcDotMTAwMHB4OyB3aWR0aDptaW4oNTIwcHgsIDkwdncpOyBiYWNrZ3JvdW5kOiNlZWUgdXJsKC9pbWFnZXMvbW9kYWwtZ2xvc3MucG5nKSBuby1yZXBlYXQgLTIwMHB4IC04MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IG1hcmdpbjphdXRvOyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MzBweCA0MHB4IDM0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgLWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IH0gLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHZpc2liaWxpdHk6aGlkZGVuOyB0b3A6MTAwcHg7IHdpZHRoOjUyMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDAwMDIwOyBwYWRkaW5nOjMwcHggNDBweCAzNHB4OyBiYWNrZ3JvdW5kOm5vbmU7IC1tb3otYm9yZGVyLXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlci1yYWRpdXM6MHB4OyAtbW96LWJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IC1ib3gtc2hhZG93Om5vbmU7IH0gLi0taXMtcG9wdXAtZml4ZWQtY29udGFpbmVyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IHotaW5kZXg6MTAwMDAwMDAwOyB9IC5yZXZlYWwtbW9kYWwuc21hbGwgeyB3aWR0aDoyMDBweDt9IC5yZXZlYWwtbW9kYWwubWVkaXVtIHsgd2lkdGg6NDAwcHg7fSAucmV2ZWFsLW1vZGFsLmxhcmdlIHsgd2lkdGg6NjAwcHg7fSAucmV2ZWFsLW1vZGFsLnhsYXJnZSB7IHdpZHRoOjgwMHB4O30gLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZm9udC1zaXplOjEuMzc1cmVtIDsgbGluZS1oZWlnaHQ6LjU7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6OXB4OyByaWdodDoxMHB4OyBjb2xvcjojNDQ0OyB0ZXh0LXNoYWRvdzowIC0xcHggMXB4IHJiZ2EoMCwwLDAsLjYpOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgfSAuY2xvc2UtcmV2ZWFsLW1vZGFsLm1vZGFsLWNsb3NlLWhpZGUgeyBkaXNwbGF5Om5vbmU7IH0gLnJldmVhbC1tb2RhbCBzcGFuIHsgcGFkZGluZzowcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM0MTQxNDE7IH0gLnJldmVhbC1tb2RhbCBzcGFuLnN1Y2Nlc3MgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NpcmNsZS1ncmVlbi0yNC1ucy5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IH0gLnJldmVhbC1tb2RhbCBzcGFuLmZhaWwgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NpcmNsZS1yZWQtMjQtbnMucG5nKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgY2VudGVyIHRyYW5zcGFyZW50OyBwYWRkaW5nLWxlZnQ6MzBweDsgfSAucmV2ZWFsLW1vZGFsIHAgeyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnBvcHVwLWRvbS1ub3dyYXBwZXIgeyBiYWNrZ3JvdW5kOm5vbmUgIWltcG9ydGFudDsgYm94LXNoYWRvdzpub25lOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIHsgLnJldmVhbC1tb2RhbCwgLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHRvcDoxMHB4OyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MC41cmVtOyBwYWRkaW5nLXRvcDoycmVtOyB9IC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjAuNjsgcmlnaHQ6MC41cmVtOyB0b3A6MC41cmVtOyB6LWluZGV4OjE7IH0gfSAuZW1haWwtY29uc2VudC1ib3ggOmlzKC50aXRsZS10eHQsIHApeyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjA7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94IC5pY29uLXRpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuZW1haWwtY29uc2VudC1ib3gtLWNvbXBhY3Qgc3Bhbi5mYWlseyBkaXNwbGF5OmlubGluZS1ibG9jazsgbGluZS1oZWlnaHQ6MS4yOyB9IC5lbWFpbC1jb25zZW50LWJveC0tY29tcGFjdCBweyBtYXJnaW4tdG9wOjEycHg7IGxpbmUtaGVpZ2h0OjEuNDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOjQ4MHB4KSB7IFtpZF49ImVtYWlsRmFpbE1lc3NhZ2UiXXsgd2lkdGg6bWluKDkydncsIDQyMHB4KSAhaW1wb3J0YW50OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gfQovKiogL2Nzcy9tYWluLmNzcyAqKi8KLi1sZWZ0IHtmbG9hdDpsZWZ0IWltcG9ydGFudDt9IC4tcmlnaHQge2Zsb2F0OnJpZ2h0fSAuLXNtYWxsIHtmb250LXNpemU6LjhlbTttYXJnaW4tYm90dG9tOjEuODc1ZW07bGluZS1oZWlnaHQ6MS44NzVlbSFpbXBvcnRhbnQ7fSAuLWxhcmdlIHtmb250LXNpemU6MS4yZW07bGluZS1oZWlnaHQ6Mi41ZW07bWFyZ2luLWJvdHRvbToxLjI1ZW0haW1wb3J0YW50O30gLi1oaWRlIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30gLi1xdWlldCB7Y29sb3I6IzY2NiFpbXBvcnRhbnQ7fSAuLWxvdWQge2NvbG9yOiMwMDAwMDAhaW1wb3J0YW50O30gLi1oaWdobGlnaHQge2JhY2tncm91bmQ6I2ZmMCFpbXBvcnRhbnQ7fSAuLWFkZGVkIHtiYWNrZ3JvdW5kOiMwNjA7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7fSAuLXJlbW92ZWQge2JhY2tncm91bmQ6IzkwMDtjb2xvcjojZmZmIWltcG9ydGFudDt9IC4tcHVzaC1maXJzdCB7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtbGFzdCB7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZy1yaWdodDowIWltcG9ydGFudDt9IC4tcHVzaC1sZWZ0IHttYXJnaW4tdG9wOjA7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtYm90dG9tIHttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLW5vYm9yZGVyIHtib3JkZXI6MCFpbXBvcnRhbnQ7fSAuLW5vZGVjb3JhdGlvbiwgLi1uby10ZXh0LWRlY29yYXRpb24sIC4tbm90ZXh0LWRlY29yYXRpb24ge3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDt9IC4tdGV4dC11cHBlcmNhc2UsIC4tdXBwZXJjYXNlLCAudGV4dC11cHBlcmNhc2Uge3RleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7fSAuLXRleHQtbG93ZXJjYXNlLCAuLWxvd2VyY2FzZSB7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlIWltcG9ydGFudDt9IC4taGlkZGVuIHsgZGlzcGxheTpub25lOyB9IC4tdGV4dC1ib2xkLC5ib2xke2ZvbnQtd2VpZ2h0OmJvbGQhaW1wb3J0YW50O30gLi10ZXh0LW5vcm1hbCwubm9ybWFse2ZvbnQtd2VpZ2h0Om5vcm1hbCFpbXBvcnRhbnQ7fSAuLWFsaWduLXRvcCB7dmVydGljYWwtYWxpZ246dG9wIWltcG9ydGFudDt9IC4tYWxpZ24tbWlkZGxlIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50O30gLi1saW5lLWgxeyBsaW5lLWhlaWdodDoxZW07IH0gLi1saW5lLWgyeyBsaW5lLWhlaWdodDoyZW07IH0gLi1ib3R0b20weyBib3R0b206MDsgfSAuLWJvdHRvbTAtaW1wb3J0YW50eyBib3R0b206MCFpbXBvcnRhbnQ7IH0gLlBvcnNjaGUyeyBjbGVhcjpib3RoOyB9IC5ibGFjay10ZXh0IHsgY29sb3I6IzAwMDAwMDsgfSA6OnBsYWNlaG9sZGVyIHsgcGFkZGluZy10b3A6MXB4OyBjb2xvcjojYTlhOWE5OyBvcGFjaXR5OjE7IH0gOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICNjYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodCwgLlNwZWNpZmljYXRpb25zIC5mYS1jaGV2cm9uLXJpZ2h0IHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjMTAyYjRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IGNvbG9yOiMxMDJiNGUgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuU3BlY2lmaWNhdGlvbnMgLmZhLWNoZXZyb24tcmlnaHR7IG1hcmdpbi10b3A6MXB4OyB9ICNjYXJUaXRsZSAubWFrZU1vZGVsWWVhcnsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAjY2FyVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjEuMTI1cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAuY2FyVGl0bGUgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBjb2xvcjojMTAyYjRlIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmNhclRpdGxlIC5tYWtlTW9kZWxZZWFyeyBmb250LXNpemU6MS40MzhyZW0gOyB9IC5jYXJUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MC45MzhyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyB9ICNTZWFyY2hUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDozMXB4OyBoZWlnaHQ6NDFweDsgcGFkZGluZy10b3A6NXB4OyBwYWRkaW5nLWxlZnQ6MTRweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IGJvcmRlcjoxcHggc29saWQgIzEwMmI0ZTsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBjb2xvcjojMTAyYjRlIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gI1NlYXJjaFRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZToxcmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgbWFyZ2luLWxlZnQ6NDVweDsgZGlzcGxheTpibG9jazsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsYWJlbCBpbnB1dCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MXB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBoZWlnaHQ6MTNweDsgfSAudWktd2lkZ2V0LC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHR7IGJhY2tncm91bmQ6I2ZmZiFpbXBvcnRhbnQ7IGNvbG9yOiM1NTU7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0eyBwYWRkaW5nOjhweCAxMHB4IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLnVpLWNvcm5lci1hbGx7IGJvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDsgfSAuLWNvbGxhcHNleyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gLi1saXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IH0gLi1uby1zaGFkb3csIC4tc2hhZG93MCwgLi1ub3NoYWRvd3sgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAuLXVuZGVybGluZXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSFpbXBvcnRhbnQ7IH0gLi10b3AweyB0b3A6MDsgfSAuLXRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50O30gLi10ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50O30gLi10ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7fSAuLXRleHQtcmVkLCAuLXJlZC10ZXh0e2NvbG9yOnJlZCFpbXBvcnRhbnQ7fSAuLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O30gLi1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O30gLi1ub25lLCAuLWhpZGRlbiwgLi1oaWRkZSB7ZGlzcGxheTpub25lIWltcG9ydGFudDt9IC4taW5saW5lIHtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnQ7fSAuLWNvbG9yMSB7IGNvbG9yOiM1NzU3NTchaW1wb3J0YW50O30gLi10aXRsZTEgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC1jb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDsgfSAuLWlucHV0IHsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MTVweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6MzJweDsgY29sb3I6IzQwNDA0MDsgcGFkZGluZzowcHggNnB4IWltcG9ydGFudDsgbWFyZ2luOjBweDsgb3V0bGluZTpub25lOyBtaW4taGVpZ2h0OjIwcHg7IGJvcmRlcjoxcHggc29saWQgI2NlZDRkYTsgYm9yZGVyLXJhZGl1czouMjVyZW07IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC4taW5wdXQ6Zm9jdXMsIC4taW5wdXQ6aG92ZXJ7IGJvcmRlci1jb2xvcjojODBiZGZmICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSk7IH0gLi1wb3NpdGlvbi1zdGF0aWMsIC4tcG9zLXN0YXRpYywgLi1wb3Mtc3RhdCB7cG9zaXRpb246c3RhdGljIWltcG9ydGFudDt9IC4tcG9zaXRpb24tYWJzb2x1dGUsIC4tcG9zLWFic29sdXRlLCAuLXBvcy1hYnMge3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt9IC4tcG9zaXRpb24tZml4ZWQsIC4tcG9zLWZpeGVkLCAuLXBvcy1maXgge3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDt9IC4tcG9zaXRpb24tcmVsYXRpdmUsIC4tcG9zLXJlbGF0aXZlLCAuLXBvcy1yZWwge3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDt9IC4tcG9zaXRpb24taW5oZXJpdCwgLi1wb3MtaW5oZXJpdCwgLi1wb3MtaW5oIHtwb3NpdGlvbjppbmhlcml0IWltcG9ydGFudDt9IC1saC0xLTMsIC1saW5lLWhlaWdodC0xLTN7IGxpbmUtaGVpZ2h0OjEuMzsgfSAtbGgtMjB7IGxpbmUtaGVpZ2h0OjIwcHg7IH0gLi1lcnJvciwgLi1hbGVydCwgLi1ub3RpY2UsIC4tc3VjY2VzcywgLi1pbmZvIHtwYWRkaW5nOjAuOGVtO21hcmdpbi1ib3R0b206MWVtO2JvcmRlcjoycHggc29saWQgI2RkZCFpbXBvcnRhbnQ7fSAuLWVycm9yLCAuLWFsZXJ0IHtiYWNrZ3JvdW5kOiNmYmUzZTQ7Y29sb3I6IzhhMWYxMTtib3JkZXItY29sb3I6I2ZiYzJjNCFpbXBvcnRhbnQ7fSAuLW5vdGljZSB7YmFja2dyb3VuZDojZmZmNmJmO2NvbG9yOiM1MTQ3MjE7Ym9yZGVyLWNvbG9yOiNmZmQzMjQhaW1wb3J0YW50O30gLi1zdWNjZXNzIHtiYWNrZ3JvdW5kOiNlNmVmYzI7Y29sb3I6IzI2NDQwOTtib3JkZXItY29sb3I6I2M2ZDg4MCFpbXBvcnRhbnQ7fSAuLWluZm8ge2JhY2tncm91bmQ6I2Q1ZWRmODtjb2xvcjojMjA1NzkxO2JvcmRlci1jb2xvcjojOTJjYWU0IWltcG9ydGFudDt9IC4tZXJyb3IgYSwgLmFsZXJ0IGEge2NvbG9yOiM4YTFmMTEhaW1wb3J0YW50O30gLi1ub3RpY2UgYSB7Y29sb3I6IzUxNDcyMSFpbXBvcnRhbnQ7fSAuLXN1Y2Nlc3MgYSB7Y29sb3I6IzI2NDQwOSFpbXBvcnRhbnQ7fSAuLWluZm8gYSB7Y29sb3I6IzIwNTc5MSFpbXBvcnRhbnQ7fSAuLWJveCB7cGFkZGluZzoxLjVlbTttYXJnaW4tYm90dG9tOjEuNWVtO2JhY2tncm91bmQ6I2U1ZUNmOSFpbXBvcnRhbnQ7fSAtaHIge2JhY2tncm91bmQ6I2RkZGRkZDtjb2xvcjojZGRkZGRkO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxcHg7bWFyZ2luOjAgMCAxN3B4O2JvcmRlcjpub25lIWltcG9ydGFudDt9IC1zcGFjZSB7YmFja2dyb3VuZDojZmZmO2NvbG9yOiNmZmY7dmlzaWJpbGl0eTpoaWRkZW47Y2xlYXI6Ym90aDtmbG9hdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjFweDttYXJnaW46MCAwIDE3cHg7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O30gLi1jbGVhcmZpeDphZnRlciB7Y29udGVudDoiXDAwMjAiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7Y2xlYXI6Ym90aDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O30gLi1jbGVhcmZpeHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt9IC4tY2xlYXIge2NsZWFyOmJvdGghaW1wb3J0YW50O30gLmludmlzaWJsZSB7dmlzaWJpbGl0eTpoaWRkZW47fSAuY2xlYXJmaXg6YWZ0ZXIge2NvbnRlbnQ6IiI7IGRpc3BsYXk6dGFibGU7IGNsZWFyOmJvdGg7fSAuLW92ZXJmbG93LWhpZGRlbiB7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDt9IC4tdzUge3dpZHRoOjVweCFpbXBvcnRhbnQ7fSAuLXcxMCB7d2lkdGg6MTBweCFpbXBvcnRhbnQ7fSAuLXcxNSB7d2lkdGg6MTVweCFpbXBvcnRhbnQ7fSAuLXcxOCB7d2lkdGg6MThweCFpbXBvcnRhbnQ7fSAuLXcyMCB7d2lkdGg6MjBweCFpbXBvcnRhbnQ7fSAuLXcyNSB7d2lkdGg6MjVweCFpbXBvcnRhbnQ7fSAuLXczMCB7d2lkdGg6MzBweCFpbXBvcnRhbnQ7fSAuLXczNSB7d2lkdGg6MzVweCFpbXBvcnRhbnQ7fSAuLXc0MCB7d2lkdGg6NDBweCFpbXBvcnRhbnQ7fSAuLXc0NSB7d2lkdGg6NDVweCFpbXBvcnRhbnQ7fSAuLXc1MCB7d2lkdGg6NTBweCFpbXBvcnRhbnQ7fSAuLXc1NSB7d2lkdGg6NTVweCFpbXBvcnRhbnQ7fSAuLXc2MCB7d2lkdGg6NjBweCFpbXBvcnRhbnQ7fSAuLXc2NSB7d2lkdGg6NjVweCFpbXBvcnRhbnQ7fSAuLXc3MCB7d2lkdGg6NzBweCFpbXBvcnRhbnQ7fSAuLXc3MyB7d2lkdGg6NzNweCFpbXBvcnRhbnQ7fSAuLXc3NSB7d2lkdGg6NzVweCFpbXBvcnRhbnQ7fSAuLXc4MCB7d2lkdGg6ODBweCFpbXBvcnRhbnQ7fSAuLXc4NSB7d2lkdGg6ODVweCFpbXBvcnRhbnQ7fSAuLXc4OCB7d2lkdGg6ODhweCFpbXBvcnRhbnQ7fSAuLXc5MCB7d2lkdGg6OTBweCFpbXBvcnRhbnQ7fSAuLXc5NSB7d2lkdGg6OTVweCFpbXBvcnRhbnQ7fSAuLXcxMDAge3dpZHRoOjEwMHB4IWltcG9ydGFudDt9IC4tdzExMCB7d2lkdGg6MTEwcHghaW1wb3J0YW50O30gLi13MTIwIHt3aWR0aDoxMjBweCFpbXBvcnRhbnQ7fSAuLXcxMjUge3dpZHRoOjEyNXB4IWltcG9ydGFudDt9IC4tdzEzMCB7d2lkdGg6MTMwcHghaW1wb3J0YW50O30gLi13MTM1IHt3aWR0aDoxMzVweCFpbXBvcnRhbnQ7fSAuLXcxNDAge3dpZHRoOjE0MHB4IWltcG9ydGFudDt9IC4tdzE0MyB7d2lkdGg6MTQzcHghaW1wb3J0YW50O30gLi13MTQ1IHt3aWR0aDoxNDVweCFpbXBvcnRhbnQ7fSAuLXcxNTAge3dpZHRoOjE1MHB4IWltcG9ydGFudDt9IC4tdzE3MCB7d2lkdGg6MTgwcHghaW1wb3J0YW50O30gLi13MTgwIHt3aWR0aDoxODBweCFpbXBvcnRhbnQ7fSAuLXcxODUge3dpZHRoOjE4NXB4IWltcG9ydGFudDt9IC4tdzE5MCB7d2lkdGg6MTkwcHghaW1wb3J0YW50O30gLi13MjAwIHt3aWR0aDoyMDBweCFpbXBvcnRhbnQ7fSAuLXcyMTAge3dpZHRoOjIxMHB4IWltcG9ydGFudDt9IC4tdzIxNSB7d2lkdGg6MjE1cHghaW1wb3J0YW50O30gLi13MjIwIHt3aWR0aDoyMjBweCFpbXBvcnRhbnQ7fSAuLXcyMzAge3dpZHRoOjIzMHB4IWltcG9ydGFudDt9IC4tdzI0MCB7d2lkdGg6MjQwcHghaW1wb3J0YW50O30gLi13MjUwIHt3aWR0aDoyNTBweCFpbXBvcnRhbnQ7fSAuLXcyNTUge3dpZHRoOjI1NXB4IWltcG9ydGFudDt9IC4tdzI2MCB7d2lkdGg6MjYwcHghaW1wb3J0YW50O30gLi13MjcwIHt3aWR0aDoyNzBweCFpbXBvcnRhbnQ7fSAuLXcyNzUge3dpZHRoOjI3NXB4IWltcG9ydGFudDt9IC4tdzI4MCB7d2lkdGg6MjgwcHghaW1wb3J0YW50O30gLi13MjkwIHt3aWR0aDoyOTBweCFpbXBvcnRhbnQ7fSAuLXczMDAge3dpZHRoOjMwMHB4IWltcG9ydGFudDt9IC4tdzMxNSB7d2lkdGg6MzE1cHghaW1wb3J0YW50O30gLi13MzIwIHt3aWR0aDozMjBweCFpbXBvcnRhbnQ7fSAuLXczMjUge3dpZHRoOjMyNXB4IWltcG9ydGFudDt9IC4tdzM1MCB7d2lkdGg6MzUwcHghaW1wb3J0YW50O30gLi13NDAwIHt3aWR0aDo0MDBweCFpbXBvcnRhbnQ7fSAuLXc0NTAge3dpZHRoOjQ1MHB4IWltcG9ydGFudDt9IC4tdzQ2MCB7d2lkdGg6NDUwcHghaW1wb3J0YW50O30gLi13NTAwIHt3aWR0aDo1MDBweCFpbXBvcnRhbnQ7fSAuLXc2MzAge3dpZHRoOjYzMHB4IWltcG9ydGFudDt9IC4tdzYyMCB7d2lkdGg6NjIwcHghaW1wb3J0YW50O30gLi13NjI1IHt3aWR0aDo2MjVweCFpbXBvcnRhbnQ7fSAuLXc2NzUge3dpZHRoOjY3NXB4IWltcG9ydGFudDt9IC4tdzY4MCB7d2lkdGg6NjgwcHghaW1wb3J0YW50O30gLi13NjcwIHt3aWR0aDo2NzBweCFpbXBvcnRhbnQ7fSAuLXc3MDAge3dpZHRoOjcwMHB4IWltcG9ydGFudDt9IC4tdzcyMCB7d2lkdGg6NzIwcHghaW1wb3J0YW50O30gLi13NzI1IHt3aWR0aDo3MjVweCFpbXBvcnRhbnQ7fSAuLXc3MzAge3dpZHRoOjczMHB4IWltcG9ydGFudDt9IC4tdzc1MCB7d2lkdGg6NzUwcHghaW1wb3J0YW50O30gLi13ODAwIHt3aWR0aDo4MDBweCFpbXBvcnRhbnQ7fSAuLXc5MDAge3dpZHRoOjkwMHB4IWltcG9ydGFudDt9IC4tdzkzNyB7d2lkdGg6OTM3cHghaW1wb3J0YW50O30gLi13OTQwIHt3aWR0aDo5NDBweCFpbXBvcnRhbnQ7fSAuLXc5NjAge3dpZHRoOjk2MHB4IWltcG9ydGFudDt9IC4tdzk3MCB7d2lkdGg6OTcwcHghaW1wb3J0YW50O30gLi13MTAwMCB7d2lkdGg6MTAwMHB4IWltcG9ydGFudDt9IC4tdzVwIHt3aWR0aDo1JSFpbXBvcnRhbnQ7fSAuLXcxMHAge3dpZHRoOjEwJSFpbXBvcnRhbnQ7fSAuLXcxNXAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXcyMHAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXdxLCAuLXcyNXAge3dpZHRoOjI1JSFpbXBvcnRhbnQ7fSAuLXczMHAge3dpZHRoOjMwJSFpbXBvcnRhbnQ7fSAuLXczNXAge3dpZHRoOjM1JSFpbXBvcnRhbnQ7fSAuLXc0MHAge3dpZHRoOjQwJSFpbXBvcnRhbnQ7fSAuLXc0NXAge3dpZHRoOjQ1JSFpbXBvcnRhbnQ7fSAuLXdoLC4tdzUwcCB7d2lkdGg6NTAlIWltcG9ydGFudDt9IC4tdzU1cCB7d2lkdGg6NTUlIWltcG9ydGFudDt9IC4tdzYwcCB7d2lkdGg6NjAlIWltcG9ydGFudDt9IC4tdzY1cCB7d2lkdGg6NjUlIWltcG9ydGFudDt9IC4tdzcwcCB7d2lkdGg6NzAlIWltcG9ydGFudDt9IC4tdzc1cCB7d2lkdGg6NzUlIWltcG9ydGFudDt9IC4tdzgwcCB7d2lkdGg6ODAlIWltcG9ydGFudDt9IC4tdzg1cCB7d2lkdGg6ODUlIWltcG9ydGFudDt9IC4tdzkwcCB7d2lkdGg6OTAlIWltcG9ydGFudDt9IC4tdzk1cCB7d2lkdGg6OTUlIWltcG9ydGFudDt9IC4td2YsLi13MTAwcCB7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7fSAuLW1heC13LW5vbmUge21heC13aWR0aDpub25lIWltcG9ydGFudDt9IC4taDUge2hlaWdodDo1cHghaW1wb3J0YW50O30gLi1oNiB7aGVpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLWg3IHtoZWlnaHQ6N3B4IWltcG9ydGFudDt9IC4taDgge2hlaWdodDo4cHghaW1wb3J0YW50O30gLi1oOSB7aGVpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLWgxMCB7aGVpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1oMTEge2hlaWdodDoxMXB4IWltcG9ydGFudDt9IC4taDEyIHtoZWlnaHQ6MTJweCFpbXBvcnRhbnQ7fSAuLWgxMyB7aGVpZ2h0OjEzcHghaW1wb3J0YW50O30gLi1oMTQge2hlaWdodDoxNHB4IWltcG9ydGFudDt9IC4taDE1IHtoZWlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLWgyMCB7aGVpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1oMjUge2hlaWdodDoyNXB4IWltcG9ydGFudDt9IC4taDMwIHtoZWlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLWgzMiB7aGVpZ2h0OjMycHghaW1wb3J0YW50O30gLi1oMzUge2hlaWdodDozNXB4IWltcG9ydGFudDt9IC4taDQwIHtoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLWg0NSB7aGVpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1oNTAge2hlaWdodDo1MHB4IWltcG9ydGFudDt9IC4taDU1IHtoZWlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLWg2MCB7aGVpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1oNjUge2hlaWdodDo2NXB4IWltcG9ydGFudDt9IC4taDcwIHtoZWlnaHQ6NzBweCFpbXBvcnRhbnQ7fSAuLWg3NSB7aGVpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1oODAge2hlaWdodDo4MHB4IWltcG9ydGFudDt9IC4taDg1IHtoZWlnaHQ6ODVweCFpbXBvcnRhbnQ7fSAuLWg5MCB7aGVpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1oOTUge2hlaWdodDo5NXB4IWltcG9ydGFudDt9IC4taDEwMCB7aGVpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4taDExMCB7aGVpZ2h0OjExMHB4IWltcG9ydGFudDt9IC4taDEyMCB7aGVpZ2h0OjEyMHB4IWltcG9ydGFudDt9IC4taDEzMCB7aGVpZ2h0OjEzMHB4IWltcG9ydGFudDt9IC4taDE0MCB7aGVpZ2h0OjE0MHB4IWltcG9ydGFudDt9IC4taDE1MCB7aGVpZ2h0OjE1MHB4IWltcG9ydGFudDt9IC4taDE2MCB7aGVpZ2h0OjE2MHB4IWltcG9ydGFudDt9IC4taDE3MCB7aGVpZ2h0OjE3MHB4IWltcG9ydGFudDt9IC4taDE4MCB7aGVpZ2h0OjE4MHB4IWltcG9ydGFudDt9IC4taDE5MCB7aGVpZ2h0OjE5MHB4IWltcG9ydGFudDt9IC4taDIwMCB7aGVpZ2h0OjIwMHB4IWltcG9ydGFudDt9IC4taDIyMCB7aGVpZ2h0OjIyMHB4IWltcG9ydGFudDt9IC4taDIzMCB7aGVpZ2h0OjIzMHB4IWltcG9ydGFudDt9IC4taDI0MCB7aGVpZ2h0OjI0MHB4IWltcG9ydGFudDt9IC4taDI0NSB7aGVpZ2h0OjI0NXB4IWltcG9ydGFudDt9IC4taDI0OCB7aGVpZ2h0OjI0OHB4IWltcG9ydGFudDt9IC4taDI1MCB7aGVpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4taDI1NSB7aGVpZ2h0OjI1NXB4IWltcG9ydGFudDt9IC4taDI2MCB7aGVpZ2h0OjI2MHB4IWltcG9ydGFudDt9IC4taDMwMCB7aGVpZ2h0OjMwMHB4IWltcG9ydGFudDt9IC4taDM1MCB7aGVpZ2h0OjM1MHB4IWltcG9ydGFudDt9IC4taDQwMCB7aGVpZ2h0OjQwMHB4IWltcG9ydGFudDt9IC4taDQ1MCB7aGVpZ2h0OjQ1MHB4IWltcG9ydGFudDt9IC4taDUwMCB7aGVpZ2h0OjUwMHB4IWltcG9ydGFudDt9IC4taDU1MCB7aGVpZ2h0OjU1MHB4IWltcG9ydGFudDt9IC4taDYwMCB7aGVpZ2h0OjYwMHB4IWltcG9ydGFudDt9IC4taDY1MCB7aGVpZ2h0OjY1MHB4IWltcG9ydGFudDt9IC4taDcwMCB7aGVpZ2h0OjcwMHB4IWltcG9ydGFudDt9IC4taDc1MCB7aGVpZ2h0Ojc1MHB4IWltcG9ydGFudDt9IC4taDgwMCB7aGVpZ2h0OjgwMHB4IWltcG9ydGFudDt9IC4taDkwMCB7aGVpZ2h0OjkwMHB4IWltcG9ydGFudDt9IC4taDEwMDAge2hlaWdodDoxMDAwcHghaW1wb3J0YW50O30gLi1oNXAge2hlaWdodDo1JSFpbXBvcnRhbnQ7fSAuLWgxMHAge2hlaWdodDoxMCUhaW1wb3J0YW50O30gLi1oMTVwIHtoZWlnaHQ6MTUlIWltcG9ydGFudDt9IC4taDIwcCB7aGVpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLWhxLCAuLWgyNXAge2hlaWdodDoyNSUhaW1wb3J0YW50O30gLi1oaCwuLWg1MHAge2hlaWdodDo1MCUhaW1wb3J0YW50O30gLi1oZiwuLWgxMDBwIHtoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7fSAuLWJveC1zLWJ7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC4tYm94LWNvbnRlbnR7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLi1mbGV4e2Rpc3BsYXk6ZmxleDt9IC4tZmxleC1jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9IC4tYWktY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcjt9IC4tcDAsLi1ub3BhZGRpbmcsLi1ub3BhZGRpbmdzIHtwYWRkaW5nOjA7fSAuLXAxIHtwYWRkaW5nOjFweCFpbXBvcnRhbnQ7fSAuLXAyIHtwYWRkaW5nOjJweCFpbXBvcnRhbnQ7fSAuLXAzIHtwYWRkaW5nOjNweCFpbXBvcnRhbnQ7fSAuLXA0IHtwYWRkaW5nOjRweCFpbXBvcnRhbnQ7fSAuLXA1IHtwYWRkaW5nOjVweCFpbXBvcnRhbnQ7fSAuLXA2IHtwYWRkaW5nOjZweCFpbXBvcnRhbnQ7fSAuLXA3IHtwYWRkaW5nOjdweCFpbXBvcnRhbnQ7fSAuLXA4IHtwYWRkaW5nOjhweCFpbXBvcnRhbnQ7fSAuLXA5IHtwYWRkaW5nOjlweCFpbXBvcnRhbnQ7fSAuLXAxMCB7cGFkZGluZzoxMHB4IWltcG9ydGFudDt9IC4tcDE1IHtwYWRkaW5nOjE1cHghaW1wb3J0YW50O30gLi1wMjAge3BhZGRpbmc6MjBweCFpbXBvcnRhbnQ7fSAuLXAyNSB7cGFkZGluZzoyNXB4IWltcG9ydGFudDt9IC4tcDMwIHtwYWRkaW5nOjMwcHghaW1wb3J0YW50O30gLi1wMzUge3BhZGRpbmc6MzVweCFpbXBvcnRhbnQ7fSAuLXA0MCB7cGFkZGluZzo0MHB4IWltcG9ydGFudDt9IC4tcDQ1IHtwYWRkaW5nOjQ1cHghaW1wb3J0YW50O30gLi1wNTAge3BhZGRpbmc6NTBweCFpbXBvcnRhbnQ7fSAuLXBsMCB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O30gLi1wbDEge3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50O30gLi1wbDIge3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50O30gLi1wbDMge3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50O30gLi1wbDQge3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50O30gLi1wbDUge3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50O30gLi1wbDYge3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50O30gLi1wbDcge3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50O30gLi1wbDgge3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50O30gLi1wbDkge3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50O30gLi1wbDEwIHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLXBsMTUge3BhZGRpbmctbGVmdDoxNXB4IWltcG9ydGFudDt9IC4tcGwxNiB7cGFkZGluZy1sZWZ0OjE2cHghaW1wb3J0YW50O30gLi1wbDE3IHtwYWRkaW5nLWxlZnQ6MTdweCFpbXBvcnRhbnQ7fSAuLXBsMjAge3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudDt9IC4tcGwyNSB7cGFkZGluZy1sZWZ0OjI1cHghaW1wb3J0YW50O30gLi1wbDMwIHtwYWRkaW5nLWxlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLXBsMzUge3BhZGRpbmctbGVmdDozNXB4IWltcG9ydGFudDt9IC4tcGw0MCB7cGFkZGluZy1sZWZ0OjQwcHghaW1wb3J0YW50O30gLi1wbDQ1IHtwYWRkaW5nLWxlZnQ6NDVweCFpbXBvcnRhbnQ7fSAuLXBsNTAge3BhZGRpbmctbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tcGw1NSB7cGFkZGluZy1sZWZ0OjU1cHghaW1wb3J0YW50O30gLi1wcjAge3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLXByMSB7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50O30gLi1wcjIge3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tcHIzIHtwYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXByNCB7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50O30gLi1wcjUge3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tcHI2IHtwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXByNyB7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50O30gLi1wcjgge3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tcHI5IHtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXByMTAge3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLXByMTUge3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLXByMjAge3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXByMjUge3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLXByMzAge3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLXByMzUge3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXByNDAge3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLXByNDUge3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLXByNTAge3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXByNTUge3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDt9IC4tcHQxIHtwYWRkaW5nLXRvcDoxcHghaW1wb3J0YW50O30gLi1wdDIge3BhZGRpbmctdG9wOjJweCFpbXBvcnRhbnQ7fSAuLXB0MyB7cGFkZGluZy10b3A6M3B4IWltcG9ydGFudDt9IC4tcHQ0IHtwYWRkaW5nLXRvcDo0cHghaW1wb3J0YW50O30gLi1wdDUge3BhZGRpbmctdG9wOjVweCFpbXBvcnRhbnQ7fSAuLXB0NiB7cGFkZGluZy10b3A6NnB4IWltcG9ydGFudDt9IC4tcHQ3IHtwYWRkaW5nLXRvcDo3cHghaW1wb3J0YW50O30gLi1wdDgge3BhZGRpbmctdG9wOjhweCFpbXBvcnRhbnQ7fSAuLXB0OSB7cGFkZGluZy10b3A6OXB4IWltcG9ydGFudDt9IC4tcHQxMCB7cGFkZGluZy10b3A6MTBweCFpbXBvcnRhbnQ7fSAuLXB0MTUge3BhZGRpbmctdG9wOjE1cHghaW1wb3J0YW50O30gLi1wdDIwIHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tcHQyNSB7cGFkZGluZy10b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXB0MzAge3BhZGRpbmctdG9wOjMwcHghaW1wb3J0YW50O30gLi1wdDM1IHtwYWRkaW5nLXRvcDozNXB4IWltcG9ydGFudDt9IC4tcHQ0MCB7cGFkZGluZy10b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXB0NDUge3BhZGRpbmctdG9wOjQ1cHghaW1wb3J0YW50O30gLi1wdDUwIHtwYWRkaW5nLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tcHQ1NSB7cGFkZGluZy10b3A6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MjAwIHtwYWRkaW5nLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLXBiMCB7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLXBiMSB7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tcGIyIHtwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50O30gLi1wYjMge3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnQ7fSAuLXBiNCB7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tcGI1IHtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50O30gLi1wYjYge3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnQ7fSAuLXBiNyB7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tcGI4IHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50O30gLi1wYjkge3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnQ7fSAuLXBiMTAge3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1wYjE1IHtwYWRkaW5nLWJvdHRvbToxNXB4IWltcG9ydGFudDt9IC4tcGIyMCB7cGFkZGluZy1ib3R0b206MjBweCFpbXBvcnRhbnQ7fSAuLXBiMjUge3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1wYjMwIHtwYWRkaW5nLWJvdHRvbTozMHB4IWltcG9ydGFudDt9IC4tcGI0MCB7cGFkZGluZy1ib3R0b206NDBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czAsLXJhZGl1czAsLXJhZDAge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMSwtcmFkaXVzMSwtcmFkMSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMyLC1yYWRpdXMyLC1yYWQyIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czMsLXJhZGl1czMsLXJhZDMge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNCwtcmFkaXVzNCwtcmFkNCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM1LC1yYWRpdXM1LC1yYWQ1IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czYsLXJhZGl1czYsLXJhZDYge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNywtcmFkaXVzNywtcmFkNyB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM4LC1yYWRpdXM4LC1yYWQ4IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czksLXJhZGl1czksLXJhZDkge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMTAsLXJhZGl1czEwLC1yYWQxMCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLi1tYXV0byB7bWFyZ2luOmF1dG8haW1wb3J0YW50O30gLi1tMCAuLW5vbWFyZ2lucywuLW5vbWFyZ2lue21hcmdpbjowIWltcG9ydGFudDt9IC4tbTEge21hcmdpbjoxcHghaW1wb3J0YW50O30gLi1tMiB7bWFyZ2luOjJweCFpbXBvcnRhbnQ7fSAuLW0zIHttYXJnaW46M3B4IWltcG9ydGFudDt9IC4tbTQge21hcmdpbjo0cHghaW1wb3J0YW50O30gLi1tNSB7bWFyZ2luOjVweCFpbXBvcnRhbnQ7fSAuLW02IHttYXJnaW46NnB4IWltcG9ydGFudDt9IC4tbTcge21hcmdpbjo3cHghaW1wb3J0YW50O30gLi1tOCB7bWFyZ2luOjhweCFpbXBvcnRhbnQ7fSAuLW05IHttYXJnaW46OXB4IWltcG9ydGFudDt9IC4tbTEwIHttYXJnaW46MTBweCFpbXBvcnRhbnQ7fSAuLW0xNSB7bWFyZ2luOjE1cHghaW1wb3J0YW50O30gLi1tMjAge21hcmdpbjoyMHB4IWltcG9ydGFudDt9IC4tbTIyIHttYXJnaW46MjJweCFpbXBvcnRhbnQ7fSAuLW0yNSB7bWFyZ2luOjI1cHghaW1wb3J0YW50O30gLi1tNXAge21hcmdpbjo1JSFpbXBvcnRhbnQ7fSAuLW0xMHAge21hcmdpbjoxMCUhaW1wb3J0YW50O30gLi1tMTVwIHttYXJnaW46MTUlIWltcG9ydGFudDt9IC4tbTIwcCB7bWFyZ2luOjIwJSFpbXBvcnRhbnQ7fSAuLW0yNXAge21hcmdpbjoyNSUhaW1wb3J0YW50O30gLi1tbGF1dG8ge21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O30gLi1tbDAge21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O30gLi1tbDEge21hcmdpbi1sZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLW1sMiB7bWFyZ2luLWxlZnQ6MnB4IWltcG9ydGFudDt9IC4tbWwzIHttYXJnaW4tbGVmdDozcHghaW1wb3J0YW50O30gLi1tbDQge21hcmdpbi1sZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLW1sNSB7bWFyZ2luLWxlZnQ6NXB4IWltcG9ydGFudDt9IC4tbWw2IHttYXJnaW4tbGVmdDo2cHghaW1wb3J0YW50O30gLi1tbDcge21hcmdpbi1sZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLW1sOCB7bWFyZ2luLWxlZnQ6OHB4IWltcG9ydGFudDt9IC4tbWw5IHttYXJnaW4tbGVmdDo5cHghaW1wb3J0YW50O30gLi1tbDEwIHttYXJnaW4tbGVmdDoxMHB4IWltcG9ydGFudDt9IC4tbWwxNSB7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLW1sMjAge21hcmdpbi1sZWZ0OjIwcHghaW1wb3J0YW50O30gLi1tbDI1IHttYXJnaW4tbGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbWwyNyB7bWFyZ2luLWxlZnQ6MjdweCFpbXBvcnRhbnQ7fSAuLW1sMzAge21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50O30gLi1tbDUwIHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbWw4MCB7bWFyZ2luLWxlZnQ6ODBweCFpbXBvcnRhbnQ7fSAuLW1sMTAwIHttYXJnaW4tbGVmdDoxMDBweCFpbXBvcnRhbnQ7fSAuLW1sMTMwIHttYXJnaW4tbGVmdDoxMzBweCFpbXBvcnRhbnQ7fSAuLW1sMTUwIHttYXJnaW4tbGVmdDoxNTBweCFpbXBvcnRhbnQ7fSAuLW1sMnAge21hcmdpbi1sZWZ0OjIlIWltcG9ydGFudDt9IC4tbWwzcCB7bWFyZ2luLWxlZnQ6MyUhaW1wb3J0YW50O30gLi1tbDVwIHttYXJnaW4tbGVmdDo1JSFpbXBvcnRhbnQ7fSAuLW1sMTBwIHttYXJnaW4tbGVmdDoxMCUhaW1wb3J0YW50O30gLi1tbDE1cCB7bWFyZ2luLWxlZnQ6MTUlIWltcG9ydGFudDt9IC4tbWwyMHAge21hcmdpbi1sZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLW1sMjVwIHttYXJnaW4tbGVmdDoyNSUhaW1wb3J0YW50O30gLi1tcmF1dG8ge21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDt9IC4tbXIwIHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLW1yMSB7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLW1yMiB7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLW1yMyB7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLW1yNCB7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLW1yNSB7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLW1yNiB7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLW1yNyB7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLW1yOCB7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLW1yOSB7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLW1yMTAge21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudDt9IC4tbXIxNSB7bWFyZ2luLXJpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1tcjIwIHttYXJnaW4tcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLW1yMjUge21hcmdpbi1yaWdodDoyNXB4IWltcG9ydGFudDt9IC4tbXIzMCB7bWFyZ2luLXJpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1tcjM1IHttYXJnaW4tcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLW1yNDAge21hcmdpbi1yaWdodDo0MHB4IWltcG9ydGFudDt9IC4tbXI0NSB7bWFyZ2luLXJpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1tcjUwIHttYXJnaW4tcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLW1yMTAwIHttYXJnaW4tcmlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1tcjJwIHttYXJnaW4tcmlnaHQ6MiUhaW1wb3J0YW50O30gLi1tcjNwIHttYXJnaW4tcmlnaHQ6MyUhaW1wb3J0YW50O30gLi1tcjVwIHttYXJnaW4tcmlnaHQ6NSUhaW1wb3J0YW50O30gLi1tcjEwcCB7bWFyZ2luLXJpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLW1yMTVwIHttYXJnaW4tcmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tbXIyMHAge21hcmdpbi1yaWdodDoyMCUhaW1wb3J0YW50O30gLi1tcjI1cCB7bWFyZ2luLXJpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLW10YXV0byB7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudDt9IC4tbXQtN3ttYXJnaW4tdG9wOi03cHghaW1wb3J0YW50O30gLi1tdDB7bWFyZ2luLXRvcDowIWltcG9ydGFudDt9IC4tbXQxIHttYXJnaW4tdG9wOjFweCFpbXBvcnRhbnQ7fSAuLW10MiB7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gLi1tdDMge21hcmdpbi10b3A6M3B4IWltcG9ydGFudDt9IC4tbXQ0IHttYXJnaW4tdG9wOjRweCFpbXBvcnRhbnQ7fSAuLW10NSB7bWFyZ2luLXRvcDo1cHghaW1wb3J0YW50O30gLi1tdDYge21hcmdpbi10b3A6NnB4IWltcG9ydGFudDt9IC4tbXQ3IHttYXJnaW4tdG9wOjdweCFpbXBvcnRhbnQ7fSAuLW10OCB7bWFyZ2luLXRvcDo4cHghaW1wb3J0YW50O30gLi1tdDkge21hcmdpbi10b3A6OXB4IWltcG9ydGFudDt9IC4tbXQxMCB7bWFyZ2luLXRvcDoxMHB4IWltcG9ydGFudDt9IC4tbXQxMSB7bWFyZ2luLXRvcDoxMXB4IWltcG9ydGFudDt9IC4tbXQxMiB7bWFyZ2luLXRvcDoxMnB4IWltcG9ydGFudDt9IC4tbXQxMyB7bWFyZ2luLXRvcDoxM3B4IWltcG9ydGFudDt9IC4tbXQxNCB7bWFyZ2luLXRvcDoxNHB4IWltcG9ydGFudDt9IC4tbXQxNSB7bWFyZ2luLXRvcDoxNXB4IWltcG9ydGFudDt9IC4tbXQyMCB7bWFyZ2luLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tbXQyNSB7bWFyZ2luLXRvcDoyNXB4IWltcG9ydGFudDt9IC4tbXQyNyB7bWFyZ2luLXRvcDoyN3B4IWltcG9ydGFudDt9IC4tbXQzMCB7bWFyZ2luLXRvcDozMHB4IWltcG9ydGFudDt9IC4tbXQzNSB7bWFyZ2luLXRvcDozNXB4IWltcG9ydGFudDt9IC4tbXQ0MCB7bWFyZ2luLXRvcDo0MHB4IWltcG9ydGFudDt9IC4tbXQ1MCB7bWFyZ2luLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tbXQxMTUge21hcmdpbi10b3A6MTE1cHghaW1wb3J0YW50O30gLi1tdDIwMCB7bWFyZ2luLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLW1iYXV0byB7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudDt9IC4tbWIwIHttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50O30gLi1tYjEge21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tbWIyIHttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnQ7fSAuLW1iMyB7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50O30gLi1tYjQge21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tbWI1IHttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnQ7fSAuLW1iNiB7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50O30gLi1tYjcge21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tbWI4IHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnQ7fSAuLW1iOSB7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50O30gLi1tYjEwIHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1tYjE1IHttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50O30gLi1tYjIwIHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50O30gLi1tYjI1IHttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1tYjMwIHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50O30gLi1tYjUwIHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50O30gLi10b3AtMTAsIC4tdC0xMCB7dG9wOi0xMHB4IWltcG9ydGFudDt9IC4tdG9wMCwgLi10MCB7dG9wOjBweCFpbXBvcnRhbnQ7fSAuLXRvcDEsIC4tdDEge3RvcDoxcHghaW1wb3J0YW50O30gLi10b3AyLCAuLXQyIHt0b3A6MnB4IWltcG9ydGFudDt9IC4tdG9wMywgLi10MyB7dG9wOjNweCFpbXBvcnRhbnQ7fSAuLXRvcDQsIC4tdDQge3RvcDo0cHghaW1wb3J0YW50O30gLi10b3A1LCAuLXQ1IHt0b3A6NXB4IWltcG9ydGFudDt9IC4tdG9wNiwgLi10NiB7dG9wOjZweCFpbXBvcnRhbnQ7fSAuLXRvcDcsIC4tdDcge3RvcDo3cHghaW1wb3J0YW50O30gLi10b3A4LCAuLXQ4IHt0b3A6OHB4IWltcG9ydGFudDt9IC4tdG9wOSwgLi10OSB7dG9wOjlweCFpbXBvcnRhbnQ7fSAuLXRvcDEwLCAuLXQxMCB7dG9wOjEwcHghaW1wb3J0YW50O30gLi10b3AxNSwgLi10MTUge3RvcDoxNXB4IWltcG9ydGFudDt9IC4tdG9wMjAsIC4tdDIwIHt0b3A6MjBweCFpbXBvcnRhbnQ7fSAuLXRvcDI1LCAuLXQyNXt0b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXRvcDMwLCAuLXQzMCB7dG9wOjMwcHghaW1wb3J0YW50O30gLi10b3AzNSwgLi10MzUge3RvcDozNXB4IWltcG9ydGFudDt9IC4tdG9wNDAsIC4tdDQwIHt0b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXRvcDQ1LCAuLXQ0NSB7dG9wOjQ1cHghaW1wb3J0YW50O30gLi10b3A1MCwgLi10NTAge3RvcDo1MHB4IWltcG9ydGFudDt9IC4tdG9wMTAwLCAuLXQxMDAge3RvcDoxMDBweCFpbXBvcnRhbnQ7fSAuLXRvcDIwMCwgLi10MjAwIHt0b3A6MjAwcHghaW1wb3J0YW50O30gLi10b3A1cCwgLi10NXAge3RvcDo1JSFpbXBvcnRhbnQ7fSAuLXRvcDEwcCwgLi10MTBwIHt0b3A6MTAlIWltcG9ydGFudDt9IC4tdG9wMTVwLCAuLXQxNXAge3RvcDoxNSUhaW1wb3J0YW50O30gLi10b3AyMHAsIC4tdDIwcCB7dG9wOjIwJSFpbXBvcnRhbnQ7fSAuLXRvcDI1cCwgLi10MjVwIHt0b3A6MjUlIWltcG9ydGFudDt9IC4tdG9wNTBwLCAuLXQ1MHAge3RvcDo1MCUhaW1wb3J0YW50O30gLi10b3AxMDBwLCAuLXQxMDBwIHt0b3A6MTAwJSFpbXBvcnRhbnQ7fSAuLWxlZnQwLCAuLWwwIHtsZWZ0OjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxLCAuLWwxIHtsZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLWxlZnQyLCAuLWwyIHtsZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLWxlZnQzLCAuLWwzIHtsZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0LCAuLWw0IHtsZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1LCAuLWw1IHtsZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2LCAuLWw2IHtsZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3LCAuLWw3IHtsZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4LCAuLWw4IHtsZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5LCAuLWw5IHtsZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLWxlZnQxMCwgLi1sMTAge2xlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxNSwgLi1sMTUge2xlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQyMCwgLi1sMjAge2xlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyNSwgLi1sMjV7bGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbGVmdDMwLCAuLWwzMCB7bGVmdDozMHB4IWltcG9ydGFudDt9IC4tbGVmdDM1LCAuLWwzNSB7bGVmdDozNXB4IWltcG9ydGFudDt9IC4tbGVmdDQwLCAuLWw0MCB7bGVmdDo0MHB4IWltcG9ydGFudDt9IC4tbGVmdDQ1LCAuLWw0NSB7bGVmdDo0NXB4IWltcG9ydGFudDt9IC4tbGVmdDUwLCAuLWw1MCB7bGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbGVmdDU1LCAuLWw1NSB7bGVmdDo1NXB4IWltcG9ydGFudDt9IC4tbGVmdDYwLCAuLWw2MCB7bGVmdDo2MHB4IWltcG9ydGFudDt9IC4tbGVmdDY1LCAuLWw2NSB7bGVmdDo2NXB4IWltcG9ydGFudDt9IC4tbGVmdDcwLCAuLWw3MCB7bGVmdDo3MHB4IWltcG9ydGFudDt9IC4tbGVmdDc1LCAuLWw3NSB7bGVmdDo3NXB4IWltcG9ydGFudDt9IC4tbGVmdDgwLCAuLWw4MCB7bGVmdDo4MHB4IWltcG9ydGFudDt9IC4tbGVmdDg1LCAuLWw4NSB7bGVmdDo4NXB4IWltcG9ydGFudDt9IC4tbGVmdDkwLCAuLWw5MCB7bGVmdDo5MHB4IWltcG9ydGFudDt9IC4tbGVmdDk1LCAuLWw5NSB7bGVmdDo5NXB4IWltcG9ydGFudDt9IC4tbGVmdDEwMCwgLi1sMTAwIHtsZWZ0OjEwMHB4IWltcG9ydGFudDt9IC4tbGVmdDE1MCwgLi1sMTUwIHtsZWZ0OjE1MHB4IWltcG9ydGFudDt9IC4tbGVmdDIwMCwgLi1sMjAwIHtsZWZ0OjIwMHB4IWltcG9ydGFudDt9IC4tbGVmdDI1MCwgLi1sMjUwIHtsZWZ0OjI1MHB4IWltcG9ydGFudDt9IC4tbGVmdDMwMCwgLi1sMzAwIHtsZWZ0OjMwMHB4IWltcG9ydGFudDt9IC4tbGVmdDVwLCAuLWw1cCB7bGVmdDo1JSFpbXBvcnRhbnQ7fSAuLWxlZnQxMHAsIC4tbDEwcCB7bGVmdDoxMCUhaW1wb3J0YW50O30gLi1sZWZ0MTVwLCAuLWwxNXAge2xlZnQ6MTUlIWltcG9ydGFudDt9IC4tbGVmdDIwcCwgLi1sMjBwIHtsZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLWxlZnQyNXAsIC4tbDI1cCB7bGVmdDoyNSUhaW1wb3J0YW50O30gLi1sZWZ0NDBwLCAuLWw0MHAge2xlZnQ6NDAlIWltcG9ydGFudDt9IC4tbGVmdDUwcCwgLi1sNTBwIHtsZWZ0OjUwJSFpbXBvcnRhbnQ7fSAuLWxlZnQxMDBwLCAuLWwxMDBwIHtsZWZ0OjEwMCUhaW1wb3J0YW50O30gLi1yaWdodDAsIC4tcjAge3JpZ2h0OjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MSwgLi1yMSB7cmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tcmlnaHQyLCAuLXIyIHtyaWdodDoycHghaW1wb3J0YW50O30gLi1yaWdodDMsIC4tcjMge3JpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NCwgLi1yNCB7cmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1LCAuLXI1IHtyaWdodDo1cHghaW1wb3J0YW50O30gLi1yaWdodDYsIC4tcjYge3JpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NywgLi1yNyB7cmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tcmlnaHQ4LCAuLXI4IHtyaWdodDo4cHghaW1wb3J0YW50O30gLi1yaWdodDksIC4tcjkge3JpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAsIC4tcjEwIHtyaWdodDoxMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNSwgLi1yMTUge3JpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1yaWdodDIwLCAuLXIyMCB7cmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUsIC4tcjI1IHtyaWdodDoyNXB4IWltcG9ydGFudDt9IC4tcmlnaHQzMCwgLi1yMzAge3JpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1yaWdodDM1LCAuLXIzNSB7cmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NDAsIC4tcjQwIHtyaWdodDo0MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ0NSwgLi1yNDUge3JpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1yaWdodDUwLCAuLXI1MCB7cmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTUsIC4tcjU1IHtyaWdodDo1NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ2MCwgLi1yNjAge3JpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1yaWdodDY1LCAuLXI2NSB7cmlnaHQ6NjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NzAsIC4tcjcwIHtyaWdodDo3MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ3NSwgLi1yNzUge3JpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1yaWdodDgwLCAuLXI4MCB7cmlnaHQ6ODBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0ODUsIC4tcjg1IHtyaWdodDo4NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ5MCwgLi1yOTAge3JpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1yaWdodDk1LCAuLXI5NSB7cmlnaHQ6OTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAwLCAuLXIxMDAge3JpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNTAsIC4tcjE1MCB7cmlnaHQ6MTUwcHghaW1wb3J0YW50O30gLi1yaWdodDIwMCwgLi1yMjAwIHtyaWdodDoyMDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUwLCAuLXIyNTAge3JpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1cCwgLi1yNXAge3JpZ2h0OjUlIWltcG9ydGFudDt9IC4tcmlnaHQxMHAsIC4tcjEwcCB7cmlnaHQ6MTAlIWltcG9ydGFudDt9IC4tcmlnaHQxNXAsIC4tcjE1cCB7cmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tcmlnaHQyMHAsIC4tcjIwcCB7cmlnaHQ6MjAlIWltcG9ydGFudDt9IC4tcmlnaHQyNXAsIC4tcjI1cCB7cmlnaHQ6MjUlIWltcG9ydGFudDt9IC4tcmlnaHQ1MHAsIC4tcjUwcCB7cmlnaHQ6NTAlIWltcG9ydGFudDt9IC4tcmlnaHQxMDBwLCAuLXIxMDBwIHtyaWdodDoxMDAlIWltcG9ydGFudDt9IC4tei1pbmRleDk5e3otaW5kZXg6OTkhaW1wb3J0YW50O30gLi16LWluZGV4MTAwe3otaW5kZXg6MTAwIWltcG9ydGFudDt9IC4tei1pbmRleDEwMXt6LWluZGV4OjEwMSFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDAxLCAuemluZGV4MTAwMXsgei1pbmRleDoxMDAxIWltcG9ydGFudDsgfSAuLXotaW5kZXgzNjAwMSwgLnppbmRleDM2MDAxeyB6LWluZGV4OjM2MDAxIWltcG9ydGFudDsgfSAuLW5vLWJvcmRlci1zcGFjaW5neyBib3JkZXItc3BhY2luZzowIWltcG9ydGFudDsgfSAuLXRhYmxleyBjZWxscGFkZGluZzowIWltcG9ydGFudDsgY2VsbHNwYWNpbmc6MCFpbXBvcnRhbnQ7IGJvcmRlcjowIWltcG9ydGFudDsgfSB0YWJsZS4tdGFibGUgdGhlYWQgdGggeyBiYWNrZ3JvdW5kOiNjM2Q5ZmYhaW1wb3J0YW50OyB9IHRhYmxlLi10YWJsZSB0ciB0aCwgdGFibGUuLXRhYmxlIHRyIHRkIHsgcGFkZGluZzo0cHggMTBweCA0cHggNXB4IWltcG9ydGFudDsgfSB0ci4tYm9yZGVyLWJvdHRvbSB0ZCwgdHIuLWJvcmRlci1ib3R0b20gdGggeyBib3JkZXItYm90dG9tOjFwdCBzb2xpZCBibGFjayFpbXBvcnRhbnQ7IH0gLXdoaXRlLXNwYWNlLW5vd3JhcCB7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDt9IC4tY3Vyc29yLWF1dG8geyBjdXJzb3I6YXV0bzsgfSAuLWN1cnNvci1kZWZhdWx0IHsgY3Vyc29yOmRlZmF1bHQ7IH0gLi1jdXJzb3Itbm9uZSB7IGN1cnNvcjpub25lOyB9IC4tY3Vyc29yLWNvbnRleHQtbWVudSB7IGN1cnNvcjpjb250ZXh0LW1lbnU7IH0gLi1jdXJzb3ItaGVscCB7IGN1cnNvcjpoZWxwOyB9IC4tY3Vyc29yLXBvaW50ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuLWN1cnNvci1wcm9ncmVzcyB7IGN1cnNvcjpwcm9ncmVzczsgfSAuLWN1cnNvci13YWl0IHsgY3Vyc29yOndhaXQ7IH0gLi1jdXJzb3ItY2VsbCB7IGN1cnNvcjpjZWxsOyB9IC4tY3Vyc29yLWNyb3NzaGFpciB7IGN1cnNvcjpjcm9zc2hhaXI7IH0gLi1jdXJzb3ItdGV4dCB7IGN1cnNvcjp0ZXh0OyB9IC4tY3Vyc29yLXZlcnRpY2FsLXRleHQgeyBjdXJzb3I6dmVydGljYWwtdGV4dDsgfSAuLWN1cnNvci1hbGlhcyB7IGN1cnNvcjphbGlhczsgfSAuLWN1cnNvci1jb3B5IHsgY3Vyc29yOmNvcHk7IH0gLi1jdXJzb3ItbW92ZSB7IGN1cnNvcjptb3ZlOyB9IC4tY3Vyc29yLW5vLWRyb3AgeyBjdXJzb3I6bm8tZHJvcDsgfSAuLWN1cnNvci1ub3QtYWxsb3dlZCB7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuLWN1cnNvci1hbGwtc2Nyb2xsIHsgY3Vyc29yOmFsbC1zY3JvbGw7IH0gLi1jdXJzb3ItY29sLXJlc2l6ZSB7IGN1cnNvcjpjb2wtcmVzaXplOyB9IC4tY3Vyc29yLXJvdy1yZXNpemUgeyBjdXJzb3I6cm93LXJlc2l6ZTsgfSAuLWN1cnNvci1uLXJlc2l6ZSB7IGN1cnNvcjpuLXJlc2l6ZTsgfSAuLWN1cnNvci1lLXJlc2l6ZSB7IGN1cnNvcjplLXJlc2l6ZTsgfSAuLWN1cnNvci1zLXJlc2l6ZSB7IGN1cnNvcjpzLXJlc2l6ZTsgfSAuLWN1cnNvci13LXJlc2l6ZSB7IGN1cnNvcjp3LXJlc2l6ZTsgfSAuLWN1cnNvci1ucy1yZXNpemUgeyBjdXJzb3I6bnMtcmVzaXplOyB9IC4tY3Vyc29yLWV3LXJlc2l6ZSB7IGN1cnNvcjpldy1yZXNpemU7IH0gLi1jdXJzb3ItbmUtcmVzaXplIHsgY3Vyc29yOm5lLXJlc2l6ZTsgfSAuLWN1cnNvci1udy1yZXNpemUgeyBjdXJzb3I6bnctcmVzaXplOyB9IC4tY3Vyc29yLXNlLXJlc2l6ZSB7IGN1cnNvcjpzZS1yZXNpemU7IH0gLi1jdXJzb3Itc3ctcmVzaXplIHsgY3Vyc29yOnN3LXJlc2l6ZTsgfSAuLWN1cnNvci1uZXN3LXJlc2l6ZSB7IGN1cnNvcjpuZXN3LXJlc2l6ZTsgfSAuLWN1cnNvci1ud3NlLXJlc2l6ZSB7IGN1cnNvcjpud3NlLXJlc2l6ZTsgfSAuLWZvbnQtc2l6ZTAsIC4tZnMweyBmb250LXNpemU6MCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEsIC4tZnMxeyBmb250LXNpemU6MXB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplMiwgLi1mczJ7IGZvbnQtc2l6ZToycHghaW1wb3J0YW50O30gLi1mb250LXNpemUzLCAuLWZzM3sgZm9udC1zaXplOjNweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTQsIC4tZnM0eyBmb250LXNpemU6NHB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNSwgLi1mczV7IGZvbnQtc2l6ZTo1cHghaW1wb3J0YW50O30gLi1mb250LXNpemU2LCAuLWZzNnsgZm9udC1zaXplOjZweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTcsIC4tZnM3eyBmb250LXNpemU6N3B4IWltcG9ydGFudDt9IC4tZm9udC1zaXplOCwgLi1mczh7IGZvbnQtc2l6ZTowLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplOSwgLi1mczl7IGZvbnQtc2l6ZTowLjU2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMCwgLi1mczEweyBmb250LXNpemU6MC42MjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTEsIC4tZnMxMXsgZm9udC1zaXplOjAuNjg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEyLCAuLWZzMTJ7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEzLCAuLWZzMTN7IGZvbnQtc2l6ZTowLjgxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNCwgLi1mczE0eyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTUsIC4tZnMxNXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE2LCAuLWZzMTZ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE3LCAuLWZzMTd7IGZvbnQtc2l6ZToxLjA2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxOCwgLi1mczE4eyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTksIC4tZnMxOXsgZm9udC1zaXplOjEuMTg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIwLCAuLWZzMjB7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIxLCAuLWZzMjF7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMiwgLi1mczIyeyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjMsIC4tZnMyM3sgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI0LCAuLWZzMjR7IGZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjUsIC4tZnMyNXsgZm9udC1zaXplOjEuNTYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI2LCAuLWZzMjZ7IGZvbnQtc2l6ZToxLjYyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNywgLi1mczI3eyBmb250LXNpemU6MS42ODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjgsIC4tZnMyOHsgZm9udC1zaXplOjEuNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjksIC4tZnMyOXsgZm9udC1zaXplOjEuODEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMwLCAuLWZzMzB7IGZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMSwgLi1mczMxeyBmb250LXNpemU6MS45MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzIsIC4tZnMzMnsgZm9udC1zaXplOjJyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzMsIC4tZnMzM3sgZm9udC1zaXplOjIuMDYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM0LCAuLWZzMzR7IGZvbnQtc2l6ZToyLjEyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNSwgLi1mczM1eyBmb250LXNpemU6Mi4xODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzYsIC4tZnMzNnsgZm9udC1zaXplOjIuMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzcsIC4tZnMzN3sgZm9udC1zaXplOjIuMzEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM4LCAuLWZzMzh7IGZvbnQtc2l6ZToyLjM3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzOSwgLi1mczM5eyBmb250LXNpemU6Mi40MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplNDAsIC4tZnM0MHsgZm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50O30gLi1yZWQtbGluZS1oMzV7IGhlaWdodDozNXB4OyBtYXJnaW4tYm90dG9tOi0zNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0yNXB4OyB9ICNicmVhZGNydW1ic3sgZm9udC1zaXplOjFyZW0gOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBjb2xvcjojNzU3NTc1OyB9IC5Vc2VkVmRwMk1vYmlsZSAjYnJlYWRjcnVtYnN7IGZvbnQtc2l6ZTowLjlyZW07IGNvbG9yOiMyMjIyMjI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEuMjVyZW07IH0gI2JyZWFkY3J1bWJzIGF7IGNvbG9yOiM3NTc1NzU7IH0gI2NhcnByb29mX21haW4uY2FycHJvb2ZfbWFpbnsgd2lkdGg6MzQwcHg7IGhlaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBhZGRpbmc6MjBweDsgZGlzcGxheTpub25lOyB6LWluZGV4Ojk5OTk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm9yZGVyLXJhZGl1czo1cHg7IHBvc2l0aW9uOmZpeGVkOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTsgbGVmdDo1MCU7IHRvcDo1MCU7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mQ2xvc2VCdXR0b257IGZsb2F0OnJpZ2h0OyB0b3A6MDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IHsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MDsgYmFja2dyb3VuZDojZmZmOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgVUx7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiBVTCBMSSB7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMCA1cHggMDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfZmllbGR7IG1hcmdpbi1ib3R0b206N3B4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1lc3NhZ2V7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojMDAwOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmctYm90dG9tOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2lubmVyUGFnZURpdnsgZGlzcGxheTp0YWJsZTsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfbGFiZWx7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojNjY2NjY2OyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDoyNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2lucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6MTAwJTsgY29sb3I6Izc5Nzk3OTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9pbnB1dDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6I0Y0RjRGNDsgY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyB9ICNjYXJwcm9vZl9tYWluIC5waG9uZUlucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6NDdweDsgbWFyZ2luLXJpZ2h0OjVweDsgY29sb3I6Izc5Nzk3OTsgYm9yZGVyLXJhZGl1czo1cHg7IH0gI2NhcnByb29mX21haW4gLnBob25lSW5wdXQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGNEY0RjQ7IGNvbG9yOiMwMDAwMDA7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbklFIHsgYm9yZGVyOjFweCBzb2xpZCAjQzgzRjQxOyBtYXJnaW46MTBweCAxMHB4IDEwcHggMDsgcGFkZGluZzozcHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsb2F0OnJpZ2h0OyB3aWR0aDo2MHB4OyBjb2xvcjojZmZmOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXRvcC1jb2xvcjojQzgzRjQxOyBib3JkZXItcmlnaHQtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLWJvdHRvbS1jb2xvcjojQzgzRjQxOyBib3JkZXItbGVmdC1jb2xvcjojQzgzRjQxOyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgYm9yZGVyLXRvcC1zdHlsZTpzb2xpZDsgYm9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkOyBib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkOyBib3JkZXItbGVmdC1zdHlsZTpzb2xpZDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjhweDsgYm94LXNoYWRvdzowcHggMnB4IDNweCAjNjY2OyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGJhY2tncm91bmQtYXR0YWNobWVudDpzY3JvbGw7IGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IGJhY2tncm91bmQtc2l6ZTphdXRvOyBiYWNrZ3JvdW5kLW9yaWdpbjpwYWRkaW5nLWJveDsgYmFja2dyb3VuZC1jbGlwOmJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6cmdiKDIwMCwgNjMsIDY1KTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b25JRUhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojQzgzRjQxOyBmb250LXdlaWdodDpib2xkOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b24geyBmb250LXNpemU6MS4ycmVtOyBmbG9hdDpyaWdodDsgbWFyZ2luOjI1cHggMCAwOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjFyZW07IHBhZGRpbmc6MTBweCAxNXB4OyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgLTFweCAxcHggIzY0Nzk5ZTsgYmFja2dyb3VuZDojYmIwMDAzOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI0M4M0Y0MSAwJSwgI2JiMDAwMyAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCUgMCUsIDAlIDEwMCUsIGZyb20oI0M4M0Y0MSksIHRvKCNiYjAwMDMpKTsgYm9yZGVyOjFweCBzb2xpZCAjNWM2ZjkxOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOiNDODNGNDE7IGN1cnNvcjpwb2ludGVyOyB9ICNjYXJwcm9vZl9kaWFsb2ctb3ZlcmxheSB7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgei1pbmRleDo5OTk4OyBkaXNwbGF5Om5vbmU7IH0gLmNhcnByb29mLWJhZGdlLmRlc2t0b3AgeyBtYXJnaW4tbGVmdDotMTVweDsgaGVpZ2h0OjU2cHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLXRvcDotMTBweDsgZmxvYXQ6bGVmdDsgfSAucHJlUHJvY2Vzc29ySHRtbENhclBvb2ZBUElyZXBvcnQuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCwgLnByZVByb2Nlc3NvckNhclBvb2ZBUElyZXBvcnRWNS5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wLCAucHJlUHJvY2Vzc29ySHRtbENhclByb29mRGVmYXVsdC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wIHsgd2lkdGg6MTA2cHg7IG1hcmdpbjoycHggNXB4IDAgMDsgZmxvYXQ6bGVmdDsgfSAjY2FycHJvb2ZfbWFpbiBpbWcgeyB3aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MCAwIDE1cHggMDsgfSAjYXNQb3BVcHsgYmFja2dyb3VuZDojZmZmZmZmOyB3aWR0aDo2MDBweDsgcGFkZGluZzozMHB4OyBjb2xvcjojMDAwMDAwOyB6LWluZGV4OjEwMDAwMjE7IH0gI2FzUG9wVXAgLnBvcHVwLXBvbGljeSB7IG1pbi1oZWlnaHQ6MTAwcHg7IG1heC1oZWlnaHQ6MTUwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAucG9wdXAtcG9saWN5IGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjpibHVlOyB9ICNhc1BvcFVwIC5hc1RpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDo7IG1hcmdpbi1ib3R0b206MjBweDsgfSAjYXNQb3BVcCAuYnRuRXhwbGljaXR7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3MHB4OyB3aWR0aDoxMDBweDsgfSAjYXNQb3BVcCAuYnRuSW1wbGljaXR7IGZsb2F0OnJpZ2h0OyB3aWR0aDoxMDBweDsgcGFkZGluZy1yaWdodDo3MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50LnJldmVhbC1tb2RhbCBzcGFuLmpxVHJhbnNmb3JtUmFkaW9XcmFwcGVyeyBwYWRkaW5nOjA7IG1hcmdpbjo2cHggNHB4IDA7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnBvcHVwLXBvbGljeSB7IG1heC1oZWlnaHQ6MTcwcHg7IG92ZXJmbG93LXk6YXV0bzsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXNQSVRpdGxleyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IG1hcmdpbi1ib3R0b206MDsgcGFkZGluZy1ib3R0b206MTBweDsgZGlzcGxheTpibG9jazsgfSAjYXNQdXJjaGFzZUludGVudCAudmlUZXh0eyBjbGVhcjpib3RoOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnN7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzo1cHg7IG1hcmdpbi1ib3R0b206M3B4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGkgeyBwYWRkaW5nOjJweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zIGxpeyBjbGVhcjpib3RoOyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCBsaSBsYWJlbHsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmJ1dHRvbkRlZmF1bHRDb2xvciB7IG1hcmdpbjowIGF1dG8gNXB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwcyB7IGxpc3Qtc3R5bGU6aW5zaWRlIG5vbmUgbm9uZTsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgPiBsaXsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNiYmJiYmI7IGJvcmRlci13aWR0aDowIDFweCAxcHggMDsgcGFkZGluZzoxNXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc25vIHsgZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDo5MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc3sgcGFkZGluZy1sZWZ0OjkwcHg7IHdpZHRoOjcwcHg7IH0gLmNvbnNlbnQuZGlzY2xhaW1lciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGNvbG9yOmJsdWU7IGFsaWduLXNlbGY6Y2VudGVyOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGN1cnNvcjpoZWxwOyB9IC5jdXN0b201X2xlZnQsIC5jdXN0b20yNV9sZWZ0LCAuY3VzdG9tMzVfbGVmdCwgLmN1c3RvbTQ1X2xlZnQsIC5jdGFfcHJpY2UsLmN0YV9jcmVkaXQsLmN0YV90ZXN0RHJpdmUsLmN0YV9ldmFsLC5jdGFfc3ZjcHJvbW8sLmN0YV9zZXJ2aWNlLC5jdGFfcGFydHMsLmN0YV90aXJlcyB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6NjFweDsgcGFkZGluZzowIDE1cHggMCA2MHB4OyBkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6IzE5MTkxOTsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYm94MjUucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcDsgYmFja2dyb3VuZC1zaXplOjU4OXB4IDU1MHB4OyB9IC5jdGFfcHJpY2UuYWx0OmhvdmVyLCAuY3RhX2NyZWRpdC5hbHQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdDpob3ZlciwgLmN0YV9ldmFsLmFsdDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdDpob3ZlciwgLmN0YV9wYXJ0cy5hbHQ6aG92ZXIsIC5jdGFfdGlyZXMuYWx0OmhvdmVyLCAuY3RhX3N2Y3Byb21vLmFsdDpob3ZlciB7IGNvbG9yOiMxOTE5MTk7IH0gLmN1c3RvbTU1X2xlZnQsIC5jdXN0b20yNTVfbGVmdCwgLmN1c3RvbTM1NV9sZWZ0LCAuY3VzdG9tNDU1X2xlZnQsIC5jdGFfcHJpY2UuYWx0LC5jdGFfcHJpY2U6aG92ZXIsIC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdCwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbC5hbHQsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzLmFsdCwgLmN0YV9wYXJ0czpob3ZlciwgLmN0YV90aXJlcy5hbHQsIC5jdGFfdGlyZXM6aG92ZXIsIC5jdGFfc3ZjcHJvbW8uYWx0LCAuY3RhX3N2Y3Byb21vOmhvdmVyIHsgY29sb3I6I0ZGRkZGRjsgfSAuY3RhX3ByaWNlLCAuY3RhX3ByaWNlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246MCAwOyB9IC5jdGFfcHJpY2UuYWx0LCAuY3RhX3ByaWNlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggMDsgfSAuY3RhX2NyZWRpdCwgLmN0YV9jcmVkaXQuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02N3B4OyB9IC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNjdweDsgfSAuY3RhX3Rlc3REcml2ZSwgLmN0YV90ZXN0RHJpdmUuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0xMzVweDsgfSAuY3RhX3Rlc3REcml2ZS5hbHQsIC5jdGFfdGVzdERyaXZlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTEzNXB4OyB9IC5jdGFfZXZhbCwgLmN0YV9ldmFsLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMjA0cHg7IH0gLmN0YV9ldmFsLmFsdCwgLmN0YV9ldmFsOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTIwNHB4OyB9IC5jdGFfc3ZjcHJvbW8sIC5jdGFfc3ZjcHJvbW8uYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0yNzNweDsgfSAuY3RhX3N2Y3Byb21vLmFsdCwgLmN0YV9zdmNwcm9tbzpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0yNzNweDsgfSAuY3RhX3NlcnZpY2UsIC5jdGFfc2VydmljZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM0MXB4OyB9IC5jdGFfc2VydmljZS5hbHQsIC5jdGFfc2VydmljZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0zNDFweDsgfSAuY3RhX3BhcnRzLCAuY3RhX3BhcnRzLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNDEwcHg7IH0gLmN0YV9wYXJ0cy5hbHQsIC5jdGFfcGFydHM6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNDEwcHg7IH0gLmN0YV90aXJlcywgLmN0YV90aXJlcy5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTQ4MnB4OyB9IC5jdGFfdGlyZXMuYWx0LCAuY3RhX3RpcmVzOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTQ4MnB4OyB9IC5jdGFfc2VydmljZS5oaWRlX3RleHQsIC5jdGFfcGFydHMuaGlkZV90ZXh0LCAuY3RhX3RpcmVzLmhpZGVfdGV4dCwgLmN0YV9wcmljZS5oaWRlX3RleHQsIC5jdGFfY3JlZGl0LmhpZGVfdGV4dCwgLmN0YV90ZXN0RHJpdmUuaGlkZV90ZXh0LCAuY3RhX2V2YWwuaGlkZV90ZXh0LCAuY3RhX3N2Y3Byb21vLmhpZGVfdGV4dCB7IHRleHQtaW5kZW50Oi0yMDAwZW07IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQucmVkLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8ucmVkLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuaGVhZGluZ0NhcHNPbiBoMSwgYm9keS5oZWFkaW5nQ2Fwc09uIGgyLCBib2R5LmhlYWRpbmdDYXBzT24gaDMsIGJvZHkuaGVhZGluZ0NhcHNPbiBzcGFuLmgyLWFsdCwgYm9keS5oZWFkaW5nQ2Fwc09uIHNwYW4uaDMtYWx0LCBib2R5LmhlYWRpbmdDYXBzT24uVXNlZFNycDIgLmNhckJhc2ljcyAuY2FyVGl0bGUgLmRpdkNpdHksIGJvZHkuaGVhZGluZ0NhcHNPbiAudi1jYXJkIC5oZWFkZXItc2VjdGlvbiAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gI2Zvb3RlciAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gLmxvZ29hcmVhIC5hZGRyZXNzIC5hZHIgc3BhbjpmaXJzdC1jaGlsZCwgYm9keS5oZWFkaW5nQ2Fwc09uICNmb290ZXIgLnZpdiwgYm9keS5oZWFkaW5nQ2Fwc09uIC5zZWFyY2gtbGlua3Mtd3JhcHBlciAuc2VhcmNoLWxpbmstdGl0bGUsIGJvZHkuaGVhZGluZ0NhcHNPbiAucG9wdXBpemVyQm9keSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxLCBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwsIGJvZHkuaGVhZGluZ0NhcHNPbiAuZm9ybUhlYWRpbmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAuY29tcGFyZS12ZWhpY2xlcy1mb3JtLXRhYmxlIC50cmltLXByZXZpZXcgLmNvbXBhcmUtdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2UgIWltcG9ydGFudDsgfSBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwgeyBmb250LXNpemU6MS4yNXJlbTsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaGVhZGluZ0NhcHNPbiAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyLmRlZmF1bHQgeyBmb250LXNpemU6MS40cmVtICFpbXBvcnRhbnQ7IH0gfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIGgyIHNwYW4uaWNvbiwgLmRpdkNlcnRpZmljYXRpb25CbG9jayBzcGFuLmgyLWFsdCBzcGFuLmljb24geyBtaW4td2lkdGg6MjBweDsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LXRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6MjBweDsgZm9udC1zaXplOjEuM2VtOyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtc3VidGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDoyMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM3Nzc7IGZvbnQtc2l6ZToxZW07IG1hcmdpbi10b3A6NXB4OyB9IC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgLmNlcnQtaGlnaGxpZ2h0ZWQtdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6I0ZGRjsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuSW5uZXJCb3hMYXllci5kaXZDZXJ0aWZpY2F0aW9uQmxvY2suaXNPbmVSb3cgaW1nIHsgbWF4LXdpZHRoOmF1dG8gIWltcG9ydGFudDsgfSAudXNlZFZkcEFjdGlvbnMgLmFjdGlvbi1ib3ggYS5idG4tZGVmYXVsdCB7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjEwcHggIWltcG9ydGFudDsgfSAuY3RhX3ByaWNlOmhvdmVyLCAuY3RhX2NyZWRpdDpob3ZlciwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzOmhvdmVyLCAuY3RhX3RpcmVzOmhvdmVyLCAuY3RhX3N2Y3Byb21vOmhvdmVyeyBvcGFjaXR5OjAuNzU7IH0gLnNlYXJjaF9jZXJ0X2dlbmVyaWN7IGhlaWdodDo0NHB4OyBtYXJnaW46MnB4IDVweCAwIDA7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTBweDsgfSAjbmV3Q2FySW5Vc2VkUGFnZXsgbWFyZ2luLXRvcDotMnB4OyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4X3RvcHsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF90b3AucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4MF9taWR7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfbWlkLnBuZycpIHJlcGVhdC15IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlIC5ib3gyODhfZm9vdGVyX3FzeyBiYWNrZ3JvdW5kIDp1cmwoJy9pbWFnZXMvcmlnaHRfYm94NF9mb290ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudCB9ICNuZXdDYXJJblVzZWRQYWdlX3NjcmF0Y2hQcmljZXsgd2lkdGg6MTEwcHg7IGhlaWdodDozNXB4OyBmbG9hdDpyaWdodDsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6LTgzcHg7IGRpc3BsYXk6bm9uZTsgfSAjbmV3Q2FySW5Vc2VkUGFnZV90aXRsZXsgZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MC45MzhyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gdWwjY3JlZGl0X2RyaXZldHJhaW4sIHVsI2NyZWRpdF9mdWVsdHlwZSwgdWwjY3JlZGl0X2JvZHlUeXBlcyB7IGxpc3Qtc3R5bGU6bm9uZTsgZmxvYXQ6bGVmdDsgd2lkdGg6MzMlOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwsIHVsI2NyZWRpdF9mdWVsdHlwZSBsaSA+IGxhYmVsLCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gbGFiZWx7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0OyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gZGl2LCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBkaXYsIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBkaXZ7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMDAwMDAwOyBmbG9hdDpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluIGxpID4gbGFiZWwgPiBzcGFuLCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBsYWJlbCA+IHNwYW4sIHVsI2NyZWRpdF9ib2R5VHlwZXMgbGkgPiBsYWJlbCA+IHNwYW57IG1hcmdpbi1yaWdodDo4cHg7IG1hcmdpbi10b3A6MHB4OyB9ICNjcmVkaXRfdmlfYWR2YW5jZWQgbGFiZWx7IGZsb2F0OmxlZnQ7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbCBkaXYubGFiZWx7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjMycHg7IG1hcmdpbi1yaWdodDo2cHg7IHdpZHRoOjIwMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkIC5ib3gyX2RldGFpbHNfdGV4dDI1IHNwYW4sIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQgc3BhbnsgY29sb3I6I2RlMDAwMDsgfSAudXNwLWNvbG9yIHsgY29sb3I6I2RlMDAwMDsgfSAubXljYXJvdXNlbF90ZHsgZGlzcGxheTpibG9jazsgd2lkdGg6NTYwcHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLWxlZnQ6MzBweDsgbWFyZ2luLXRvcDoxMHB4OyB9IC52ZWhpY2xlQ2Fyb3VzZWx7IHdpZHRoOjE5MHB4OyB9IC5kZXRhaWxzX2JveCwgLmRldGFpbHNfYm94IC5ib3gyX2RldGFpbHNfbWlkRXggeyBiYWNrZ3JvdW5kOiNiNWI1YjQ7IH0gI2V4dENvbG9yU2VsZWN0LmZpeGVkV2lkdGggLCAjaW50Q29sb3JTZWxlY3QuZml4ZWRXaWR0aCB7IHdpZHRoOjIzMHB4OyB9IC5jb2xvckNob2ljZXsgaGVpZ2h0OjMxcHg7IHdpZHRoOjMxcHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWluZGVudDotMjAwMGVtOyBsaW5lLWhlaWdodDozMXB4OyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IG1hcmdpbjoycHg7IGNvbG9yOiNmZmY7IH0gLmNvbG9yQ2hvaWNlLmNob3NlbiB7IHRleHQtaW5kZW50OjA7IH0gLmNvbG9yQ2hvaWNlLnRhbiB7IGJhY2tncm91bmQtY29sb3I6I2QyYjQ4YzsgfSAuY29sb3JDaG9pY2UuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLmdvbGQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNiMjk2MDA7IH0gLmNvbG9yQ2hvaWNlLmJyb3duIHsgYmFja2dyb3VuZC1jb2xvcjojNjYzMzBlOyB9IC5jb2xvckNob2ljZS5ncmVlbiB7IGJhY2tncm91bmQtY29sb3I6IzAwOTkwMDsgfSAuY29sb3JDaG9pY2UuZ3JheSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2UuZ3JleSB7IGJhY2tncm91bmQtY29sb3I6Izk3OTc5NzsgfSAuY29sb3JDaG9pY2Uub3JhbmdlIHsgYmFja2dyb3VuZC1jb2xvcjojZTY5NDAwOyB9IC5jb2xvckNob2ljZS5zaWx2ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjMGMwYzA7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLm1hdXZlIHsgYmFja2dyb3VuZC1jb2xvcjojZDQ3M2Q0OyB9IC5jb2xvckNob2ljZS5yZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNjYzAwMDA7IH0gLmNvbG9yQ2hvaWNlLndoaXRlIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS55ZWxsb3cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmMGMwMDA7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbG9yQ2hvaWNlLmJsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMxOTE5YzQ7IH0gLmNvbG9yQ2hvaWNlLmNvcHBlciB7IGJhY2tncm91bmQtY29sb3I6I0FGNDc0NDsgfSAuY29sb3JDaG9pY2UucHVycGxlIHsgYmFja2dyb3VuZC1jb2xvcjojNTMxNUIyOyB9IC5saWdodC1ncmF5IHsgYmFja2dyb3VuZC1jb2xvcjojNGI0YzRjOyBjb2xvcjojMDAwMDAwO30gYS5jb2xvckNob2ljZSB7IGNvbG9yOiNmZmY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IHRyLmJvcmRlcl9ib3R0b21fbGluZSB0ZCwgdHIuYm9yZGVyX2JvdHRvbV9saW5lIHRoIHsgYm9yZGVyLWJvdHRvbToxcHQgc29saWQgYmxhY2s7IH0gLmJvcmRlcl9ib3h7IGJvcmRlci1yYWRpdXM6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyB9IC5ob21lcGFnZSAuYm9yZGVyX2JveHsgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAjaG9tZV9zb2NpYWxUaW1lbGluZXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ob21lcGFnZS1zb2NpYWwtYmctY29sb3IpOyB9ICNmb290ZXJXcmFwcGVyeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgY2xlYXI6Ym90aDsgcGFkZGluZy10b3A6MTVweDsgY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyBjb2xvcjojNjY2NjY2OyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IGJhY2tncm91bmQtY29sb3I6I2YzZjNmMzsgfSAjZm9vdGVyV3JhcHBlciBzdmcgeyBmaWxsOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IH0gLmN1c3RvbWZvcm1fc3VibWl0eyBtYXJnaW4tdG9wOjIwcHg7IG1hcmdpbi1ib3R0b206MjBweDsgfSAuc2VlT3B0aW9uc3sgZGlzcGxheTpub25lOyB9IC5zdHJpa2UtcHJpY2UsIC5zdHJpa2UtcHJpY2UtYmxhY2ssIC5zdHJpa2UtcHJpY2Utd2hpdGUgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnN0cmlrZS1wcmljZTo6YmVmb3JlLCAuc3RyaWtlLXByaWNlLWJsYWNrOjpiZWZvcmUsIC5zdHJpa2UtcHJpY2Utd2hpdGU6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGhlaWdodDoycHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NDAlOyAtbW96LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSg3ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbjo1MCUgNTAlIDA7IHdpZHRoOjEwMCU7IH0gLnN0cmlrZS1wcmljZS4tdGhpbjo6YmVmb3JleyBoZWlnaHQ6MXB4OyB9IC5zdHJpa2UtcHJpY2U6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCAjMDAwOyB9IC5zdHJpa2UtcHJpY2UtYmxhY2s6OmJlZm9yZSB7IGJhY2tncm91bmQ6bm9uZSByZXBlYXQgc2Nyb2xsIDAgMCBibGFjazsgfSAuc3RyaWtlLXByaWNlLXdoaXRlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgd2hpdGU7IH0gLmJsdXItcHJpY2UgeyAtd2Via2l0LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tb3otZmlsdGVyOmJsdXIoMC4xNWVtKTsgLW1zLWZpbHRlcjpibHVyKDAuMTVlbSk7IC1vLWZpbHRlcjpibHVyKDAuMTVlbSk7IGZpbHRlcjp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgaGVpZ2h0PScwJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxmaWx0ZXIgaWQ9J3N2Z0JsdXInIHg9Jy01JScgeT0nLTUlJyB3aWR0aD0nMTEwJScgaGVpZ2h0PScxMTAlJz48ZmVHYXVzc2lhbkJsdXIgaW49J1NvdXJjZUdyYXBoaWMnIHN0ZERldmlhdGlvbj0nNScvPiNzdmdCbHVyIik7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmx1cihQaXhlbFJhZGl1cz0nNScpOyBmaWx0ZXI6Ymx1cigwLjE1ZW0pOyB9IC5sZWZ0X2JveHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgbWFyZ2luLXRvcDoxMHB4IDsgcGFkZGluZzoxMHB4IDAgMTBweDsgZmxvYXQ6bGVmdDsgaGVpZ2h0OmF1dG87IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LCAuYnRuLXNtLCAuYnRuLWxnLC5jdXN0b21mb3JtX3N1Ym1pdCwuc3VibWl0eyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgY3Vyc29yOnBvaW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyB9IC5idG4tZGVmYXVsdHsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyB9IC5idG4tZGVmYXVsdCwgLnN1Ym1pdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdCB7IHBhZGRpbmc6MTFweCAyMHB4IDlweCAyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnRuLXNtLCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLXNtLCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLXNtIHsgZm9udC1zaXplOmluaGVyaXQhaW1wb3J0YW50OyBwYWRkaW5nOjRweCAxMHB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czozcHghaW1wb3J0YW50OyB9IC5idG4tbGcsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tbGcsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tbGcgeyBmb250LXNpemU6MS4wNjNyZW0gOyBwYWRkaW5nOjEycHggNTBweDsgYm9yZGVyLXJhZGl1czo2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmJ0bi1kZWZhdWx0OmZvY3VzLCAuY3VzdG9tZm9ybV9zdWJtaXQ6Zm9jdXMsIC5idG4tc206Zm9jdXMsIC5idG4tbGc6Zm9jdXMsICNleGl0X3BvcHVwX3llczpmb2N1cywgI2V4aXRfcG9wdXBfbm86Zm9jdXMgeyBvdXRsaW5lOm5vbmU7IH0gLmJ0bi1kZWZhdWx0LmFwcGx5LWNyZWRpdCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IHdvcmQtd3JhcDpub3JtYWw7IHdpZHRoOjEwMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozcHggNXB4OyBmb250LXNpemU6MC43NXJlbSA7IH0gLmJ0bi1kZWZhdWx0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0eyBmb250LXNpemU6MC44cmVtOyB9IC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwuYnRuLWxnLCAuc3VibWl0LCAjc2xpZGVpdCBpbnB1dC5zZW5kLCAuY3VzdG9tZm9ybV9zdWJtaXQgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB0ZXh0LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZSB7IGJvcmRlci1jb2xvcjojZjdmN2Y3OyB9IC5idG4tZGVmYXVsdC5idG4tYmctc2FtZTpob3ZlciB7IGJvcmRlci1jb2xvcjojMTAyYjRlOyB9IC5idG4tZGVmYXVsdDpob3ZlciwgLmN1c3RvbWZvcm1fc3VibWl0OmhvdmVyLCAuYnRuLXNtOmhvdmVyLCAuYnRuLWxnOmhvdmVyLCAuc3VibWl0OmhvdmVyLCAjc2xpZGVpdCBpbnB1dC5zZW5kOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWhvdmVyLWJnLWNvbG9yKTsgYm9yZGVyLXdpZHRoOjFweDsgYm9yZGVyLXN0eWxlOnNvbGlkOyBib3JkZXItY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tbWVudS1ob3Zlci10ZXh0LWNvbG9yKTsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvciwgLmJ0bi1zbS5wcm9tb2NvbG9yLCAuYnRuLWxnLnByb21vY29sb3IgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjM7IGJvcmRlcjoxcHggc29saWQgIzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQucHJvbW9jb2xvcjpob3ZlciwgLmJ0bi1zbS5wcm9tb2NvbG9yOmhvdmVyLCAuYnRuLWxnLnByb21vY29sb3I6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAyNzZiMzsgfSAuYnRuLWRlZmF1bHQuYmxhY2ssIC5idG4tc20uYmxhY2ssIC5idG4tbGcuYmxhY2sgeyBiYWNrZ3JvdW5kLWNvbG9yIDojMDAwMDAwOyBib3JkZXIgOjFweCBzb2xpZCAjMDAwMDAwOyBjb2xvciA6I2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQuYmxhY2sud2l0aGJvcmRlciwgLmJ0bi1zbS5ibGFjay53aXRoYm9yZGVyLCAuYnRuLWxnLmJsYWNrLndpdGhib3JkZXIgeyBib3JkZXIgOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5idG4tZGVmYXVsdC5ibGFjazpob3ZlciwgLmJ0bi1zbS5ibGFjazpob3ZlciwgLmJ0bi1sZy5ibGFjazpob3ZlciB7IGJhY2tncm91bmQtY29sb3IgOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vLCAuYnRuLXNtLm5vLCAuYnRuLWxnLm5vIHsgYmFja2dyb3VuZC1jb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICM1NTU7IGNvbG9yOiMwMDA7IH0gLmJ0bi1kZWZhdWx0Lm5vOmhvdmVyLCAuYnRuLXNtLm5vOmhvdmVyLCAuYnRuLWxnLm5vOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjY2NjY7IGJvcmRlcjoxcHggc29saWQgIzY2NjY2NjsgY29sb3I6I0ZGRkZGRjsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0LCAuYnRuLXNtLmludmVydCwgLmJ0bi1sZy5pbnZlcnQsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdCwgLmJ0bi1zbS5pbnZlcnQuZmxhdCwgLmJ0bi1sZy5pbnZlcnQuZmxhdCB7IGJhY2tncm91bmQ6IHZhcigtLXRhYi10ZXh0LWNvbG9yKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJveC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQuaW52ZXJ0OmhvdmVyLCAuYnRuLXNtLmludmVydDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQ6aG92ZXIsIC5idG4tZGVmYXVsdC5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1zbS5pbnZlcnQuZmxhdDpob3ZlciwgLmJ0bi1sZy5pbnZlcnQuZmxhdDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB9IC5idG4tZGVmYXVsdC5yZWQsIC5idG4tc20ucmVkLCAuYnRuLWxnLnJlZCB7IGJhY2tncm91bmQ6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZmMzMzMyFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2Y1MWExYSFpbXBvcnRhbnQ7IGNvbG9yOiNGRkZGRkYhaW1wb3J0YW50OyB9IC5idG4tZGVmYXVsdC5yZWQ6aG92ZXIsIC5idG4tc20ucmVkOmhvdmVyLCAuYnRuLWxnLnJlZDpob3ZlcnsgYmFja2dyb3VuZDojMzMzMzMzIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMzMzMzMzIWltcG9ydGFudDsgY29sb3I6I0ZGRkZGRiFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0LndoaXRlLCAuYnRuLXNtLndoaXRlLCAuYnRuLWxnLndoaXRlIHsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGNvbG9yOiMwMDAwMDA7IGJveC1zaGFkb3c6bm9uZTsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIHsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjsgY29sdW1uLWdhcDoxLjVyZW07IHJvdy1nYXA6MC41cmVtOyBncmlkLWF1dG8tY29sdW1uczowLjVmcjsgbWFyZ2luLWJvdHRvbToxMHB4OyBtYXJnaW4tdG9wOjE1cHg7IH0gI21pbmlmb3JtIC5kZWFsZXItc2VsZWN0LXdyYXBwZXJ7IG1hcmdpbi1sZWZ0OjIwcHg7IG1hcmdpbi1yaWdodDoyMHB4OyB9IC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0biB7IHRleHQtd3JhcDphdXRvOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmctbGVmdDoxMHB4OyB0cmFuc2l0aW9uOjAuMnMgZWFzZS1pbi1vdXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG4uZm9jdXNlZCwgLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuOmZvY3VzIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJveC1zaGFkb3c6MCA2cHggMTJweCByZ2JhKDAsMCwwLC4xNzUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlWCgycHgpOyB9IC5hcHBseS1jcmVkaXQgeyAtbW96LWJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjMGY4M2MwOyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IC0zcHggN3B4IDBweCAjMGY4M2MwOyBib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggIzBmODNjMDsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBjb2xvci1zdG9wKDAuMDUsICMzNWE5ZTYpLCBjb2xvci1zdG9wKDEsICMwMjc2YjMpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsICMzNWE5ZTYgNSUsICMwMjc2YjMgMTAwJSk7IGJhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCAjMzVhOWU2IDUlLCAjMDI3NmIzIDEwMCUpOyBiYWNrZ3JvdW5kOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsICMzNWE5ZTYgNSUsICMwMjc2YjMgMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsICMzNWE5ZTYgNSUsICMwMjc2YjMgMTAwJSk7IGJhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzM1YTllNiA1JSwgIzAyNzZiMyAxMDAlKTsgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmYzMzMzJywgZW5kQ29sb3JzdHI9JyNEQjAwMDAnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzVhOWU2OyBib3JkZXI6MXB4IHNvbGlkICMxYzkwY2Q7IH0gLmFwcGx5LWNyZWRpdDpob3ZlciB7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLjA1LCAjMzVhOWU2KSwgY29sb3Itc3RvcCgxLCAjMDI3NmIzKSk7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMDI3NmIzIDUlLCAjMzVhOWU2IDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzAyNzZiMyA1JSwgIzM1YTllNiAxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCAjMDI3NmIzIDUlLCAjMzVhOWU2IDEwMCUpOyBiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjMDI3NmIzIDUlLCAjMzVhOWU2IDEwMCUpOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMwMjc2YjMgNSUsICMzNWE5ZTYgMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzMzMycsIGVuZENvbG9yc3RyPScjREIwMDAwJyxHcmFkaWVudFR5cGU9MCk7IGJhY2tncm91bmQtY29sb3I6IzM1YTllNjsgfSAub2ZmZXItYnRueyBjb2xvcjp2YXIoLS1idG4tdHh0LWNvbCwgdmFyKC0tdXNlZC1vZmZlci1idG4tdGV4dC1jb2xvciwgI2ZmZikpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ0bi1iZy1jb2wsIHZhcigtLXVzZWQtb2ZmZXItYnRuLWJnLWNvbG9yLCB2YXIoLS1wcm9tby1jb2xvcikpKTsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgKnsgYm94LXNpemluZzpib3JkZXItYm94OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAucHJvbW9CVE57IHRleHQtYWxpZ246bGVmdDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLnByb21vQlROOjphZnRlcnsgZm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybycsIHNlcmlmOyBmb250LXdlaWdodDo5MDA7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMsIC51c2VkLWRldGFpbHMsIC5uZXctZGV0YWlscykgLnByb21vQlROID4gc3Bhbi5mYXsgZGlzcGxheTpmbGV4OyB3aWR0aDoxLjVlbTsgaGVpZ2h0OjEuNWVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGNvbG9yOmluaGVyaXQ7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5jb21wbGV0ZWQucHJvbW9CVE46OmFmdGVyeyBjb250ZW50OiJcZjAwYyI7IGNvbG9yOmluaGVyaXQ7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5jb21wbGV0ZWQucHJvbW9CVE4gc3Bhbi5mYXsgY29sb3I6IzAwMDsgfSAuZ3JheWJveCAucHJvbW9CVE4sIC51c2VkVmRwQWN0aW9ucyAucHJvbW9CVE57IGJvcmRlci1yYWRpdXM6M3B4IWltcG9ydGFudDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgdGV4dC1hbGlnbjp1bnNldDsgbGluZS1oZWlnaHQ6MS41cmVtOyB9IC5ncmF5Ym94IC5idXR0b25fdW5kZXIgLnByb21vQlROIHN0YWNrLWxjLCAubmV3VmRwQWN0aW9ucyAuYnV0dG9uX3VuZGVyIC5wcm9tb0JUTiBzdGFjay1sYyB7IGZsZXgtZ3JvdzoxICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246Y2VudGVyICFpbXBvcnRhbnQ7IH0gLm11bHRpZm9ybV9lbWJlZGRlZF9mb290ZXIgLi1mb3JjZWQtLWEtY2ZhOjphZnRlciB7IGZsZXg6MCAxOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4taWNvbmVkeyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IG1hcmdpbjphdXRvOyB3aWR0aDo5NSU7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1kZWZhdWx0IHNwYW4uZmF7IGRpc3BsYXk6bm9uZTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWljb25lZCBzcGFuLmZheyBkaXNwbGF5OmZsZXg7IH0gLmdyYXlib3ggLnByb21vQlROIHNwYW4sIC51c2VkVmRwQWN0aW9ucyAucHJvbW9CVE4gc3BhbnsgbWFyZ2luLWxlZnQ6dW5zZXQ7IGxpbmUtaGVpZ2h0OjEuNWVtOyB9IC5wcm9tb0JUTi5jaGV2cm9uLXJpZ2h0IC5jdGEtbGFiZWwgeyBwYWRkaW5nLXJpZ2h0OjEuNXJlbTsgfSAucHJvbW9CVE4sIC5wcm9tb0JUTiBhLCAuYnJvY2h1cmVCdG57IGJhY2tncm91bmQ6IzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgdGV4dC1zaGFkb3c6bm9uZTsgYW5pbWF0aW9uOmFsbCAzczsgYm9yZGVyLWNvbG9yOiMwMjc2YjM7IH0gLnByb21vQlROOmhvdmVyLCAucHJvbW9CVE4gYTpob3ZlcnsgYmFja2dyb3VuZDojZGUwMDAwOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICNkZTAwMDA7IH0gLnByb21vQlROOmhvdmVyID4gKiA+IC5mYSwgLnByb21vQlROIGE6aG92ZXIgPiAqID4gLmZhIHsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojZGUwMDAwOyB9IC5wcm9tb0JUTi5ncm93OmhvdmVyIHsgdHJhbnNmb3JtOnNjYWxlKDEuMSk7IH0gLnByb21vQlROLmdyb3c6aG92ZXIsIC5wcm9tb0JUTi5ncm93OmhvdmVyID4gKiA+IC5mYSwgLnByb21vQlROLmdyb3cgYTpob3ZlciA+ICogPiAuZmEgeyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlIHsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB0cmFuc2l0aW9uOjFzIGFsbCBlYXNlOyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6YmVmb3JlIHsgY29udGVudCA6IiAiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHotaW5kZXggOi0xOyBib3JkZXItcmFkaXVzIDoxMDBweDsgd2lkdGggOjAlOyBoZWlnaHQgOjEyMCU7IHRvcCA6NTAlOyBib3R0b20gOjUwJTsgbGVmdCA6NTAlOyByaWdodCA6NTAlOyB0cmFuc2Zvcm0gOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgdHJhbnNpdGlvbiA6YWxsIDAuNnMgZWFzZTsgYm9yZGVyOnVuc2V0OyBiYWNrZ3JvdW5kOiNkZTAwMDA7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpob3ZlciB7IGJhY2tncm91bmQ6IzAyNzZiMzsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOzsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyOmJlZm9yZSB7IHdpZHRoOjEyMCU7IH0gLnByb21vQlROLnJpcHBsZTpob3ZlciBzcGFuLmZheyBjb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcik7IH0gLnByb21vQXJyb3csLnByb21vQ29sb3J7IGNvbG9yOiMwMjc2YjMhaW1wb3J0YW50OyB9IC5icm9jaHVyZUJ0bnsgYm9yZGVyOm5vbmU7IGRpc3BsYXk6YmxvY2s7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjVweDsgfSAudmRwLWJ0biB7IGJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4wNjNyZW0gOyBwYWRkaW5nOjhweCA1cHg7IHdpZHRoOjIzN3B4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0MDBweCkgeyAuYnRuLWRlZmF1bHQsIC5jdXN0b21mb3JtX3N1Ym1pdCwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1kZWZhdWx0LCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWRlZmF1bHR7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC5hcHBseS1jcmVkaXQgeyBiYWNrZ3JvdW5kOiMzNWE5ZTY7IGJvcmRlcjoxcHggc29saWQgIzFjOTBjZDsgfSAuYXBwbHktY3JlZGl0OmhvdmVyIHsgYmFja2dyb3VuZDp7JEFQUExZX0NSRURJVF9CVE5fQ09MT1JfRU5ESE9WRVJDT0xPUn07IH0gfSAuYmdfYmx1ZXsgYmFja2dyb3VuZC1jb2xvcjojMDY4OGZhIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfcmVkeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjAwMDAhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ncmVlbnsgYmFja2dyb3VuZC1jb2xvcjojNjhhNTRiIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfYmxhY2t7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2dyYXl7IGJhY2tncm91bmQtY29sb3I6Izc5Nzk3OSFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2JsdWUgYSwuYmdfcmVkIGEsLmJnX2dyZWVuIGEsLmJnX2JsYWNrIGEsLmJnX2dyYXkgYSB7IGNvbG9yOiNmZmY7IH0gLmJnX2RlZmF1bHR7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNyFpbXBvcnRhbnQ7IH0gLmJveDI3eyB3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206OHB4OyB9IC5ib3gyNyBheyB3aWR0aDoxMzFweDsgaGVpZ2h0OjI4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uMTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteCA7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjI4cHg7IHRleHQtYWxpZ246IGNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MjcgYTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgLTMycHggcmVwZWF0LXg7IGNvbG9yOiNGRkZGRkY7IH0gLmJveDI4eyB3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6IzZmNmY2ZiB1cmwoL2ltYWdlcy9saXRlcl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgbWFyZ2luOjAgMHB4IDAgMDsgfSAudGV4dDQ0eyB3aWR0aDoxMjdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGl0ZXJfbGluZS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoxOHB4OyB9IC5jb25zdW1wdGlvbi1ub3QtYXZhaWxhYmxlID4gLnRleHQ0NCA+IHNwYW4gPiAjY2l0eUZ1ZWwgeyBkaXNwbGF5Om5vbmU7IH0gLmNvbnN1bXB0aW9uLW5vdC1hdmFpbGFibGUgPiAudGV4dDQ0ID4gc3BhbiA+ICNoaWdod2F5RnVlbCB7IGRpc3BsYXk6bm9uZTsgfSAudGV4dF9zbGlkZSBhIHsgaGVpZ2h0OjM4cHg7IG1hcmdpbi1yaWdodDowLjNlbTsgcGFkZGluZy10b3A6MXB4ICFpbXBvcnRhbnQ7IH0gLnRleHRfc2xpZGUgYSA+IGIgeyBkaXNwbGF5OmJsb2NrOyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoyNXB4OyB3aWR0aDoxMDAlOyB9IC50ZXh0X3NsaWRlIGEgPiBiID4gbTEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IHdoaXRlLXNwYWNlOm5vd3JhcDsgbGluZS1oZWlnaHQ6MzhweCAhaW1wb3J0YW50OyB0b3A6LThweDsgbGVmdDowOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfNCBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfNCA0cyBlYXNlIDVzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfMyBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfMyAzcyBlYXNlIDRzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnRleHRfc2xpZGVfMiBhID4gYiA+IG0xIHsgYW5pbWF0aW9uOnRleHRfc2xpZGVfMiAycyBlYXNlIDJzOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyB9IC50ZXh0X3NsaWRlLnByb21vY29kZWJveCB7IHBhZGRpbmc6MHB4IDBweDsgbWFyZ2luLWxlZnQ6MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjlweDsgfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfNCB7IDAlIHsgdG9wOi04cHg7IH0gMjUlIHsgdG9wOi00NnB4OyB9IDUwJSB7IHRvcDotODRweDsgfSA3NSUgeyB0b3A6LTEyMnB4OyB9IDEwMCUgeyB0b3A6LTE2MHB4OyB9IH0gQGtleWZyYW1lcyB0ZXh0X3NsaWRlXzMgeyAwJSB7IHRvcDotOHB4OyB9IDMzJSB7IHRvcDotNDZweDsgfSA2NiUgeyB0b3A6LTg0cHg7IH0gMTAwJSB7IHRvcDotMTIycHg7IH0gfSBAa2V5ZnJhbWVzIHRleHRfc2xpZGVfMiB7IDAlIHsgdG9wOi04cHg7IH0gNTAlIHsgdG9wOi00NnB4OyB9IDEwMCUgeyB0b3A6LTg0cHg7IH0gfSAubWFwIHsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5tYXAgLndyYXBwZXJ7IHBvc2l0aW9uOnN0YXRpYyAhaW1wb3J0YW50OyB9IC5tYXBfZGVhbGVyX2xpc3QgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcGFkZGluZzowIDMwcHg7IHdpZHRoOjMxNXB4OyBoZWlnaHQ6MTAwJTsgdGV4dC1hbGlnbjpsZWZ0OyBvdmVyZmxvdy15OmF1dG87IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtIHsgY3Vyc29yOnBvaW50ZXI7IHBhZGRpbmc6MTNweCAwOyBmb250LXNpemU6MC44MTNyZW0gOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWU6aG92ZXIgeyBmb250LXdlaWdodDo3MDA7IH0gLm1hcF9kZWFsZXJfbGlzdF9pdGVtX25hbWVfYWN0aXZlIHsgZm9udC13ZWlnaHQ6NzAwOyB9IC5tYXJrZXJTcGFuIHsgaGVpZ2h0OjE4cHg7IHdpZHRoOjIwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLm1hcmtlclNwYW46YmVmb3JlIHsgY29udGVudDonJzsgaGVpZ2h0OjRweDsgd2lkdGg6NHB4OyBib3JkZXI6MnB4IHNvbGlkICMzMzM7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MnB4OyBsZWZ0OjBweDsgei1pbmRleDoxOyBiYWNrZ3JvdW5kOiNmZmY7IGxpbmUtaGVpZ2h0OjI2cHg7IGJvcmRlci1yYWRpdXM6NDBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjQwcHg7IC1tb3otYm9yZGVyLXJhZGl1czo0MHB4OyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFya2VyU3BhbjphZnRlciB7IGNvbnRlbnQ6Jyc7IGhlaWdodDowcHg7IHdpZHRoOjBweDsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbToycHg7IGxlZnQ6MnB4OyBib3JkZXI6MTBweCB0cmFuc3BhcmVudCBzb2xpZDsgYm9yZGVyLXRvcC1jb2xvcjojMzMzOyBib3JkZXItd2lkdGg6N3B4IDJweCAwcHggMnB4OyB9IC5tYXBfb3Blbl9ob3VycyB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuOSk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyB3aWR0aDo0MDBweDsgaGVpZ2h0OjEwMCU7IHRleHQtYWxpZ246bGVmdDsgfSAub3Blbl9ob3Vyc19jb250YWluZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHRleHQtYWxpZ246bGVmdDsgfSAubWFwX29wZW5faG91cnMgLm1hcF9vcGVuX2hvdXJzLS10aXRsZSwgLm9wZW5faG91cnNfY29udGFpbmVyIGgyLCAub3Blbl9ob3Vyc19jb250YWluZXIgc3Bhbi5oMi1hbHQgeyBmb250LXNpemU6MS41ZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctbGVmdDoxNXB4OyBtYXJnaW4tdG9wOjIwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgY29sb3I6aW5oZXJpdDsgfSAubWFwX29wZW5faG91cnMgdWwsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciB1bCB7IHBhZGRpbmc6MCAwOyB9IC5tYXBfb3Blbl9ob3VycyB1bCBsaSwgLm9wZW5faG91cnNfY29udGFpbmVyIHVsIGxpIHsgbGlzdC1zdHlsZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgY3Vyc29yOmhhbmQ7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNmM2YzZjM7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZHsgcGFkZGluZzo2cHggMzBweCA4cHggMTVweDsgZGlzcGxheTpibG9jazsgfSAuZXhwYW5kYWJsZV9jb250ZW50eyBwYWRkaW5nOjBweCAxNnB4IDVweCAxNnB4OyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyB9IC5leHBhbmRhYmxlX2NvbnRlbnQgZGl2LCAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gZGl2IHsgZGlzcGxheSA6ZmxleDsgZmxleC1kaXJlY3Rpb24gOnJvdzsgfSAuZXhwYW5kYWJsZV9jb250ZW50ID4gZGl2ID4gc3BhbjpmaXJzdC1vZi10eXBlLCAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24gZGl2IHNwYW46Zmlyc3Qtb2YtdHlwZSB7IHdpZHRoOjQwJTsgfSAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb257IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IG1hcmdpbi10b3A6MTVweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGggOjc1OXB4KSB7IC5leHBhbmRhYmxlX2NvbnRlbnQsIC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IH0gLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIHRhYmxleyBtYXJnaW4tdG9wOjE1cHg7IH0gLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvd3sgZmxvYXQ6cmlnaHQ7IG1hcmdpbi10b3A6M3B4OyB9IC5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3cuZXhwYW5kZWR7IHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTsgfSAubWFwX29wZW5faG91cnNfbW9iaWxleyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgLm1hcF9vcGVuX2hvdXJzX21vYmlsZS0tdGl0bGUgeyBmb250LXNpemU6dmFyKC0tZnM0KTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSB1bHsgcGFkZGluZzowIDA7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZSB1bCBsaXsgbGlzdC1zdHlsZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2YzZjNmMzsgfSAubWFpbl9sZWZ0X2JveCAjZm9vdGVyR29vZ2xlTWFwSG91cnNDb250YWluZXJ7IHdpZHRoOjk2MHB4OyB9IC52aWRlb0J0blNsaWRlciwgLnBob3RvQnRuU2xpZGVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjOTk5OTk5OyBjb2xvcjojOTk5OTk5OyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBvcGFjaXR5OjAuNTsgfSAudmlkZW9CdG5TbGlkZXI6aG92ZXIsIC5waG90b0J0blNsaWRlcjpob3ZlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6Izk5OTk5OTsgb3BhY2l0eTowLjU7IH0gLnBob3RvQnRuU2xpZGVyIC5mYSwgLnZpZGVvQnRuU2xpZGVyIC5mYXsgY29sb3I6Izk5OTk5OTsgfSAucGhvdG9CdG5TbGlkZXI6aG92ZXIgLmZhLCAudmlkZW9CdG5TbGlkZXI6aG92ZXIgLmZheyBjb2xvcjojZmZmZmZmOyB9IC52aWRlb0J0blNsaWRlclVzZWQsIC5waG90b0J0blNsaWRlclVzZWR7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNiM2IzYjM7IGNvbG9yOiNiM2IzYjM7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IG9wYWNpdHk6MC45OyB9IC52aWRlb0J0blNsaWRlclVzZWQ6aG92ZXIsIC5waG90b0J0blNsaWRlclVzZWQ6aG92ZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNiM2IzYjM7IG9wYWNpdHk6MC41OyB9IC5waG90b0J0blNsaWRlclVzZWQgLmZhLCAudmlkZW9CdG5TbGlkZXJVc2VkIC5mYXsgY29sb3I6I2IzYjNiMzsgfSAucGhvdG9CdG5TbGlkZXJVc2VkOmhvdmVyIC5mYSwgLnZpZGVvQnRuU2xpZGVyVXNlZDpob3ZlciAuZmF7IGNvbG9yOiNmZmZmZmY7IH0gLnZpZGVvc19waWN0dXJlc19idXR0b25zX2NvbnRhaW5lcnsgbGVmdDo1cHg7IGJvdHRvbTo4MnB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo5OTk7IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206LTgwcHg7IH0gLi1kaXNwbGF5LW5vbmV7IGRpc3BsYXk6bm9uZTsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IHRleHQtYWxpZ246Y2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IHBhZGRpbmc6NDBweCAxNXB4OyB9ICNkZWZhdWx0VG9wQmFubmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MTAwJTsgYm9yZGVyLXJhZGl1czo2cHg7IGN1cnNvcjpwb2ludGVyOyB9ICNkZWZhdWx0VG9wQmFubmVyVGl0bGUsICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXAgZGl2LmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyeyBtYXJnaW46MzBweCAwIDIwcHggMDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgfSAjZGVmYXVsdFRvcEJhbm5lckJ0bnsgcGFkZGluZzoxMHB4IDMwcHg7IGJhY2tncm91bmQ6YmxhY2s7IGJvcmRlcjoycHggd2hpdGUgc29saWQ7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiNmZmZmZmY7IGJveC1zaGFkb3c6MHB4IDJweCAxM3B4IDBweCAjMWIxYjFiOyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IGZvbnQtc2l6ZTozLjEyNXJlbSA7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXNpemU6Mi44MTNyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6My4xMjVyZW0gOyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IH0gI3RvcEJhbm5lckltYWdlOmVtcHR5eyBtYXJnaW46MCAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MjY1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MjY1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzo0MHB4IDE1cHg7IH0gI2dvb2dsZV9yZXZpZXdzeyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2OyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBsaXN0LXN0eWxlOm5vbmU7IHBhZGRpbmc6MDsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgbGkgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHBhZGRpbmc6aW5pdGlhbDsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcnMgdWwgbGkgaSB7IGNvbG9yOiNFNEIyNDg7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXNpemU6MC45MzhyZW0gOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSBpLmluYWN0aXZlIHsgY29sb3I6I2M2YzZjNjsgfSAjZ29vZ2xlX3Jldmlld3MgLnJldmlldy1pdGVtIC5yZXZpZXctc3RhcjphZnRlciB7IGNvbnRlbnQ6IlwyNjA1IjsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0eyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjVweCA4cHg7IGhlaWdodDoyN3B4OyBsaW5lLWhlaWdodDoyN3B4OyB9IC5yZXZpZXctYXV0aG9yeyB0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQuZGVmYXVsdHsgY29sb3I6IzQ0NDsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjZjVmNWY1LCAjZjFmMWYxKTsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5yZWR7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQtY29sb3I6I2Y1ZjVmNTsgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgI0RENEIzOSwgI0QxNDgzNik7IGJvcmRlcjoxcHggc29saWQgI0QxNDgzNjsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LmJsdWV7IGNvbG9yOiNmZmY7IGJhY2tncm91bmQtY29sb3I6IzREOTBGRTsgYmFja2dyb3VuZC1pbWFnZTotbW96LWxpbmVhci1ncmFkaWVudChjZW50ZXIgdG9wICwgIzREOTBGRSwgIzQ3ODdFRCk7IGJvcmRlcjoxcHggc29saWQgIzMwNzlFRDsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgaWZyYW1lLCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgb2JqZWN0LCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUgZW1iZWQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMnsgcG9zaXRpb246cmVsYXRpdmU7IHBhZGRpbmctYm90dG9tOjU2LjI1JTsgaGVpZ2h0OjA7IG92ZXJmbG93OmhpZGRlbjsgbWF4LXdpZHRoOjEwMCU7IH0gLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBpZnJhbWUsIC5lbWJlZC1jb250YWluZXIteW91dHViZTIgb2JqZWN0LCAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIGVtYmVkIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9ICNzZWFyY2hDcml0ZXJpYVc6OmFmdGVyLCAjYWN0aW9uQm94QnRuOjphZnRlciwgI2xpbmtDb250YWluZXI6OmFmdGVyeyBjb250ZW50OicnOyBoZWlnaHQ6MXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luLWJvdHRvbTonMTVweCc7IH0gI3NlYXJjaENyaXRlcmlhVzo6YWZ0ZXIsICNhY3Rpb25Cb3hCdG46OmFmdGVyLCAjbGlua0NvbnRhaW5lcjo6YWZ0ZXJ7IGJhY2tncm91bmQ6I2FhYTsgd2lkdGg6MjgwcHg7IH0gLmJhbm5lclBvcHVwQ2xvc2V7IGNvbG9yOiNhYWE7IH0gLnNlZVZpZGVvQnRuMXsgYmFja2dyb3VuZC1jb2xvcjojMDAwICFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgI2ZmZiAhaW1wb3J0YW50OyBjb2xvcjojZmZmICFpbXBvcnRhbnQ7IH0gLnNlZVZpZGVvQnRuMTpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojZmZmICFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgIzAwMCAhaW1wb3J0YW50OyBjb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IH0gI2JvdHRvbUxlZnRCYW5uZXJJbWFnZXsgbWFyZ2luOjEwcHggMHB4IDBweDsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjZweDsgY3Vyc29yOnBvaW50ZXI7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyV3JhcHsgdGV4dC1hbGlnbjpjZW50ZXI7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgcGFkZGluZzoxNXB4OyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lclRpdGxleyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6Mi4xODhyZW0gOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lclRleHR7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxLjkzOHJlbSA7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyV3JhcCBkaXYuZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJCdG5XcmFwcGVyeyBtYXJnaW46MjBweCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJCdG57IHBhZGRpbmc6N3B4IDIxcHg7IGJhY2tncm91bmQ6YmxhY2s7IGJvcmRlcjoycHggd2hpdGUgc29saWQ7IGJvcmRlci1yYWRpdXM6M3B4OyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiNmZmZmZmY7IGJveC1zaGFkb3c6MHB4IDJweCAxM3B4IDBweCAjMWIxYjFiOyBmb250LXNpemU6NzAlOyB9IC5tYWluRGl2LXdyYXBwZXIgeyBwYWRkaW5nLXRvcDowLjAxcmVtOyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSB7IHBhZGRpbmc6MCAxMnB4OyBoZWlnaHQ6MjZweDsgbGluZS1oZWlnaHQ6MjdweDsgYm9yZGVyLXJhZGl1czowOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6IzAwMDAwMDsgY29sb3I6d2hpdGU7IGNvbG9yOiNmZmZmZmY7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLmJ0biB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiAuYnRuLWRlZmF1bHQ6aG92ZXIgeyBib3JkZXItY29sb3I6IzAwMDAwMDsgYm9yZGVyLWNvbG9yOiMwMDAwMDA7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6bm9uZTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE3NSk7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDozNTBweDsgcmlnaHQ6MDsgcGFkZGluZzoxNXB4OyB6LWluZGV4Ojk5OTk7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGhlaWdodDphdXRvOyB0b3A6MjNweDsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgZGl2Om5vdChbY2xhc3NdKSB7IGZsb2F0OmluaXRpYWw7IHdpZHRoOjEwMCU7IG1hcmdpbi1yaWdodDowOyB0ZXh0LWFsaWduOmluaXRpYWw7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXI6aG92ZXIgLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6YmxvY2s7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlci5pc09wZW4gLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6YmxvY2s7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdywgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdyBkaXYgeyBtYXJnaW4tcmlnaHQ6aW5oZXJpdDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBmbG9hdDpub25lOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3cgdGFibGUgdGV4dGFyZWEgeyB3aWR0aDpjYWxjKDEwMCUgKyAycHgpICFpbXBvcnRhbnQ7IH0gI3VzZWRfNDA0X21lc3NhZ2UgeyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozMHB4OyBib3JkZXI6MXB4IHNvbGlkICNmMDA7IG1hcmdpbjowIDAgMjBweCAwOyB9IC5hdWRpLXRpdGxlIGgyIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5hdWRpLWNvbG9yIHsgY29sb3I6I2JiMGEzMDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBkaXYjc29jaWFsX21lZGlhX2ljb25zX2RpdiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IGEuc29jaWFsLWxpbmsgeyAtLWZzOnZhcigtLWZzNik7IC0tdHh0LWNvbG9yOiMwMDAwMDA7IH0gI3NvY2lhbF9tZWRpYV9pY29uc19kaXYgLnNvY2lhbC1saW5rW2RhdGEtdG9vbHRpcD0nWW91dHViZSddIC5zb2NpYWwtaWNvbnMgeyBtYXJnaW4tcmlnaHQ6M3B4OyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgdGFibGV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgd2lkdGg6MTAwJTsgcGFkZGluZzowIDAgMTBweCAwOyBib3JkZXItcmFkaXVzOjNweCAzcHggMCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxlIHRyOmZpcnN0LWNoaWxkeyBmb250LXNpemU6MS4xMjVyZW0gOyBoZWlnaHQ6NDBweDsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxlIHNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MzVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAucGF5cGFsX2J1dHRvbl9odG1sIGlucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il17IHdpZHRoOjEwMCU7IGJvcmRlcjpub25lOyBwYWRkaW5nOjA7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQwMHB4KSB7IC5wYXlwYWxfYnV0dG9uX2h0bWx7IHdpZHRoOjkwJTsgbWFyZ2luOjAgYXV0bzsgfSB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24geyB6LWluZGV4OjEwMDAwMDAwMDIxOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uZGVza3RvcCB7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uZGVza3RvcCBzZWxlY3QgeyBtYXgtd2lkdGg6MzAwcHg7IG1hcmdpbjowIGF1dG87IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5zbWFsbCB7IHBhZGRpbmc6MjBweCAxMHB4OyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gbGFiZWwgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uICNtdXRsaUFkZHJlc3NTdWJtaXQgeyBtYXJnaW46MCBhdXRvOyBtYXJnaW4tdG9wOjhweDsgZGlzcGxheTp0YWJsZTsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uICNtdWx0aS1kZWFsZXItbWFwIHsgaGVpZ2h0OjUyMHB4OyBtYXJnaW4tYm90dG9tOjEycHg7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5yZXZlYWwtbW9kYWwgc3BhbiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC52YWxpZGl0eS1lcnJvbmVvdXMgeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyFpbXBvcnRhbnQ7IH0gLmJveDQudmFsaWRpdHktZXJyb25lb3VzLCAuYm94NS52YWxpZGl0eS1lcnJvbmVvdXMgeyB3aWR0aDoyNjNweDsgfSAuZm9ybS1jb250cm9sIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgaGVpZ2h0OjM0cHg7IHBhZGRpbmc6NnB4IDEycHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IGNvbG9yOiM1NTU7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7IGJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7IC13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IC1vLXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cywtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgfSAuYmFubmVyLWZvcm0tYm94IHsgcGFkZGluZzozMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOjsgY29sb3I6OyB9IC5iYW5uZXItZm9ybS10aXRsZSB7IGZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zaXplOjE4cHQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5iYW5uZXItZm9ybS1zdWJ0aXRsZSB7IGZvbnQtc2l6ZToxMS41cHQ7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5iYW5uZXItZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbToyNXB4OyB9IC5iYW5uZXItZm9ybS1ib2R5IC5mb3JtLWNvbnRyb2wgeyBoZWlnaHQ6NDFweDsgbWFyZ2luLWJvdHRvbToxNXB4OyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuYmFubmVyLWZvcm0tYm94LWZvb3RlciB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IH0gLmJhbm5lci1mb3JtLWJveC1oZWFkZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5idG4uYmFubmVyLWJ0biB7IHBhZGRpbmc6NnB4IDI0cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTsgYmFja2dyb3VuZC1jb2xvcjpibGFjazsgY29sb3I6d2hpdGU7IGJhY2tncm91bmQtY29sb3I6OyBjb2xvcjo7IH0gLmJ0bi5iYW5uZXItYnRuOmhvdmVyIHsgYm94LXNoYWRvdzppbnNldCAwIDAgMTAwcHggMTAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9IC5idG4geyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzo2cHggMTJweDsgbWFyZ2luLWJvdHRvbTowOyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDo0MDA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IHRleHQtYWxpZ246Y2VudGVyOyB3aGl0ZS1zcGFjZTpub3dyYXA7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgLW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247IHRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247IGN1cnNvcjpwb2ludGVyOyAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IC1tb3otdXNlci1zZWxlY3Q6bm9uZTsgLW1zLXVzZXItc2VsZWN0Om5vbmU7IHVzZXItc2VsZWN0Om5vbmU7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5sYXp5bG9hZHsgdmlzaWJpbGl0eTpoaWRkZW47IH0gLmdib3ggeyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyB9IC5wZCB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGZvbnQtc2l6ZTowLjVlbTsgdmVydGljYWwtYWxpZ246c3VwZXI7IH0gLnVpLWxvYWRlci1iYWNrZ3JvdW5keyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwLjMpOyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmZpeGVkOyB6LWluZGV4OjEwMDAwMDAwMDsgfSAudWktbG9hZGVyLWJhY2tncm91bmQtZ2lmeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgbGVmdDo1MCU7IH0gLmQyY0Zvb3RlckNvb2tpZURlbGV0ZVRpdGxlIHsgZm9udC1zaXplOjEuM2VtOyB9IC5kMmNGb290ZXJDb29raWVEZWxldGVUZXh0IHsgbWFyZ2luLXRvcDozMHB4OyB9IC5tb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9idG57IGJhY2tncm91bmQ6IzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgcGFkZGluZzoxMHB4IDIwcHggMTBweCAyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAubW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfYnRuIHNwYW57IGJhY2tncm91bmQ6IzAyNzZiMzsgY29sb3I6I2ZmZmZmZjsgfSAjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfc21zeyBiYWNrZ3JvdW5kOiMwMjc2YjM7IGNvbG9yOiNmZmZmZmY7IH0gI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX3NtcyBzcGFueyBiYWNrZ3JvdW5kOiMwMjc2YjM7IGNvbG9yOiNmZmZmZmY7IH0gLmJsYWNrQ29sb3JCb2xkeyBjb2xvcjojMDAwIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDsgfSAucHJpY2VNc2dEaXY6aGFzKD4gLmV2YXBEaXNjbGFpbWVySWNvbiksIC5jYXNoUmViYXRlUG9zdFRheFRleHQ6aGFzKD4gLmV2YXBEaXNjbGFpbWVySWNvbiksIC5wcmljZVNwYW46aGFzKD4gLmV2YXBEaXNjbGFpbWVySWNvbil7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6M3B4OyB9IC5mbGV4LWNlbnRlciAucmVzcG9uc2l2ZS1lZGl0b3IgeyBmbGV4LWdyb3c6MTsgfSAucmV2ZWFsLW1vZGFseyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5nbS1zdHlsZS1pdy1kIHsgcGFkZGluZy10b3A6MTJweDsgbWFyZ2luLXJpZ2h0Oi0yNHB4OyB9IC5nbS1zdHlsZSAuZ20tc3R5bGUtaXctYyB7IGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOyB9IC5ncmVjYXB0Y2hhLWJhZGdlIHsgdmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudDsgfSAucmVjYXB0Y2hhLWRpc2NsYWltZXIgeyBmb250LXNpemU6MC42ODhyZW0gOyBjb2xvcjojNzc3OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjhweCAwOyBsaW5lLWhlaWdodDoxLjM7IH0KLyoqIC9jc3MvZm9udHMuRm9yZEYxLmNzcyAqKi8KQGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRm9yZEYxJztmb250LXdlaWdodDozMDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtTGlnaHQud29mZjInKWZvcm1hdCgnd29mZjInKTt9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRm9yZEYxJztmb250LXdlaWdodDo0MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtUmVndWxhci53b2ZmMicpZm9ybWF0KCd3b2ZmMicpO31AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OidGb3JkRjEnO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXN0eWxlOm5vcm1hbDtzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0ZvcmRGMS1NZWRpdW0ud29mZjInKWZvcm1hdCgnd29mZjInKTt9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRm9yZEYxJztmb250LXdlaWdodDo2MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtU2VtaWJvbGQud29mZjInKWZvcm1hdCgnd29mZjInKTt9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRm9yZEYxJztmb250LXdlaWdodDo3MDA7Zm9udC1zdHlsZTpub3JtYWw7c3JjOnVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9Gb3JkRjEtQm9sZC53b2ZmMicpZm9ybWF0KCd3b2ZmMicpO30KLyoqIC9jc3MvYmFzZS5jc3MgKiovCnN0YWNrLWxjLCAuc3RhY2stbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgfSBzdGFjay1sYyA+ICosIC5zdGFjay1sYyA+ICogeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1ib3R0b206MDsgfSBzdGFjay1sYyA+ICogKyAqLCAuc3RhY2stbGMgPiAqICsgKiB7IG1hcmdpbi10b3A6dmFyKC0tc3BhY2UpOyB9IHN0YWNrLWxjLi0tczAgPiAqICsgKiwgLnN0YWNrLWxjLi0tczAgPiAqICsgKiB7IGJvcmRlci13aWR0aDowOyBib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgYm9yZGVyLWNvbG9yOmluaGVyaXQ7IH0gLmJveC1sYywgYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOnZhcigtLXNwYWNlKTsgb3V0bGluZTp2YXIoLS1ib3JkZXItdGhpbikgdHJhbnNwYXJlbnQ7IG91dGxpbmUtb2Zmc2V0OmNhbGModmFyKC0tYm9yZGVyLXRoaW4pICogLTEpOyB9IC5ib3gtbGMsIGJveC1sYyAqIHsgY29sb3I6aW5oZXJpdDsgfSAuYmctYm94eyBjb2xvcjp2YXIoLS1ibGFjayk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyBib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IC5nbGFzcy1ib3h7IGJvcmRlcjpub25lOyBiYWNrZ3JvdW5kOm5vbmU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGNvbG9yOmluaGVyaXQ7IH0gLmN0ci1ib3gsIC5mbGV4LWJveCwgLmZsZXgtY29sdW1uLCAuZmxleC1hcm91bmQsIC5mbGV4LWJldHdlZW4sIC5mbGV4LWV2ZW5seSwgLmZsZXgtY2VudGVyLCAuZmxleC1zdGFydCwgLmZsZXgtZW5kLCAuZmxleC1hdXRvLCAuZmxleC1lcXVhbHsgZGlzcGxheTpmbGV4OyB9IC5pbmxpbmUtYm94eyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuc2hhZG93LWJveHsgYm94LXNoYWRvdzowIDAgMTBweCAycHggdmFyKC0tbWlkLWdyYXkpOyBib3JkZXItY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IH0gLmZsZXgtYm94Om5vdCg6aXMoLmZsZXgtYmV0d2VlbiwuZmxleC1ldmVubHksLmZsZXgtYXJvdW5kKSkgPiAqICsgKnsgbWFyZ2luLWxlZnQ6dmFyKC0tcyk7IH0gLmdyb3VwLWxjLCBncm91cC1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgfSAuZ3JvdXAtbGMgPiAqLCBncm91cC1sYyA+ICogeyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyICogLTEpOyB9IC5ncm91cC1sYyA+ICogPiAqLCBncm91cC1sYyA+ICogPiAqIHsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpIHsgb3ZlcmZsb3c6aGlkZGVuOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIgKiAtMSk7IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpID4gKiA+ICogeyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgZmxleC1ncm93OjE7IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpID4gKiA+IDpmaXJzdC1jaGlsZCB7IGZsZXgtYmFzaXM6MDsgZmxleC1ncm93Ojk5OTsgbWluLXdpZHRoOmNhbGModmFyKC0tc2lkZWJhci1icCwgNTAlKSAtIHZhcigtLXNwYWNlKSk7IH0gOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW46Y2FsYygodmFyKC0tc3BhY2UpIC8gMikgKiAtMSk7IH0gOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gKiB7IGZsZXgtZ3JvdzoxOyBmbGV4LWJhc2lzOmNhbGMoKHZhcigtLXN3aXRjaC1icCwgMzByZW0pIC0gKDEwMCUgLSB2YXIoLS1zcGFjZSkpKSAqIDk5OSk7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+IDpudGgtbGFzdC1jaGlsZChuKzUpLCA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiA6bnRoLWxhc3QtY2hpbGQobis1KSB+ICogeyBmbGV4LWJhc2lzOjEwMCU7IH0gLi0tczB7LS1zcGFjZTp2YXIoLS1zMCk7fSAuLS1zLTl7LS1zcGFjZTp2YXIoLS1zLTkpO30gLi0tcy04ey0tc3BhY2U6dmFyKC0tcy04KTt9IC4tLXMtN3stLXNwYWNlOnZhcigtLXMtNyk7fSAuLS1zLTZ7LS1zcGFjZTp2YXIoLS1zLTYpO30gLi0tcy01ey0tc3BhY2U6dmFyKC0tcy01KTt9IC4tLXMtNHstLXNwYWNlOnZhcigtLXMtNCk7fSAuLS1zLTN7LS1zcGFjZTp2YXIoLS1zLTMpO30gLi0tcy0yey0tc3BhY2U6dmFyKC0tcy0yKTt9IC4tLXMtMXstLXNwYWNlOnZhcigtLXMtMSk7fSAuLS1zey0tc3BhY2U6dmFyKC0tcyk7fSAuLS1zMXstLXNwYWNlOnZhcigtLXMxKTt9IC4tLXMyey0tc3BhY2U6dmFyKC0tczIpO30gLi0tczN7LS1zcGFjZTp2YXIoLS1zMyk7fSAuLS1zNHstLXNwYWNlOnZhcigtLXM0KTt9IC4tLXM1ey0tc3BhY2U6dmFyKC0tczUpO30gLi0tczZ7LS1zcGFjZTp2YXIoLS1zNik7fSAuLS1zN3stLXNwYWNlOnZhcigtLXM3KTt9IC4tLXM4ey0tc3BhY2U6dmFyKC0tczgpO30gLi0tczl7LS1zcGFjZTp2YXIoLS1zOSk7fSAuLS1mcy05e2ZvbnQtc2l6ZTp2YXIoLS1mcy05KTstLWZzOnZhcigtLWZzLTkpO30gLi0tZnMtOHtmb250LXNpemU6dmFyKC0tZnMtOCk7LS1mczp2YXIoLS1mcy04KTt9IC4tLWZzLTd7Zm9udC1zaXplOnZhcigtLWZzLTcpOy0tZnM6dmFyKC0tZnMtNyk7fSAuLS1mcy02e2ZvbnQtc2l6ZTp2YXIoLS1mcy02KTstLWZzOnZhcigtLWZzLTYpO30gLi0tZnMtNXtmb250LXNpemU6dmFyKC0tZnMtNSk7LS1mczp2YXIoLS1mcy01KTt9IC4tLWZzLTR7Zm9udC1zaXplOnZhcigtLWZzLTQpOy0tZnM6dmFyKC0tZnMtNCk7fSAuLS1mcy0ze2ZvbnQtc2l6ZTp2YXIoLS1mcy0zKTstLWZzOnZhcigtLWZzLTMpO30gLi0tZnMtMntmb250LXNpemU6dmFyKC0tZnMtMik7LS1mczp2YXIoLS1mcy0yKTt9IC4tLWZzLTF7Zm9udC1zaXplOnZhcigtLWZzLTEpOy0tZnM6dmFyKC0tZnMtMSk7fSAuLS1mczB7Zm9udC1zaXplOnZhcigtLWZzMCk7LS1mczp2YXIoLS1mczApO30gLi0tZnMxe2ZvbnQtc2l6ZTp2YXIoLS1mczEpOy0tZnM6dmFyKC0tZnMxKTt9IC4tLWZzMntmb250LXNpemU6dmFyKC0tZnMyKTstLWZzOnZhcigtLWZzMik7fSAuLS1mczN7Zm9udC1zaXplOnZhcigtLWZzMyk7LS1mczp2YXIoLS1mczMpO30gLi0tZnM0e2ZvbnQtc2l6ZTp2YXIoLS1mczQpOy0tZnM6dmFyKC0tZnM0KTt9IC4tLWZzNXtmb250LXNpemU6dmFyKC0tZnM1KTstLWZzOnZhcigtLWZzNSk7fSAuLS1mczZ7Zm9udC1zaXplOnZhcigtLWZzNik7LS1mczp2YXIoLS1mczYpO30gLi0tZnM3e2ZvbnQtc2l6ZTp2YXIoLS1mczcpOy0tZnM6dmFyKC0tZnM3KTt9IC4tLWZzOHtmb250LXNpemU6dmFyKC0tZnM4KTstLWZzOnZhcigtLWZzOCk7fSAuLS1mczl7Zm9udC1zaXplOnZhcigtLWZzOSk7LS1mczp2YXIoLS1mczkpO30gLnNocmluay1ncm93e2ZsZXg6MSAxO30gLmZsZXgtd3JhcCB7ZmxleC13cmFwOndyYXA7fSAuZmxleC1yZXZlcnNlIHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9IC5mbGV4LWF1dG8gPiAqe2ZsZXg6MSAxIGF1dG87fSAuZmxleC1lcXVhbCA+ICp7ZmxleDoxIDE7fSAuYWxpZ24tY2VudGVyIHthbGlnbi1pdGVtczpjZW50ZXI7fSAuYWxpZ24tc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9IC5hbGlnbi1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQ7fSAuYWxpZ24tYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmU7fSAuZmxleC1jb2x1bW4ge2ZsZXgtZmxvdzpjb2x1bW47fSAuZmxleC1yb3cge2ZsZXgtZmxvdzpyb3c7fSAuZmxleC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDt9IC5mbGV4LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fSAuZmxleC1ldmVubHl7anVzdGlmeS1jb250ZW50OnNwYWNlLWV2ZW5seTt9IC5mbGV4LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30gLmZsZXgtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fSAuZmxleC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30gLi1wMCB7cGFkZGluZzowO30gLi1wdDAge3BhZGRpbmctdG9wOjA7fSAuLXBiMCB7cGFkZGluZy1ib3R0b206MDt9IC4tcHYwIHtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjB9IC4tcGgwIHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9IC4tcCB7cGFkZGluZzp2YXIoLS1zcGFjZSk7fSAuLXB2e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlKTsgcGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1waHtwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTt9IC4tcHR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UpO30gLi1wYntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLW0wIHttYXJnaW46MDt9IC4tbXQwIHttYXJnaW4tdG9wOjA7fSAuLW1iMCB7bWFyZ2luLWJvdHRvbTowO30gLi1tdjAge21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9IC4tbWgwIHttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfSAuLW0ge21hcmdpbjp2YXIoLS1zcGFjZSk7fSAuLW12e21hcmdpbi10b3A6dmFyKC0tc3BhY2UpOyBtYXJnaW4tYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tbWh7bWFyZ2luLWxlZnQ6dmFyKC0tc3BhY2UpOyBtYXJnaW4tcmlnaHQ6dmFyKC0tc3BhY2UpO30gLi1tdHttYXJnaW4tdG9wOnZhcigtLXNwYWNlKTt9IC4tbWJ7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLWIwIHtib3JkZXI6bm9uZTt9IC4tYjIge2JvcmRlci13aWR0aDoycHg7fSAuLWJ7Ym9yZGVyLXdpZHRoOjFweDt9IC4tYnR7Ym9yZGVyLXRvcC13aWR0aDoxcHg7fSAuLWJie2JvcmRlci1ib3R0b20td2lkdGg6MXB4O30gLi1idntib3JkZXItdG9wLXdpZHRoOjFweDtib3JkZXItYm90dG9tLXdpZHRoOjFweDt9IC4tYmh7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoxcHg7fSAuLXctZnVsbCB7d2lkdGg6MTAwdnc7fSAuLXctMTAwIHt3aWR0aDoxMDAlO30gLi13LTUwIHt3aWR0aDo1MCU7fSAuLXctMzMge3dpZHRoOjMzLjMzJTt9IC4tdy0yNSB7d2lkdGg6MjUlO30gLi13LTUwdyB7d2lkdGg6NTB2dzt9IC4tZnMteHhze2ZvbnQtc2l6ZTowLjE1cmVtOyAtLWZzOjAuMTVyZW07fSAuLWZzLXhze2ZvbnQtc2l6ZTowLjVyZW07IC0tZnM6MC41cmVtO30gLi1mcy1ze2ZvbnQtc2l6ZTowLjc1cmVtOyAtLWZzOjAuNzVyZW07fSAuLWZzLXNye2ZvbnQtc2l6ZTowLjlyZW07IC0tZnM6MC45cmVtO30gLi1mcy1scntmb250LXNpemU6MS4xcmVtOyAtLWZzOjEuMXJlbTt9IC4tZnMtbHtmb250LXNpemU6MS4yNXJlbTsgLS1mczoxLjI1cmVtO30gLi1mcy14bHtmb250LXNpemU6MS41cmVtOyAtLWZzOjEuNXJlbTt9IC4tZnMteHhse2ZvbnQtc2l6ZToycmVtOyAtLWZzOjJyZW07fSAuLWZzLXh4eGx7Zm9udC1zaXplOjIuMjVyZW07IC0tZnM6Mi4yNXJlbTt9IC4tZncxIHtmb250LXdlaWdodDoxMDA7fSAuLWZ3MiB7Zm9udC13ZWlnaHQ6MjAwO30gLi1mdzMge2ZvbnQtd2VpZ2h0OjMwMDt9IC4tZnc0IHtmb250LXdlaWdodDo0MDA7fSAuLWZ3NSB7Zm9udC13ZWlnaHQ6NTAwO30gLi1mdzYge2ZvbnQtd2VpZ2h0OjYwMDt9IC4tZnc3IHtmb250LXdlaWdodDo3MDA7fSAuLWZ3OCB7Zm9udC13ZWlnaHQ6ODAwO30gLi1mdzkge2ZvbnQtd2VpZ2h0OjkwMDt9IC4tYm9sZCB7Zm9udC13ZWlnaHQ6Ym9sZDt9IC50eHQtcmVkIHtjb2xvcjojY2MwMDAwO30gLnR4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXI7fSAudHh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQ7fSAudHh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0O30gLnR4dC11cHBlcnt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKSk7fSAudHh0LW5vdGV7Zm9udC1zdHlsZTppdGFsaWM7fSAudHh0LXBheW1lbnQge2NvbG9yOnZhcigtLW5ld3ZkcC1iZXN0cHJpY2UtdGV4dC1jb2xvci1wcmljZSkgIWltcG9ydGFudDt9IC4tcG9zcmVse3Bvc2l0aW9uOnJlbGF0aXZlO30gLmNlcnQtdHh0LXRyYW5zZm9ybXt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIG5vbmUpO30gW2hpZGRlbl0sIC5oaWRkZW4geyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSAuc2tlbGV0b24tc2xpZGVyID4gKnsgZGlzcGxheTpub25lOyB9IC5za2VsZXRvbi10eHR7IHRleHQtaW5kZW50OjEwMCU7IHdoaXRlLXNwYWNlOm5vd3JhcDsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgYm9yZGVyLXJhZGl1czowLjVyZW07IH0gLnNrZWxldG9uLWJ0bnsgd2lkdGg6bWluKDIwcmVtLDEwMCUpOyBoZWlnaHQ6Mi41cmVtOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IG1hcmdpbjphdXRvOyB9IC5za2VsZXRvbi1ibG9ja3sgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyB9IC5za2VsZXRvbi1zbGlkZXIsIC5za2VsZXRvbi10eHQsIC5za2VsZXRvbi1idG4sIC5za2VsZXRvbi1ibG9jayB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6YmxvY2s7IH0gLnNrZWxldG9uLXNsaWRlcjo6YWZ0ZXIsIC5za2VsZXRvbi10eHQ6OmFmdGVyLCAuc2tlbGV0b24tYnRuOjphZnRlciwgLnNrZWxldG9uLWJsb2NrOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgYm90dG9tOjA7IGxlZnQ6MDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpOyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgMjAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgNjAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKTsgYW5pbWF0aW9uOnNoaW1tZXIgMnMgaW5maW5pdGU7IH0gLnNrZWxldG9uLXNsaWRlciB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDUxMiA1MTInJTNFJTNDcGF0aCBkPSdNNDY0IDQ0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxMTJjMC0yNi41MSAyMS40OS00OCA0OC00OGg0MTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMTEyIDEyMGMtMzAuOTI4IDAtNTYgMjUuMDcyLTU2IDU2czI1LjA3MiA1NiA1NiA1NiA1Ni0yNS4wNzIgNTYtNTYtMjUuMDcyLTU2LTU2LTU2ek02NCAzODRoMzg0VjI3MmwtODcuNTE1LTg3LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDIwOCAzMjBsLTU1LjUxNS01NS41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEw2NCAzMzZ2NDh6JyBmaWxsPSclMjNlZWUnLyUzRSUzQy9zdmclM0UiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjojY2NjOyBvcGFjaXR5OjAuOTsgfSBAa2V5ZnJhbWVzIHNoaW1tZXIgeyAxMDAlIHt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTt9IH0gQHN1cHBvcnRzICgtd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZSkgeyAuc2tlbGV0b24tc2xpZGVyOjphZnRlciwgLnNrZWxldG9uLXR4dDo6YWZ0ZXJ7IGFuaW1hdGlvbjpub25lOyB9IH0gLmNvbnRlbnQtc2tlbGV0b24geyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlci1yYWRpdXM6MC41cmVtOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBtYXgtd2lkdGg6NDAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jb250ZW50LXNrZWxldG9uLnJlY3RhbmdsZSB7IGFzcGVjdC1yYXRpbzp2YXIoLS1yYXRpbywgMTYvOSk7IH0gLmNvbnRlbnQtc2tlbGV0b24udGV4dCB7IGhlaWdodDphdXRvOyBwYWRkaW5nOjFyZW07IH0gLmNvbnRlbnQtc2tlbGV0b24udGV4dDo6YmVmb3JlLCAuY29udGVudC1za2VsZXRvbi50ZXh0OjphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6YmxvY2s7IGhlaWdodDoxcmVtOyBiYWNrZ3JvdW5kOiNkZGQ7IG1hcmdpbi1ib3R0b206MC41cmVtOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gLmNvbnRlbnQtc2tlbGV0b24udGV4dDo6YWZ0ZXIgeyB3aWR0aDo3MCU7IH0gLmNvbnRlbnQtc2tlbGV0b24uYWN0aXZlIHsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmOWY5ZjkgMjUlLCAjZGVkZWRlIDUwJSwgI2Y5ZjlmOSA3NSUpOyBiYWNrZ3JvdW5kLXNpemU6MjAwJSAxMDAlOyBhbmltYXRpb246c2hpbW1lciAycyBpbmZpbml0ZSBsaW5lYXI7IH0gQGtleWZyYW1lcyBzaGltbWVyIHsgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjIwMCUgMDsgfSAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMjAwJSAwOyB9IH0gLmNvbnRlbnQtc2tlbGV0b24uZGVidWc6OmFmdGVyIHsgY29udGVudDphdHRyKGRhdGEtYmxvY2spICIgfCAiIGF0dHIoZGF0YS1zb3VyY2UpICIgfCAiIGF0dHIoZGF0YS1nZW5lcmF0ZWQtYXQpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjRweDsgbGVmdDo0cHg7IHJpZ2h0OjRweDsgZm9udC1zaXplOjAuN3JlbTsgZm9udC1mYW1pbHk6bW9ub3NwYWNlLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTsgcGFkZGluZzoycHggNHB4OyBib3JkZXItcmFkaXVzOjRweDsgei1pbmRleDoxMDsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSBib2R5IHsgd2lkdGg6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZm9udC1zaXplOjFyZW07IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dC1tb2IpOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC10ZXh0LXdlaWdodCk7IH0gdWwgeyBsaXN0LXN0eWxlOm5vbmU7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBsaXN0LXN0eWxlLXBvc2l0aW9uOmluaXRpYWw7IGxpc3Qtc3R5bGUtaW1hZ2U6aW5pdGlhbDsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgdWwgeyBsaXN0LXN0eWxlOmluaGVyaXQ7IGxpc3Qtc3R5bGUtdHlwZTppbmhlcml0OyBsaXN0LXN0eWxlLXBvc2l0aW9uOmluaGVyaXQ7IGxpc3Qtc3R5bGUtaW1hZ2U6aW5oZXJpdDsgfSBzdmcsIHN2Zy5pY29ueyAtLWljb24tc2l6ZTpjYWxjKHZhcigtLWZzLCB2YXIoLS1mczApKSAvIHZhcigtLXJhdGlvKSk7IGZpbGw6dmFyKC0tdHh0LWNvbG9yLCB2YXIoLS1ibGFjaykpOyB3aWR0aDp2YXIoLS1pY29uLXNpemUpOyBoZWlnaHQ6dmFyKC0taWNvbi1zaXplKTsgfSBzdmcuYXV0aG9yaXplZC1ibGFja3tmaWxsOiMyODI4MjghaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtYmxhY2sta2lhe2ZpbGw6IzA1MTQxRiFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC1yZWR7ZmlsbDojRkYwMDAwIWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLXdoaXRle2ZpbGw6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuYXV0aG9yaXplZC1yZWQtd2hpdGUtcGxheS1idG57YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IHN2Zy5vZ2NvbG9yLWZhY2Vib29re2ZpbGw6IzQyNjdCMiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci10d2l0dGVye2ZpbGw6IzFEQTFGMiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci14LXR3aXR0ZXJ7ZmlsbDojMTQxNzFBIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXgtdHdpdHRlci13aGl0ZXtmaWxsOiNGRkZGRkYhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItbGlua2VkaW57ZmlsbDojMDA3N0I1IWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLWJsb2dnZXJ7ZmlsbDojRkY1NzIyIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXBpbnRlcmVzdHtmaWxsOiNFNjAwMjMhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteW91dHViZXtmaWxsOiNGRjAwMDAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gc3ZnLm9nY29sb3ItaW5zdGFncmFte2ZpbGw6IzgzM0FCNCFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci10aWt0b2t7ZmlsbDojZmYwMDUwIWltcG9ydGFudDt9IC5mYWNlYm9vay1vZ2ljb24tdHdlYWtze2hlaWdodDoyNHB4IWltcG9ydGFudDttYXJnaW4tdG9wOjJweCFpbXBvcnRhbnQ7fSAjZm9vdGVyIC5mYWNlYm9vay1vZ2ljb24tdHdlYWtze2hlaWdodDoyM3B4IWltcG9ydGFudDttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7fSAuaW5zdGFncmFtLW9naWNvbi10d2Vha3N7aGVpZ2h0OjI4cHghaW1wb3J0YW50O21hcmdpbi10b3A6MHB4IWltcG9ydGFudDt9ICNmb290ZXIgLmluc3RhZ3JhbS1vZ2ljb24tdHdlYWtze2hlaWdodDoyOXB4IWltcG9ydGFudDttYXJnaW4tdG9wOi00cHghaW1wb3J0YW50O30gc3ZnLmN1c3RvbW1lZGlhLWNvbG9ycGlja2Vye2ZpbGw6dmFyKC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dCkhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzI4MjgyOCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtYmxhY2sta2lhe2JhY2tncm91bmQtY29sb3I6IzA1MTQxRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtcmVke2JhY2tncm91bmQtY29sb3I6I0ZGMDAwMCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojRkZGRkZGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1mYWNlYm9va3tiYWNrZ3JvdW5kLWNvbG9yOiMzYTU5OTghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXR3aXR0ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDBhY2VkIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci14LXR3aXR0ZXJ7YmFja2dyb3VuZC1jb2xvcjojMTQxNzFBIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci14LXR3aXR0ZXItd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojRkZGRkZGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1saW5rZWRpbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDc3QjUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWJsb2dnZXJ7YmFja2dyb3VuZC1jb2xvcjojRkY1NzIyIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1waW50ZXJlc3R7YmFja2dyb3VuZC1jb2xvcjojRTYwMDIzIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci15b3V0dWJle2JhY2tncm91bmQtY29sb3I6I0ZGMDAwMCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItaW5zdGFncmFte2JhY2tncm91bmQtY29sb3I6I2YyMzk5NSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItdGlrdG9re2JhY2tncm91bmQtY29sb3I6I2ZmMDA1MCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWN1c3RvbW1lZGlhLWNvbG9ycGlja2Vye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dCkhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtYmxhY2t7Y29sb3I6IzI4MjgyOCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC1ibGFjay1raWF7Y29sb3I6IzA1MTQxRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC1yZWR7Y29sb3I6I0ZGMDAwMCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC13aGl0ZXtjb2xvcjojRkZGRkZGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWZhY2Vib29re2NvbG9yOiMzYTU5OTghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItdHdpdHRlcntjb2xvcjojMDBhY2VkIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXgtdHdpdHRlcntjb2xvcjojMTQxNzFBIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXgtdHdpdHRlci13aGl0ZXtjb2xvcjojRkZGRkZGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWxpbmtlZGlue2NvbG9yOiMwMDc3QjUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItYmxvZ2dlcntjb2xvcjojRkY1NzIyIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXBpbnRlcmVzdHtjb2xvcjojRTYwMDIzIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXlvdXR1YmV7Y29sb3I6I0ZGMDAwMCFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1pbnN0YWdyYW17Y29sb3I6I2YyMzk5NSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci10aWt0b2t7Y29sb3I6I2ZmMDA1MCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtY3VzdG9tbWVkaWEtY29sb3JwaWNrZXJ7Y29sb3I6dmFyKC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dCkhaW1wb3J0YW50O30gLm5vdGUtYm94eyBkaXNwbGF5OmJsb2NrOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gLm5vdGUtc3VjY2Vzc3sgY29sb3I6IzE1NTcyNDsgYmFja2dyb3VuZC1jb2xvcjojZDRlZGRhOyBib3JkZXItY29sb3I6IzE1NTcyNDsgYm9yZGVyLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSAubm90ZS1lcnJvcnsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAwOyBib3JkZXItY29sb3I6I2ZmMDAwMDsgYm9yZGVyLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSB1bC5jaGVja2xpc3QgbGk6YmVmb3JleyBjb250ZW50OiIiOyBib3JkZXItbGVmdDowLjJyZW0gc29saWQ7IGJvcmRlci1ib3R0b206MC4ycmVtIHNvbGlkOyB3aWR0aDowLjdyZW07IGhlaWdodDowLjRyZW07IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IG1hcmdpbi1yaWdodDoxcmVtOyB9IHVsLmNoZWNrbGlzdCBsaXsgbWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5pbnZhbGlkID4gOmlzKGlucHV0LHNlbGVjdCx0ZXh0YXJlYSl7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAuLWJnLXdoaXRleyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JheSk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWRhcmstZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1ibGFjay1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrLWdyYXkpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1ibGFja3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjayk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWxpZ2h0eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0KTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC4tYmctbGlnaHQtZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC4tYmctbm9uZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O30gLi1yb3VuZHsgYm9yZGVyLXJhZGl1czowLjNyZW07IH0gLnB1c2gtZG93bnsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowcHg7IH0gLnByaWNlLW1haW57IGNvbG9yOiNmZjAwMDA7IH0gLnByaWNlLXN0cmlrZXsgY29sb3I6Izk5OTsgdGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDsgfSAuZm9ybWF0LXByaWNleyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWF4LXdpZHRoOmZpdC1jb250ZW50OyBtYXJnaW4tcmlnaHQ6MC43cmVtOyBsaW5lLWhlaWdodDoxZW07IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSA6aXMoLkVOR0xJU0gsW2RhdGEtbGFuZz0iZW4iXSkgLmZvcm1hdC1wcmljZXsgbWFyZ2luLWxlZnQ6MC42cmVtOyBtYXJnaW4tcmlnaHQ6dW5zZXQ7IH0gLmZvcm1hdC1wcmljZTphZnRlcnsgY29udGVudDoiJCI7IGZvbnQtc2l6ZTptYXgoMC41cmVtLDAuNmVtKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDp2YXIoLS1mb3JtYXQtcGljZS1zaWduLXBvc2l0aW9uLDApOyByaWdodDotMC42ZW07IGxpbmUtaGVpZ2h0OmluaGVyaXQ7IH0gLmZpbmFsLXByaWNlIC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IG1hcmdpbi10b3A6LTVweDsgfSAuZmluYWwtcHJpY2UgLmZvcm1hdC1wcmljZXsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6MnB4OyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSAuZm9ybWF0LXByaWNlOmFmdGVyeyBsZWZ0Oi0wLjdlbTsgcmlnaHQ6dW5zZXQ7IH0gLnByaWNlLWVuOmJlZm9yZXsgY29udGVudDoiJCI7IH0gOmlzKC5wcmljZS1lbik6YmVmb3JleyBmb250LXNpemU6MC42ZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTAuNWVtOyB9IC5wcmljZS1mcjphZnRlcnsgY29udGVudDoiICQiOyB9IDppcygucHJpY2UtZnIpOmFmdGVyeyBmb250LXNpemU6MC42ZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTAuNWVtOyB9IC5zY3JhdGNoLW92ZXIsIC5zY3JhdGNoLWxlYXNleyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuc2NyYXRjaC1vdmVyOmJlZm9yZSwgLnNjcmF0Y2gtbGVhc2U6YmVmb3JleyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgYmxhY2s7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MnB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjQ1JTsgLW1vei10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHdpZHRoOjkwJTsgfSAuRU5HTElTSCA6aXMoLnNjcmF0Y2gtbGVhc2UsLnNjcmF0Y2gtb3Zlcik6aGFzKC5mb3JtYXQtcHJpY2UpOmJlZm9yZXsgbWFyZ2luLWxlZnQ6MC41cmVtOyB9IC5ibHVyLW92ZXIsIC5ibHVyLWxlYXNlIHsgLXdlYmtpdC1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbW96LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tcy1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtby1maWx0ZXI6Ymx1cigwLjE1ZW0pOyBmaWx0ZXI6Ymx1cigwLjE1ZW0pOyB9IC5vdXQtdmlld3sgcG9zaXRpb246Zml4ZWQ7IHRvcDotMjBweDsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTsgei1pbmRleDowOyB9IC50b3AtZml4ZWQgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjMuMnJlbTsgbGVmdDowOyB6LWluZGV4OjEwMDsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0tcyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlci1ib3R0b20td2lkdGg6MXB4OyBib3JkZXItYm90dG9tLWNvbG9yOiMwMDA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCA+IC5wcm9tb0JUTiB7IG1hcmdpbjowOyB3aWR0aDo5MHZ3OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCAuY3RhLWxhYmVseyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFpbi1jb2xvcnN7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB9IC5wcm9tby1jb2xvcnN7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tdGV4dC1jb2xvcik7IH0gLmJ0bnsgLS1idG4tYmctY29sOnZhcigtLXRhYi1jb2xvcik7IC0tYnRuLXR4dC1jb2w6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ0bi1iZy1jb2wpOyBjb2xvcjp2YXIoLS1idG4tdHh0LWNvbCk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYnRuLWJyZC1jb2wsIHZhcigtLWJ0bi10eHQtY29sKSk7IHBhZGRpbmc6MC41cmVtOyBmb250LXdlaWdodDpib2xkOyB9IC5idG4tZGFyay1ncmV5LCAuY2JEYXJrR3JleXsgLS1idG4tYmctY29sOiMzMzM7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSBbcm9sZT0iYnV0dG9uIl17IGN1cnNvcjpwb2ludGVyOyB9IC5idG4tcHJvbW97IC0tdHh0LWNvbG9yOnZhcigtLXByb21vLXRleHQtY29sb3IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IGNvbG9yOnZhcigtLXR4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tcHJvbW8tdGV4dC1jb2xvcik7IHBvc2l0aW9uOnJlbGF0aXZlOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlcjpub25lOyB9IC5idG4tY3RhOmFmdGVyeyBjb250ZW50OiJcZjA1NCI7IGZvbnQtc3R5bGU6bm9ybWFsOyB0ZXh0LWRlY29yYXRpb246aW5oZXJpdDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjFyZW07IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IH0gLmJ0bi1tYWlueyAtLWJ0bi1iZy1jb2w6dmFyKC0tdGFiLWNvbG9yKTsgLS1idG4tdHh0LWNvbDp2YXIoLS10YWItdGV4dC1jb2xvcik7IC0tYnRuLWJyZC1jb2w6dmFyKC0tdGFiLXRleHQtY29sb3IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gLmJ0bi1tYWluMiwgLmJ0bi1tYWluOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IH0gLmJ0bi1ibGFja3sgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBjb2xvcjojZmZmOyAtLXR4dC1jb2xvcjojZmZmOyB9IC5idG4tbGlnaHR7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjYWFhOyBjb2xvcjojODg4OyB9IC5idG4tc3VjY2Vzc3sgLS1idG4tYmctY29sOiM0Y2FmNTA7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSAuYnRuLXdhcm5pbmd7IC0tYnRuLWJnLWNvbDojZmY5ODAwOyAtLWJ0bi10eHQtY29sOiNmZmY7IH0gLmJudC1kaXNhYmxlZCwgLmJ0bltkaXNhYmxlZF0geyBjb2xvcjp2YXIoLS1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ncmF5KTsgfSAuYnRuLWVtYWlsLW1lLCAuYnRuLXRleHQtbWV7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5idG4tZW1haWwtbWU6YmVmb3JleyBjb250ZW50OiJcZjBlMCI7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLXRleHQtbWU6YmVmb3JleyBjb250ZW50OiJcZjNjZCI7IGZvbnQtc2l6ZTp4LWxhcmdlOyBmb250LXdlaWdodDo5MDA7IH0gLmJ0bi1lbWFpbC1tZTpiZWZvcmUsIC5idG4tdGV4dC1tZTpiZWZvcmV7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBtYXJnaW4tcmlnaHQ6NXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0xcHg7IH0gYnV0dG9uLnJvdW5kLWJ1dHRvbnsgYWxsOmluaGVyaXQ7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgZmlsbDp2YXIoLS10YWItY29sb3IpOyBwYWRkaW5nOjAuM3JlbTsgY3Vyc29yOnBvaW50ZXI7IH0gYnV0dG9uLmljb24tYnV0dG9ueyBjb2xvcjp2YXIoLS1wcm9tby1idG4tY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlcjpub25lOyBwYWRkaW5nOjAuNXJlbTsgd2lkdGg6YXV0bzsgfSAueC1jbG9zZXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZScgdmlld0JveD0nMCAwIDEwIDEwJyUzRSUzQ3N0eWxlJTNFLnZlcnQlN0JmaWxsOiUyMzAwMDslN0QlM0Mvc3R5bGUlM0UlM0NyZWN0IGNsYXNzPSd2ZXJ0JyBoZWlnaHQ9JzgnIHdpZHRoPScyJyB5PScxJyB4PSc0JyUzRSUzQy9yZWN0JTNFJTNDcmVjdCBoZWlnaHQ9JzInIHdpZHRoPSc4JyB5PSc0JyB4PScxJyUzRSUzQy9yZWN0JTNFJTNDL3N2ZyUzRSIpOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBib3JkZXI6bm9uZTsgd2lkdGg6MS41cmVtOyBoZWlnaHQ6MS41cmVtOyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgY3Vyc29yOnBvaW50ZXI7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGU6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBsZWZ0OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGJhY2tncm91bmQtaW1hZ2U6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiKDAsIDAsIDApIDEwJSwgdHJhbnNwYXJlbnQgMTAuMDElKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTsgdHJhbnNmb3JtOnNjYWxlKDEwLDEwKTsgb3BhY2l0eTowOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMsIG9wYWNpdHkgMXM7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGU6YWN0aXZlOmFmdGVyIHsgdHJhbnNmb3JtOnNjYWxlKDAsMCk7IG9wYWNpdHk6LjI7IHRyYW5zaXRpb246MHM7IH0gLmxvZ29hcmVhIHsgbWluLWhlaWdodDo3cmVtOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWVlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yKTsgfSBhID4gOndoZXJlKDppcyhzdmcsIC5mYSwgLmZhcyk6Zmlyc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSl7IG1hcmdpbi1yaWdodDowLjZyZW07IH0gLnByb21vVG9wQnRuIDppcyhhLGJ1dHRvbikgeyAtLWZzOnZhcigtLWZzMSk7IC0tdHh0LWNvbG9yOnZhcigtLXRvcC1wcm9tby1idG4tdHh0LCB2YXIoLS10b3AtcHJvbW8tYnRuLXR4dC1jb2xvcikpOyBib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXRvcC13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6MXB4OyBib3JkZXItY29sb3I6I2YzZjNmMzsgaGVpZ2h0OjMuMnJlbTsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBiYWNrZ3JvdW5kOnZhcigtLXRvcC1wcm9tby1idG4tYmcsIHZhcigtLXRvcC1wcm9tby1idG4tYmctY29sb3IpKTsgY29sb3I6dmFyKC0tdG9wLXByb21vLWJ0bi10eHQsIHZhcigtLXRvcC1wcm9tby1idG4tdHh0LWNvbG9yKSk7IH0gLnByb21vVG9wQnRuLmRlYWxlckxpbmVCdXR0b24gOmlzKGEsYnV0dG9uKXsgLS10eHQtY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS1iZy1jb2xvcik7IGNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yKTsgd2lkdGg6MTAwJTsgfSA6aXMoLnByb21vVG9wQnRuLGxhYmVsKS5mbG9hdGluZ3sgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxLjVyZW07IHJpZ2h0OjEuNXJlbTsgei1pbmRleDoxMDsgfSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcud2l0aFRvYXN0ZXIge2JvdHRvbTo2cmVtO30gLnByb21vVG9wQnRuLmZsb2F0aW5nIDppcyhhLGJ1dHRvbil7IC0tZnM6dmFyKC0tZnM1KTsgcGFkZGluZzoxcmVtOyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyLXdpZHRoOjFweDsgaGVpZ2h0OnVuc2V0OyB9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZyA6aXMoYSxidXR0b24pIHNwYW4ge2Rpc3BsYXk6bm9uZTt9IC5pY29uLWhlYWRpbmcgc3Bhbi5mYXsgZm9udC1zaXplOmluaGVyaXQ7IHdpZHRoOjFlbTsgcGFkZGluZzowLjJlbTsgaGVpZ2h0OjFlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJsYWNrKTsgY29sb3I6dmFyKC0td2hpdGUpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrKTsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAuaWNvbi1oZWFkaW5nIC5zZWNvbmRhcnlUZXh0eyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MC43NWVtOyB9IC5ncm91cFRhYnMgPiAqeyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOmNhbGMoMS4ycmVtICsgKDIwIC0gMTgpICogKCgxMDB2dyAtIDMyMHB4KSAvICgxMTAwIC0gMzAwKSkpOyB9IC5ncm91cFRhYnMgPiAqOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IH0gLmdyb3VwVGFicyAudGFiLWxhYmVsLCAubmV3Q2FyU2xpZGVyIC5jYXJvdXNlbFRpdGxleyBjb2xvcjp2YXIoLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3IsIHZhcigtLWRlZmF1bHQtYmxhY2spKTsgfSAuZ3JvdXBUYWJzIC5hY3RpdmVUYWIgLnRhYi1sYWJlbHsgY29sb3I6dmFyKC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yLCB2YXIoLS1kZWZhdWx0LWJsYWNrKSk7IGJvcmRlci1ib3R0b206M3B4IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiMwMDA7IGJvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgfSAuY2FyU2xpZGVyeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmNhclNsaWRlciA+ICp7IHdpZHRoOm1pbig5MHJlbSwxMDAlKTsgfSAuY2FyU2xpZGVyLi1iZy1saWdodC1ncmF5ID4gKnsgbWF4LXdpZHRoOm1pbig3NXJlbSwxMDAlKTsgfSAubmV3Q2FyQ2FyZHsgaGVpZ2h0OjEwMCU7IG1pbi1oZWlnaHQ6MjdyZW07IGJvcmRlcjoxcHggc29saWQgI2JiYjsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IH0gLm5ld0NhckNhcmQgaW1neyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOi0xcmVtOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuY2FyUGF5bWVudFdyYXBwZXJ7IHdpZHRoOm1pbigxMDAlLDI1cmVtKTsgbWluLWhlaWdodDo3cmVtOyB9IC5jYXJQYXltZW50V3JhcHBlciAucGF5bWVudEJsb2NreyBoZWlnaHQ6MTAwJTsgfSAucGF5bWVudHNEaXNhYmxlZCAubmV3Q2FyQ2FyZHsgbWluLWhlaWdodDoyMnJlbTsgfSAudmVoaWNsZUNhcm91c2VsIC5uZXdDYXJDYXJkeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgd2lkdGg6MjMuN3JlbTsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBtYXJnaW46MCAwLjRyZW07IGhlaWdodDoxMDAlIH0gLm5ld0NhckNhcmQgLnByb21vLWJhZGdleyBoZWlnaHQ6Zml0LWNvbnRlbnQ7IG1pbi13aWR0aDo2cmVtOyB9IC5uZXdDYXJDYXJkOmhvdmVyeyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCB2YXIoLS1taWQtZ3JheSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IH0gLm5ld0NhckNhcmQ6aG92ZXIgLmluU3RvY2tMaW5rIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5uZXdDYXJDYXJkIC5jYXJkLWJvZHl7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBoZWlnaHQ6MTJyZW07IG92ZXJmbG93OmhpZGRlbjsgfSAubmV3Q2FyQ2FyZCA+IC5ib3gtbGN7IG1hcmdpbi10b3A6MDsgcGFkZGluZy10b3A6MDsgcGFkZGluZy1ib3R0b206MDsgfSAubmV3Q2FyQ2FyZCA+IC5ib3gtbGM6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjAuNXJlbTsgbWF4LWhlaWdodDoxMHJlbTsgfSAubmV3Q2FyQ2FyZCAuZGVza3RvcFBheW1lbnR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5uZXdDYXJDYXJkIHNwYW4ucGF5bWVudENhbGNCdG4uZGVza3RvcHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjclOyBmb250LXNpemU6MS43ZW07IGN1cnNvcjpwb2ludGVyOyB9IC51c2VkQ2FyU2xpZGV7IGRpc3BsYXk6YmxvY2s7IGJvcmRlcjoxcHggc29saWQgI2JiYjsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBoZWlnaHQ6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51c2VkQ2FyU2xpZGUgKnsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51c2VkQ2FyU2xpZGUgLnNsaWRlQ29udGVudHsgaGVpZ2h0OjEwMCUgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlciB7IGNvbnRlbnQ6IlxmMDcxIjsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgaXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gc3ZnLCAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyIHsgYW5pbWF0aW9uOnJpcHBsZS0xIDFzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb24tZGVsYXk6MC41czsgYW5pbWF0aW9uOnJpcHBsZS0yIDFzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb24tZGVsYXk6MC43NXM7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXJ7IHRvcDowOyBsZWZ0OjA7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gc3ZneyB0b3A6MXB4OyBsZWZ0Oi0xcmVtOyB9IEBrZXlmcmFtZXMgcmlwcGxlLTEgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgb3BhY2l0eToxOyB9IDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoMS43KTsgb3BhY2l0eTowOyB9IH0gQGtleWZyYW1lcyByaXBwbGUtMiB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyBvcGFjaXR5OjE7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgyKTsgb3BhY2l0eTowOyB9IH0gc3Bhbi5hc3Rlcml4OmFmdGVyeyBjb250ZW50OiIqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToycmVtOyB9IGRpdi5wcmljZU5vdGUuYXN0ZXJpeDpiZWZvcmV7IGNvbnRlbnQ6IioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjFyZW07IH0gZm9vdGVyIHsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwcHggMTBweCAxMXB4IC0xMXB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7IGJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgLS10eHQtY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZvb3Rlci1iZy1jb2xvcik7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgfSBhLnZpc2l0Q29udGFjdEJ1dHRvbnsgLS10eHQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1iZy1jb2xvcik7IGNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgfSAuY0Zvb3RlckNhckxpbmtzIGxpLmNJdGVtRXhwZW5keyBkaXNwbGF5Om5vbmU7IH0gLmNGb290ZXJDYXJMaW5rcyBoMywgLmZvb3Rlcl9hZGRyZXNzIC5hZHIgPiBzcGFueyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5jRm9vdGVyQ2FyTGlua3Mgc3Bhbi5oMy1hbHQgeyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5jRm9vdGVyQ2FyTGlua3MuY0xpc3RFeHBlbmRlZCBsaS5jSXRlbUV4cGVuZHsgZGlzcGxheTpibG9jazsgfSAuY0V4cGVuZExpc3QgYnV0dG9ueyBwYWRkaW5nOnZhcigtLXMpIDA7IGJhY2tncm91bmQ6bm9uZTsgfSAuY29uZGl0aW9uc0Zvb3RlciB7IGNvbG9yOnZhcigtLWZvb3Rlci1jb25kaXRpb25zLWNvbG9yLCAjOTE5MTkxKTsgLS10eHQtY29sb3I6dmFyKC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3IpOyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIHsgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxMHB4OyBtYXJnaW46NXB4IDVweCAxNXB4IDE1cHg7IHotaW5kZXg6NDsgd2lkdGg6MTQwcHggIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOjFweDsgYmFja2dyb3VuZC1jb2xvcjojZWEwMDI5OyB0ZXh0LWFsaWduOmxlZnQ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdHJhZGVpbmJhci1idG4tYmcpOyBjb2xvcjogdmFyKC0tdHJhZGVpbmJhci1idG4tY29sb3IpOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItd2lkdGg6MXB4IDNweCA0cHggMXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgcGFkZGluZy10b3A6MTBweDsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiBpeyBkaXNwbGF5OmlubGluZS1mbGV4OyBib3JkZXItcmFkaXVzOjEwMCU7IHdpZHRoOjJlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBib3JkZXI6MnB4IHNvbGlkICNmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgaGVpZ2h0OjEuNWVtOyBjb2xvcjojMDAwOyBmbG9hdDpsZWZ0OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uLndpdGhUb2FzdGVyIHsgYm90dG9tOjVyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9saW5lMXsgYmFja2dyb3VuZC1jb2xvcjojZjFmMWYxOyBib3JkZXI6MXB4IHNvbGlkIGdyZXk7IHBhZGRpbmc6MjBweCA0MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYnRuLnRyYWRlSW5CYXJQb3B1cFN1Ym1pdHsgcGFkZGluZzowLjc1cmVtIDAuMzc1cmVtOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItY29sb3I6IzAwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIGlucHV0eyBtYXJnaW46NXB4IDAgMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XeyBoZWlnaHQ6NTgwcHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjay10ZXh0KTsgcGFkZGluZzoxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIGlucHV0eyBwYWRkaW5nOjExcHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6MjUwcHg7IG1hcmdpbjo1cHggMCAwOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTkhaW1wb3J0YW50OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRpblNlbGVjdFBvcHVweyBjb2xvcjojM2MzODM2OyBmb250LXNpemU6MXJlbTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IGFwcGVhcmFuY2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBtYXJnaW46NXB4IDAgMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDo6cGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyBvcGFjaXR5OjE7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSAudHJhZGluU2VsZWN0LCAudHJhZGluU2VsZWN0UG9wdXAgeyBjb2xvcjojM2MzODM2OyBmb250LXNpemU6MXJlbTsgbWFyZ2luOjVweCAwIDA7IGFwcGVhcmFuY2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyB9IC50cmFkaW5TZWxlY3RBIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnRyYWRpblNlbGVjdEE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAuZW1haWxCb2R5LCAuZW1haWxTdWJqZWN0eyBkaXNwbGF5Om5vbmU7IH0gLnJldmVhbC1tb2RhbDpub3QoI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIpICo6bm90KC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciA6aXMoaW5wdXQsIHNlbGVjdCkpeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnJldmVhbC1tb2RhbDpub3QoI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIpIDppcyhpbnB1dFt0eXBlPSJ0ZXh0Il06bm90KC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBpbnB1dCksaW5wdXRbdHlwZT0iZW1haWwiXSxpbnB1dFt0eXBlPSJ0ZWwiXSxzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QsIHNlbGVjdC5zdGVwMjRzZWxlY3QpKXsgcGFkZGluZzowLjRyZW07IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB3aWR0aDoxMDAlOyBib3JkZXItY29sb3I6I2E5YTlhOTsgfSBbZGF0YS1wYWdlPSJIT01FUEFHRSJdeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhvbWUtYmctY29sb3IsICNGRkZGRkYpOyB9IC55dC1iZy1jb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmJhbm5lci1iZy1jb250YWluZXJ7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyOyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6Y29sb3I7IH0gI3lvdXR1YmVfX2NvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMCU7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmctYm90dG9tOm1pbihjYWxjKDEwMHZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCwxMHJlbSkpLDY3dncpOyBiYWNrZ3JvdW5kLWNvbG9yOiM4ODg7IH0gI2hvbWVwYWdlX3lvdXR1YmVfcGxheWVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi00NSU7IGxlZnQ6LTEwJTsgaGVpZ2h0OjE5MCU7IHdpZHRoOjEyMCU7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gI3lvdXR1YmVfX2NvbnRhaW5lcjppcyguZnVsbEhlaWdodCwudmlzaWJsZUhlaWdodCl7IHBhZGRpbmctYm90dG9tOmNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0LDEwcmVtKSk7IH0gOmlzKC5mdWxsSGVpZ2h0LC52aXNpYmxlSGVpZ2h0KSAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IGhlaWdodDoxMDAlOyB0b3A6MDsgfSAjeW91dHViZV9fY29udGFpbmVyLmZ1bGxXaWR0aHsgcGFkZGluZy1ib3R0b206NTYuMjUlOyB9ICNtb2JpbGVTbGlkZXIgI3lvdXR1YmVfX2NvbnRhaW5lcnsgcGFkZGluZy1ib3R0b206bWF4KDY3dncsMjRyZW0pOyB9ICNtb2JpbGVTbGlkZXIgI3lvdXR1YmVfX2NvbnRhaW5lciAjYmFubmVyX3NlYXJjaF9iYXJfY29udGFpbmVyeyBoZWlnaHQ6bWF4KDY3dncsMjRyZW0pOyBtaW4taGVpZ2h0OjE4cmVtOyB6LWluZGV4OjE7IH0gLmZ1bGxXaWR0aCAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IGhlaWdodDoxMjAlOyB0b3A6LTEwJTsgfSAueXQtdmlkZW97IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgfSAueXQtcGxheXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTc2IDUxMiI+PCEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6Q0MgQlkgNC4wLCBGb250czpTSUwgT0ZMIDEuMSwgQ29kZTpNSVQgTGljZW5zZSkgLS0+PHBhdGggZD0iTTU0OS42NTUgMTI0LjA4M2MtNi4yODEtMjMuNjUtMjQuNzg3LTQyLjI3Ni00OC4yODQtNDguNTk3QzQ1OC43ODEgNjQgMjg4IDY0IDI4OCA2NFMxMTcuMjIgNjQgNzQuNjI5IDc1LjQ4NmMtMjMuNDk3IDYuMzIyLTQyLjAwMyAyNC45NDctNDguMjg0IDQ4LjU5Ny0xMS40MTIgNDIuODY3LTExLjQxMiAxMzIuMzA1LTExLjQxMiAxMzIuMzA1czAgODkuNDM4IDExLjQxMiAxMzIuMzA1YzYuMjgxIDIzLjY1IDI0Ljc4NyA0MS41IDQ4LjI4NCA0Ny44MjFDMTE3LjIyIDQ0OCAyODggNDQ4IDI4OCA0NDhzMTcwLjc4IDAgMjEzLjM3MS0xMS40ODZjMjMuNDk3LTYuMzIxIDQyLjAwMy0yNC4xNzEgNDguMjg0LTQ3LjgyMSAxMS40MTItNDIuODY3IDExLjQxMi0xMzIuMzA1IDExLjQxMi0xMzIuMzA1czAtODkuNDM4LTExLjQxMi0xMzIuMzA1em0tMzE3LjUxIDIxMy41MDhWMTc1LjE4NWwxNDIuNzM5IDgxLjIwNS0xNDIuNzM5IDgxLjIwMXoiIGZpbGw9IiUyM2MzM2MyZCIgLyUzRSUzQy9zdmclM0UnKTsgd2lkdGg6NXJlbTsgaGVpZ2h0OjVyZW07IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IG9wYWNpdHk6MC43OyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6Y2FsYygxMDB2dyAvICgxNiAvIDkpKTsgb3ZlcmZsb3c6aGlkZGVuOyBtYXgtd2lkdGg6MTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyB9IC5tb2JpbGVfYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKSk7IH0gLmJ1c2luZXNzRGVzYyB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCkpOyB9IC5idXNpbmVzc0Rlc2MgKiB7IGxpbmUtaGVpZ2h0OjEuNXJlbTsgfSAud3JhcHBlciB7IG1hcmdpbjowIGF1dG87IHdpZHRoOjk2MHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubGFuZ3VhZ2VCYXIgeyBtYXJnaW46MXJlbSBhdXRvIDVweDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCB2YXIoLS1zKTsgfSAudi1jYXJkLnRvcF9iZyB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luLXRvcDoxMHB4OyBtaW4taGVpZ2h0OjhyZW07IHBhZGRpbmc6MCB2YXIoLS1zKTsgfSAuaGVhZGVyLXNlY3Rpb24geyBkaXNwbGF5OmZsZXg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgYWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gI3RyYWRlSW5CYXJNb2JpbGV7IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czo1cHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjozcHggNXB4IDVweCA1cHg7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLm1pZGRsZXsgY29sb3I6I2ZmZmZmZjsgfSAjdHJhZGVJbkJhck1vYmlsZSAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBwYWRkaW5nOjVweCAyMHB4IDBweCAyMHB4OyB9ICN0cmFkZUluQmFyTW9iaWxlIC5kZWZhdWx0VG9wQmFubmVyQnRuV3JhcHBlciBkaXZ7IG1heC13aWR0aDozMzBweDsgbWFyZ2luOjEwcHggYXV0bzsgcGFkZGluZzoxMnB4IDA7IGJvcmRlci1yYWRpdXM6MnB4OyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1iZy1jb2xvcik7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyIGF7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW46MCBhdXRvOyBmb250LXdlaWdodDo3MDA7IH0gI3RyYWRlSW5CYXJNb2JpbGUgI2RlZmF1bHRUb3BCYW5uZXJMb2dvIHNwYW57IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0OjMwMDsgY29sb3I6dmFyKC0tbWlkLWdyYXkpOyB9ICN0cmFkZUluQmFyeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRyYWRlaW5iYXItYmcpOyBjb2xvcjogdmFyKC0tdHJhZGVpbmJhci1jb2xvcik7IH0gI3RyYWRlSW5CYXJXTW9iaWxlLCAjdHJhZGVJbkJhclcgeyBkaXNwbGF5OmZsZXg7IG1pbi1oZWlnaHQ6NTBweDsgbWFyZ2luOmF1dG87IHdpZHRoOm1pbigxMDAlLDEzNTBweCk7IHBvc2l0aW9uOnJlbGF0aXZlOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSA+IGF7IHBhZGRpbmc6NHB4IDEycHg7IGhlaWdodDoxOHB4OyBsaW5lLWhlaWdodDoxOHB4OyBib3JkZXItcmFkaXVzOjA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnLCB2YXIoLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3IsIHdoaXRlICk7IH0gLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtIGE6aG92ZXIgeyBib3JkZXItY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZywgdmFyKC0tbGFuZ3VhZ2UtYnRuLWFjdGl2ZS1iZy1jb2xvcikpOyB9ICNhbGVydE1zZ0NvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgei1pbmRleDo5OTk7IHdpZHRoOjEwMCU7IGNvbG9yOndoaXRlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtYWxlcnQtYmFyLXRleHQtY29sb3IpOyBmb250LXdlaWdodDo2MDA7IH0gI2FsZXJ0TXNnQ29udGFpbmVyLnN0aWNrLXRvcHsgcG9zaXRpb246c3RpY2t5OyB0b3A6MDsgei1pbmRleDo5OTk5OTsgfSBAbWVkaWEgKG1heC13aWR0aDo3NjdweCkgeyAuYWxlcnQtaGlkZS1vbi1tb2JpbGUgeyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSB9IC5mYS1maXgtY2VudGVyOmJlZm9yZSB7IHdpZHRoOjEuNWVtOyBoZWlnaHQ6MS41ZW07IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZGlzcGxheTpmbGV4OyB9ICN5b3V0dWJlX19jb250YWluZXIuZnVsbHNjcmVlbnsgb2JqZWN0LWZpdDpjb3ZlcjsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjA7IG9wYWNpdHk6MC44OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MsIGJvcmRlciAuM3M7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGJvdHRvbTowOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyLndpdGgtYWxlcnQgeyB0b3A6NDBweDsgfSAucGF5bWVudEJsb2NrQ29udGFpbmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZXJ0LWNvbmNyZXRlLWdyYXksIHZhcigtLWxpZ2h0LWdyYXkpKTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAudmVoaWNsZUxvY2F0aW9ueyBib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubGluZVNlcGFyYXRvcnsgYm9yZGVyLXRvcDoxcHggc29saWQgI0E5QTlBOTsgbWFyZ2luLXRvcDo0MHB4OyBtYXJnaW4tYm90dG9tOjQwcHg7IH0gLnJldmVhbC1tb2RhbCBzcGFuLmZhLWhhbmQtcG9pbnRlci1jb2xvciB7IGNvbG9yOiNmZmZmZmY7IG1hcmdpbi1yaWdodDo1cHg7IG1hcmdpbi10b3A6NXB4OyB9IC5jb25mbGljdC1yZXNvbHZlLW9wdGlvbnMgeyBmb250LXNpemU6MC44MTNyZW0gOyB9Ci8qKiAvY3NzL2ZvbnRhd2Vzb21lLWFsbC5taW4uY3NzICoqLwouZmEsLmZhcywuZmFyLC5mYWwsLmZhZCwuZmFiey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1yZW5kZXJpbmc6YXV0bztsaW5lLWhlaWdodDoxfS5mYS1sZ3tmb250LXNpemU6MS4zMzMzM2VtO2xpbmUtaGVpZ2h0Oi43NWVtO3ZlcnRpY2FsLWFsaWduOi0uMDY2N2VtfS5mYS14c3tmb250LXNpemU6Ljc1ZW19LmZhLXNte2ZvbnQtc2l6ZTouODc1ZW19LmZhLTF4e2ZvbnQtc2l6ZToxZW19LmZhLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLTN4e2ZvbnQtc2l6ZTozZW19LmZhLTR4e2ZvbnQtc2l6ZTo0ZW19LmZhLTV4e2ZvbnQtc2l6ZTo1ZW19LmZhLTZ4e2ZvbnQtc2l6ZTo2ZW19LmZhLTd4e2ZvbnQtc2l6ZTo3ZW19LmZhLTh4e2ZvbnQtc2l6ZTo4ZW19LmZhLTl4e2ZvbnQtc2l6ZTo5ZW19LmZhLTEweHtmb250LXNpemU6MTBlbX0uZmEtZnd7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MS4yNWVtfS5mYS11bHtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW4tbGVmdDoyLjVlbTtwYWRkaW5nLWxlZnQ6MH0uZmEtdWwgPiBsaXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmEtbGl7bGVmdDotMmVtO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjJlbTtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1ib3JkZXJ7Ym9yZGVyOnNvbGlkIC4wOGVtICNlZWU7Ym9yZGVyLXJhZGl1czouMWVtO3BhZGRpbmc6LjJlbSAuMjVlbSAuMTVlbX0uZmEtcHVsbC1sZWZ0e2Zsb2F0OmxlZnR9LmZhLXB1bGwtcmlnaHR7ZmxvYXQ6cmlnaHR9LmZhLmZhLXB1bGwtbGVmdCwuZmFzLmZhLXB1bGwtbGVmdCwuZmFyLmZhLXB1bGwtbGVmdCwuZmFsLmZhLXB1bGwtbGVmdCwuZmFiLmZhLXB1bGwtbGVmdHttYXJnaW4tcmlnaHQ6LjNlbX0uZmEuZmEtcHVsbC1yaWdodCwuZmFzLmZhLXB1bGwtcmlnaHQsLmZhci5mYS1wdWxsLXJpZ2h0LC5mYWwuZmEtcHVsbC1yaWdodCwuZmFiLmZhLXB1bGwtcmlnaHR7bWFyZ2luLWxlZnQ6LjNlbX0uZmEtc3Bpbnstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjthbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXJ9LmZhLXB1bHNley13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7YW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCl9QC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmZhLXJvdGF0ZS05MHstbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTEpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmZhLXJvdGF0ZS0xODB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmZhLXJvdGF0ZS0yNzB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9LmZhLWZsaXAtaG9yaXpvbnRhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0wLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsMSk7dHJhbnNmb3JtOnNjYWxlKC0xLDEpfS5mYS1mbGlwLXZlcnRpY2Fsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLC0xKTt0cmFuc2Zvcm06c2NhbGUoMSwtMSl9LmZhLWZsaXAtYm90aCwuZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MixtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLC0xKTt0cmFuc2Zvcm06c2NhbGUoLTEsLTEpfTpyb290IC5mYS1yb3RhdGUtOTAsOnJvb3QgLmZhLXJvdGF0ZS0xODAsOnJvb3QgLmZhLXJvdGF0ZS0yNzAsOnJvb3QgLmZhLWZsaXAtaG9yaXpvbnRhbCw6cm9vdCAuZmEtZmxpcC12ZXJ0aWNhbCw6cm9vdCAuZmEtZmxpcC1ib3Roey13ZWJraXQtZmlsdGVyOm5vbmU7ZmlsdGVyOm5vbmV9LmZhLXN0YWNre2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyZW07bGluZS1oZWlnaHQ6MmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDoyLjVlbX0uZmEtc3RhY2stMXgsLmZhLXN0YWNrLTJ4e2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS5mYS1zdGFjay0xeHtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1zdGFjay0yeHtmb250LXNpemU6MmVtfS5mYS1pbnZlcnNle2NvbG9yOiNmZmZ9LmZhLTUwMHB4OmJlZm9yZXtjb250ZW50OiJcZjI2ZSJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJiYiJ9LmZhLWFpci1mcmVzaGVuZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWQwIn0uZmEtYWxhcm0tY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzRlIn0uZmEtYW1idWxhbmNlOmJlZm9yZXtjb250ZW50OiJcZjBmOSJ9LmZhLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0uZmEtYW5nbGUtZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0uZmEtYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0uZmEtYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9LmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDIifS5mYS1hbmdsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9LmZhLWFuZ2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0uZmEtYW5nbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxODcifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU4In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1OSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVhIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTQifS5mYS1hcnJvdy1hbHQtZnJvbS1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzQ2In0uZmEtYXJyb3ctYWx0LWZyb20tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNDcifS5mYS1hcnJvdy1hbHQtZnJvbS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDgifS5mYS1hcnJvdy1hbHQtZnJvbS10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ5In0uZmEtYXJyb3ctYWx0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU1In0uZmEtYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1NiJ9LmZhLWFycm93LWFsdC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTAifS5mYS1hcnJvdy1hbHQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzUxIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTIifS5mYS1hcnJvdy1hbHQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjM1MyJ9LmZhLWFycm93LWFsdC10by1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzRhIn0uZmEtYXJyb3ctYWx0LXRvLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzRiIn0uZmEtYXJyb3ctYWx0LXRvLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0YyJ9LmZhLWFycm93LWFsdC10by10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzRkIn0uZmEtYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjM1NyJ9LmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWFycm93LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhOCJ9LmZhLWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTkifS5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGFhIn0uZmEtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNjMifS5mYS1hcnJvdy1mcm9tLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzNDIifS5mYS1hcnJvdy1mcm9tLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQzIn0uZmEtYXJyb3ctZnJvbS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDQifS5mYS1hcnJvdy1mcm9tLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDUifS5mYS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2MCJ9LmZhLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA2MSJ9LmZhLWFycm93LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMzOSJ9LmZhLWFycm93LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMzYSJ9LmZhLWFycm93LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzM2IifS5mYS1hcnJvdy1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzNjIn0uZmEtYXJyb3ctdG8tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjMzZCJ9LmZhLWFycm93LXRvLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNlIn0uZmEtYXJyb3ctdG8tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQwIn0uZmEtYXJyb3ctdG8tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0MSJ9LmZhLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjA2MiJ9LmZhLWFycm93czpiZWZvcmV7Y29udGVudDoiXGYwNDcifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmV7Y29udGVudDoiXGYzMzcifS5mYS1hcnJvd3MtYWx0LXY6YmVmb3Jle2NvbnRlbnQ6IlxmMzM4In0uZmEtYXJyb3dzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMDdlIn0uZmEtYXJyb3dzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMDdkIn0uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZXtjb250ZW50OiJcZjJhMiJ9LmZhLWF0OmJlZm9yZXtjb250ZW50OiJcZjFmYSJ9LmZhLWF1ZGlvLWRlc2NyaXB0aW9uOmJlZm9yZXtjb250ZW50OiJcZjI5ZSJ9LmZhLWF3YXJkOmJlZm9yZXtjb250ZW50OiJcZjU1OSJ9LmZhLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjMzNSJ9LmZhLWJhZGdlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjMzNiJ9LmZhLWJhbjpiZWZvcmV7Y29udGVudDoiXGYwNWUifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyYSJ9LmZhLWJhcmNvZGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQ2MyJ9LmZhLWJhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM5In0uZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNDIifS5mYS1iZWxsOmJlZm9yZXtjb250ZW50OiJcZjBmMyJ9LmZhLWJlbGwtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmODQ4In0uZmEtYmVsbC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjg0OSJ9LmZhLWJlbGwtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY2In0uZmEtYmxvZzpiZWZvcmV7Y29udGVudDoiXGY3ODEifS5mYS1ibG9nZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM3YyJ9LmZhLWJsb2dnZXItYjpiZWZvcmV7Y29udGVudDoiXGYzN2QifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtYmx1ZXRvb3RoLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk0In0uZmEtYm9sdDpiZWZvcmV7Y29udGVudDoiXGYwZTcifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1ib3gtb3BlbjpiZWZvcmV7Y29udGVudDoiXGY0OWUifS5mYS1icm9hZGNhc3QtdG93ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTE5In0uZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGYxYWQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1idWxsc2V5ZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifS5mYS1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0uZmEtYnVzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1NWUifS5mYS1idXMtc2Nob29sOmJlZm9yZXtjb250ZW50OiJcZjVkZCJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtY2FsY3VsYXRvci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjRjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtY2FsZW5kYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWNhbGVuZGFyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjI3NCJ9LmZhLWNhbGVuZGFyLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMzIn0uZmEtY2FsZW5kYXItZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMzM0In0uZmEtY2FsZW5kYXItbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcyIn0uZmEtY2FsZW5kYXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWNhbWVyYS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMyIn0uZmEtY2FtZXJhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmOGZlIn0uZmEtY2FyOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWNhci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWRlIn0uZmEtY2FyLWJhdHRlcnk6YmVmb3Jle2NvbnRlbnQ6IlxmNWRmIn0uZmEtY2FyLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjg1OSJ9LmZhLWNhci1idW1wOmJlZm9yZXtjb250ZW50OiJcZjVlMCJ9LmZhLWNhci1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmODVhIn0uZmEtY2FyLWNyYXNoOmJlZm9yZXtjb250ZW50OiJcZjVlMSJ9LmZhLWNhci1nYXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNWUyIn0uZmEtY2FyLW1lY2hhbmljOmJlZm9yZXtjb250ZW50OiJcZjVlMyJ9LmZhLWNhci1zaWRlOmJlZm9yZXtjb250ZW50OiJcZjVlNCJ9LmZhLWNhci10aWx0OmJlZm9yZXtjb250ZW50OiJcZjVlNSJ9LmZhLWNhci13YXNoOmJlZm9yZXtjb250ZW50OiJcZjVlNiJ9LmZhLWNhcmF2YW46YmVmb3Jle2NvbnRlbnQ6IlxmOGZmIn0uZmEtY2FyYXZhbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDAwIn0uZmEtY2FyZXQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzJkIn0uZmEtY2FyZXQtY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJlIn0uZmEtY2FyZXQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMzMCJ9LmZhLWNhcmV0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMzEifS5mYS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkNyJ9LmZhLWNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ5In0uZmEtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRhIn0uZmEtY2FyZXQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0uZmEtY2FyZXQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0uZmEtY2FyZXQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE1MiJ9LmZhLWNhcmV0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJzOmJlZm9yZXtjb250ZW50OiJcZjg1YiJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYyMTgifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZjBhMyJ9LmZhLWNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjZjMCJ9LmZhLWNoYWxrYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTFiIn0uZmEtY2hhcmdpbmctc3RhdGlvbjpiZWZvcmV7Y29udGVudDoiXGY1ZTcifS5mYS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWNoYXJ0LWxpbmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGY2NGQifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2hlY2stZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjU2MCJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEzYSJ9LmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0uZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0uZmEtY2hldnJvbi1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTM5In0uZmEtY2hldnJvbi1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMjIifS5mYS1jaGV2cm9uLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyMyJ9LmZhLWNoZXZyb24tZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMyNCJ9LmZhLWNoZXZyb24tZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMyNSJ9LmZhLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNzgifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1jaGV2cm9uLXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyOSJ9LmZhLWNoZXZyb24tc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJhIn0uZmEtY2hldnJvbi1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJiIn0uZmEtY2hldnJvbi1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzJjIn0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtY2lyY2xlLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLWNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmNjRmIn0uZmEtY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjMyOCJ9LmZhLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjAxNyJ9LmZhLWNsb25lOmJlZm9yZXtjb250ZW50OiJcZjI0ZCJ9LmZhLWNsb3NlZC1jYXB0aW9uaW5nOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9LmZhLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjBjMiJ9LmZhLWNsb3VkLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjBlZCJ9LmZhLWNsb3VkLWRvd25sb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODEifS5mYS1jbG91ZC11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGVlIn0uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODIifS5mYS1jbHViOmJlZm9yZXtjb250ZW50OiJcZjMyNyJ9LmZhLWNvZmZlZTpiZWZvcmV7Y29udGVudDoiXGYwZjQifS5mYS1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMDEzIn0uZmEtY29nczpiZWZvcmV7Y29udGVudDoiXGYwODUifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWNvbW1lbnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjI3YSJ9LmZhLWNvbW1lbnQtYWx0LWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjRhMiJ9LmZhLWNvbW1lbnQtYWx0LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTAifS5mYS1jb21tZW50LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTEifS5mYS1jb21tZW50czpiZWZvcmV7Y29udGVudDoiXGYwODYifS5mYS1jb21tZW50cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNGI2In0uZmEtY29tbWVudHMtYWx0LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTIifS5mYS1jb21tZW50cy1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUzIn0uZmEtY29tcHJlc3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQyMiJ9LmZhLWNvbXByZXNzLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzhjIn0uZmEtY29weTpiZWZvcmV7Y29udGVudDoiXGYwYzUifS5mYS1jb3B5cmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY5In0uZmEtY291Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNGI4In0uZmEtY3JlYXRpdmUtY29tbW9ucy1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGY0ZjIifS5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1jdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDoiXGYxMDgifS5mYS1kaWFtb25kOmJlZm9yZXtjb250ZW50OiJcZjIxOSJ9LmZhLWRpZ2l0YWwtdGFjaG9ncmFwaDpiZWZvcmV7Y29udGVudDoiXGY1NjYifS5mYS1kb2xsYXItc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTUifS5mYS1kb3QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE5MiJ9LmZhLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOSJ9LmZhLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtZWxsaXBzaXMtaDpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1lbGxpcHNpcy1oLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOWIifS5mYS1lbGxpcHNpcy12OmJlZm9yZXtjb250ZW50OiJcZjE0MiJ9LmZhLWVsbGlwc2lzLXYtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM5YyJ9LmZhLWVuZ2luZS13YXJuaW5nOmJlZm9yZXtjb250ZW50OiJcZjVmMiJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OiJcZjBlMCJ9LmZhLWVudmVsb3BlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMmI2In0uZmEtZW52ZWxvcGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5OSJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYwZWMifS5mYS1leGNoYW5nZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYyIn0uZmEtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJhIn0uZmEtZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA2YSJ9LmZhLWV4Y2xhbWF0aW9uLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzMjEifS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1leHBhbmQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQyNCJ9LmZhLWV4cGFuZC1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzFkIn0uZmEtZXhwYW5kLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFlIn0uZmEtZXh0ZXJuYWwtbGluazpiZWZvcmV7Y29udGVudDoiXGYwOGUifS5mYS1leHRlcm5hbC1saW5rLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWQifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGMifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYwIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OiJcZjA2ZSJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS1mYWNlYm9vazpiZWZvcmV7Y29udGVudDoiXGYwOWEifS5mYS1mYWNlYm9vay1mOmJlZm9yZXtjb250ZW50OiJcZjM5ZSJ9LmZhLWZhY2Vib29rLW1lc3NlbmdlcjpiZWZvcmV7Y29udGVudDoiXGYzOWYifS5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgyIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTVjIn0uZmEtZmlsZS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtZmlsZS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjY1OSJ9LmZhLWZpbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzE2In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLWZpbGUtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZkIn0uZmEtZmlsZS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjMxYyJ9LmZhLWZpbGUtZXhjZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzMWEifS5mYS1maWxlLWV4cG9ydDpiZWZvcmV7Y29udGVudDoiXGY1NmUifS5mYS1maWxlLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjFjNSJ9LmZhLWZpbGUtaW1wb3J0OmJlZm9yZXtjb250ZW50OiJcZjU2ZiJ9LmZhLWZpbGUtaW52b2ljZS1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTcxIn0uZmEtZmlsZS1taW51czpiZWZvcmV7Y29udGVudDoiXGYzMTgifS5mYS1maWxlLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjhiNiJ9LmZhLWZpbGUtcGRmOmJlZm9yZXtjb250ZW50OiJcZjFjMSJ9LmZhLWZpbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYzMTkifS5mYS1maWxlLXBvd2VycG9pbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmODY1In0uZmEtZmlsZS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYzMTcifS5mYS1maWxlLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGY1NzQifS5mYS1maWxlLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjFjOCJ9LmZhLWZpbGUtd29yZDpiZWZvcmV7Y29udGVudDoiXGYxYzIifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtZmluZ2VycHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTc3In0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjAyNCJ9LmZhLWZsYWctYWx0OmJlZm9yZXtjb250ZW50OiJcZjc0YyJ9LmZhLWZsYWctY2hlY2tlcmVkOmJlZm9yZXtjb250ZW50OiJcZjExZSJ9LmZhLWZsdXgtY2FwYWNpdG9yOmJlZm9yZXtjb250ZW50OiJcZjhiYSJ9LmZhLWZvbGRlcjpiZWZvcmV7Y29udGVudDoiXGYwN2IifS5mYS1mb2xkZXItZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDUzIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtZm9sZGVyLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGUwNTQifS5mYS1mcm93bjpiZWZvcmV7Y29udGVudDoiXGYxMTkifS5mYS1mcm93bi1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjU3YSJ9LmZhLWdhbGFjdGljLXNlbmF0ZTpiZWZvcmV7Y29udGVudDoiXGY1MGQifS5mYS1nYXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDA5In0uZmEtZ2FyYWdlLWNhcjpiZWZvcmV7Y29udGVudDoiXGUwMGEifS5mYS1nYXJhZ2Utb3BlbjpiZWZvcmV7Y29udGVudDoiXGUwMGIifS5mYS1nYXMtcHVtcDpiZWZvcmV7Y29udGVudDoiXGY1MmYifS5mYS1nYXMtcHVtcC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY1ZjQifS5mYS1nbGFzc2VzOmJlZm9yZXtjb250ZW50OiJcZjUzMCJ9LmZhLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZjBhYyJ9LmZhLWdvb2dsZTpiZWZvcmV7Y29udGVudDoiXGYxYTAifS5mYS1ncmlwLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxmNThkIn0uZmEtZ3JpcC1saW5lczpiZWZvcmV7Y29udGVudDoiXGY3YTQifS5mYS1ncmlwLWxpbmVzLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjdhNSJ9LmZhLWdyaXAtdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNThlIn0uZmEtaGFuZC1ob2xkaW5nLXVzZDpiZWZvcmV7Y29udGVudDoiXGY0YzAifS5mYS1oYW5kLXBvaW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGE3In0uZmEtaGFuZC1wb2ludC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhNSJ9LmZhLWhhbmQtcG9pbnQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE0In0uZmEtaGFuZC1wb2ludC11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1oYW5kLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtaGFuZHMtdXNkOmJlZm9yZXtjb250ZW50OiJcZjRjNSJ9LmZhLWhhc2h0YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkyIn0uZmEtaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDA0In0uZmEtaGVhcnQtYnJva2VuOmJlZm9yZXtjb250ZW50OiJcZjdhOSJ9LmZhLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzEyIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWhvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjgwYSJ9LmZhLWhvbWUtbGc6YmVmb3Jle2NvbnRlbnQ6IlxmODBiIn0uZmEtaG9tZS1sZy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODBjIn0uZmEtaG91c2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDBkIn0uZmEtaS1jdXJzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ2In0uZmEtaW5ib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMDFjIn0uZmEtaW5ib3gtaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzEwIn0uZmEtaW5ib3gtb3V0OmJlZm9yZXtjb250ZW50OiJcZjMxMSJ9LmZhLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTI5In0uZmEtaW5mby1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDVhIn0uZmEtaW5mby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzBmIn0uZmEtaW5zdGFncmFtOmJlZm9yZXtjb250ZW50OiJcZjE2ZCJ9LmZhLWluc3RhZ3JhbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDU1In0uZmEta2V5OmJlZm9yZXtjb250ZW50OiJcZjA4NCJ9LmZhLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjFhYiJ9LmZhLWxhc3NvOmJlZm9yZXtjb250ZW50OiJcZjhjOCJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtbGV2ZWwtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNDkifS5mYS1sZXZlbC1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmUifS5mYS1sZXZlbC11cDpiZWZvcmV7Y29udGVudDoiXGYxNDgifS5mYS1sZXZlbC11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JmIn0uZmEtbGlua2VkaW46YmVmb3Jle2NvbnRlbnQ6IlxmMDhjIn0uZmEtbGlua2VkaW4taW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMDkifS5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMwYiJ9LmZhLWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjMwYyJ9LmZhLWxvbmctYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNzUifS5mYS1sb25nLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc3In0uZmEtbG9uZy1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNzgifS5mYS1sb25nLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjE3NiJ9LmZhLW1hZ2ljOmJlZm9yZXtjb250ZW50OiJcZjBkMCJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6IlxmMjc2In0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGY1YTEifS5mYS1tZWRhbDpiZWZvcmV7Y29udGVudDoiXGY1YTIifS5mYS1tZWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtbWljcm9jaGlwOmJlZm9yZXtjb250ZW50OiJcZjJkYiJ9LmZhLW1pY3JvcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTMwIn0uZmEtbWljcm9waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M5In0uZmEtbWljcm9waG9uZS1hbHQtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNTM5In0uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxMzEifS5mYS1taW5kLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjY3NyJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1taW51cy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwNyJ9LmZhLW1pbnVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzA4In0uZmEtbWludXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0NiJ9LmZhLW1vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxMGIifS5mYS1tb2JpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjZCJ9LmZhLW1vYmlsZS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjNjZSJ9LmZhLW1vYmlsZS1hbmRyb2lkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2YifS5mYS1tb25leS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY1M2MifS5mYS1tb25leS1jaGVjay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTNkIn0uZmEtbW9uZXktY2hlY2stZWRpdDpiZWZvcmV7Y29udGVudDoiXGY4NzIifS5mYS1tb25leS1jaGVjay1lZGl0LWFsdDpiZWZvcmV7Y29udGVudDoiXGY4NzMifS5mYS1tb3RvcmN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIxYyJ9LmZhLW1vdW50YWluOmJlZm9yZXtjb250ZW50OiJcZjZmYyJ9LmZhLW1vdXNlLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ1In0uZmEtbXAzLXBsYXllcjpiZWZvcmV7Y29udGVudDoiXGY4Y2UifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwNiJ9LmZhLW9pbC1jYW46YmVmb3Jle2NvbnRlbnQ6IlxmNjEzIn0uZmEtb2lsLXRlbXA6YmVmb3Jle2NvbnRlbnQ6IlxmNjE0In0uZmEtcGFpbnQtYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWZjIn0uZmEtcGFsZXR0ZTpiZWZvcmV7Y29udGVudDoiXGY1M2YifS5mYS1wYXBlci1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYxZDgifS5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtcGVuOmJlZm9yZXtjb250ZW50OiJcZjMwNCJ9LmZhLXBlbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzA1In0uZmEtcGVuLWZhbmN5OmJlZm9yZXtjb250ZW50OiJcZjVhYyJ9LmZhLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXGYwNDAifS5mYS1wZW5jaWwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwMyJ9LmZhLXBlbmNpbC1ydWxlcjpiZWZvcmV7Y29udGVudDoiXGY1YWUifS5mYS1wZW9wbGUtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZTA2OCJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXBob25lLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4NzkifS5mYS1waG9uZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk4In0uZmEtcGhvbmUtc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4N2IifS5mYS1waG9uZS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtcGhvdG8tdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmODdjIn0uZmEtcGludGVyZXN0OmJlZm9yZXtjb250ZW50OiJcZjBkMiJ9LmZhLXBpbnRlcmVzdC1wOmJlZm9yZXtjb250ZW50OiJcZjIzMSJ9LmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQzIn0uZmEtcGxheTpiZWZvcmV7Y29udGVudDoiXGYwNGIifS5mYS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxNDQifS5mYS1wbHVnOmJlZm9yZXtjb250ZW50OiJcZjFlNiJ9LmZhLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY3In0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU1In0uZmEtcGx1cy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwMCJ9LmZhLXBsdXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDEifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1wb286YmVmb3Jle2NvbnRlbnQ6IlxmMmZlIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDJmIn0uZmEtcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyOSJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTkifS5mYS1xdWVzdGlvbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZkIn0uZmEtcXVvdGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMGQifS5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtcmVjdGFuZ2xlLWxhbmRzY2FwZTpiZWZvcmV7Y29udGVudDoiXGYyZmEifS5mYS1yZWN0YW5nbGUtcG9ydHJhaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmZiIn0uZmEtcmVjdGFuZ2xlLXdpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZjIn0uZmEtcmVjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifS5mYS1yZWRvOmJlZm9yZXtjb250ZW50OiJcZjAxZSJ9LmZhLXJlZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmOSJ9LmZhLXJlcGVhdDpiZWZvcmV7Y29udGVudDoiXGYzNjMifS5mYS1yZXBlYXQtMTpiZWZvcmV7Y29udGVudDoiXGYzNjUifS5mYS1yZXBlYXQtMS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY2In0uZmEtcmVwZWF0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjQifS5mYS1yZXBseTpiZWZvcmV7Y29udGVudDoiXGYzZTUifS5mYS1yZXBseS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0uZmEtcmV0d2VldDpiZWZvcmV7Y29udGVudDoiXGYwNzkifS5mYS1yZXR3ZWV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjEifS5mYS1yb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOCJ9LmZhLXJvYm90OmJlZm9yZXtjb250ZW50OiJcZjU0NCJ9LmZhLXJzczpiZWZvcmV7Y29udGVudDoiXGYwOWUifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0MyJ9LmZhLXJ2OmJlZm9yZXtjb250ZW50OiJcZjdiZSJ9LmZhLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM3In0uZmEtc2NyZXdkcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTRhIn0uZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS1zaGFwZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNjFmIn0uZmEtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDY0In0uZmEtc2hhcmUtYWxsOmJlZm9yZXtjb250ZW50OiJcZjM2NyJ9LmZhLXNoYXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxZTAifS5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFlMSJ9LmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTMyIn0uZmEtc2hpZWxkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZWQifS5mYS1zaG9wcGluZy1iYXNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjkxIn0uZmEtc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYwN2EifS5mYS1zaHV0dGxlLXZhbjpiZWZvcmV7Y29udGVudDoiXGY1YjYifS5mYS1zaWduLWluOmJlZm9yZXtjb250ZW50OiJcZjA5MCJ9LmZhLXNpZ24taW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNiJ9LmZhLXNpZ24tb3V0OmJlZm9yZXtjb250ZW50OiJcZjA4YiJ9LmZhLXNpZ24tb3V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjUifS5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtc2lnbmFsLXN0cmVhbTpiZWZvcmV7Y29udGVudDoiXGY4ZGQifS5mYS1zaXRlbWFwOmJlZm9yZXtjb250ZW50OiJcZjBlOCJ9LmZhLXNsaWRlcnMtaDpiZWZvcmV7Y29udGVudDoiXGYxZGUifS5mYS1zbGlkZXJzLWgtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNmMCJ9LmZhLXNsaWRlcnMtdjpiZWZvcmV7Y29udGVudDoiXGYzZjEifS5mYS1zbGlkZXJzLXYtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNmMiJ9LmZhLXNtaWxlOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLXNtczpiZWZvcmV7Y29udGVudDoiXGY3Y2QifS5mYS1zbm93Zmxha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmRjIn0uZmEtc29ydDpiZWZvcmV7Y29udGVudDoiXGYwZGMifS5mYS1zb3J0LWFscGhhLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0uZmEtc29ydC1hbHBoYS1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODEifS5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1ZSJ9LmZhLXNvcnQtYWxwaGEtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MiJ9LmZhLXNvcnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MyJ9LmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg0In0uZmEtc29ydC1hbW91bnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0uZmEtc29ydC1hbW91bnQtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NSJ9LmZhLXNvcnQtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTAzMCJ9LmZhLXNvcnQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDMxIn0uZmEtc29ydC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDMyIn0uZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODYifS5mYS1zb3J0LW51bWVyaWMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYzIn0uZmEtc29ydC1udW1lcmljLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODcifS5mYS1zb3J0LXNoYXBlcy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjg4OCJ9LmZhLXNvcnQtc2hhcGVzLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4OSJ9LmZhLXNvcnQtc2hhcGVzLXVwOmJlZm9yZXtjb250ZW50OiJcZjg4YSJ9LmZhLXNvcnQtc2hhcGVzLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OGIifS5mYS1zb3J0LXNpemUtZG93bjpiZWZvcmV7Y29udGVudDoiXGY4OGMifS5mYS1zb3J0LXNpemUtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhkIn0uZmEtc29ydC1zaXplLXVwOmJlZm9yZXtjb250ZW50OiJcZjg4ZSJ9LmZhLXNvcnQtc2l6ZS11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhmIn0uZmEtc29ydC11cDpiZWZvcmV7Y29udGVudDoiXGYwZGUifS5mYS1zcGFkZTpiZWZvcmV7Y29udGVudDoiXGYyZjQifS5mYS1zcGlubmVyOmJlZm9yZXtjb250ZW50OiJcZjExMCJ9LmZhLXNwaW5uZXItdGhpcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y0In0uZmEtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBjOCJ9LmZhLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA1In0uZmEtc3Rhci1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyZjMifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtc3Rhci1oYWxmLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1YzAifS5mYS1zdGVlcmluZy13aGVlbDpiZWZvcmV7Y29udGVudDoiXGY2MjIifS5mYS1zdGlja3ktbm90ZTpiZWZvcmV7Y29udGVudDoiXGYyNDkifS5mYS1zdG9wd2F0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmYyIn0uZmEtc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNTRlIn0uZmEtc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjU0ZiJ9LmZhLXN1aXRjYXNlLXJvbGxpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNWMxIn0uZmEtc3VuOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLXN5bmM6YmVmb3Jle2NvbnRlbnQ6IlxmMDIxIn0uZmEtc3luYy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmYxIn0uZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9LmZhLXRhYmxldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZhIn0uZmEtdGFjaG9tZXRlcjpiZWZvcmV7Y29udGVudDoiXGYwZTQifS5mYS10YWNob21ldGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmQifS5mYS10YWNob21ldGVyLWFsdC1hdmVyYWdlOmJlZm9yZXtjb250ZW50OiJcZjYyNCJ9LmZhLXRhY2hvbWV0ZXItYWx0LWZhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI1In0uZmEtdGFjaG9tZXRlci1hbHQtZmFzdGVzdDpiZWZvcmV7Y29udGVudDoiXGY2MjYifS5mYS10YWNob21ldGVyLWFsdC1zbG93OmJlZm9yZXtjb250ZW50OiJcZjYyNyJ9LmZhLXRhY2hvbWV0ZXItYWx0LXNsb3dlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI4In0uZmEtdGFjaG9tZXRlci1hdmVyYWdlOmJlZm9yZXtjb250ZW50OiJcZjYyOSJ9LmZhLXRhY2hvbWV0ZXItZmFzdDpiZWZvcmV7Y29udGVudDoiXGY2MmEifS5mYS10YWNob21ldGVyLWZhc3Rlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJiIn0uZmEtdGFjaG9tZXRlci1zbG93OmJlZm9yZXtjb250ZW50OiJcZjYyYyJ9LmZhLXRhY2hvbWV0ZXItc2xvd2VzdDpiZWZvcmV7Y29udGVudDoiXGY2MmQifS5mYS10YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDJiIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRlbXBlcmF0dXJlLWhpZ2g6YmVmb3Jle2NvbnRlbnQ6IlxmNzY5In0uZmEtdGVtcGVyYXR1cmUtbG93OmJlZm9yZXtjb250ZW50OiJcZjc2YiJ9LmZhLXRleHQtaGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzNCJ9LmZhLXRleHQtd2lkdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDM1In0uZmEtdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyYzkifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjE0NSJ9LmZhLXRpa3RvazpiZWZvcmV7Y29udGVudDoiXGUwN2IifS5mYS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYwMGQifS5mYS10aW1lcy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU3In0uZmEtdGltZXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYyZWUifS5mYS10aW1lcy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjJmMCJ9LmZhLXRpbWVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyZDMifS5mYS10aW50OmJlZm9yZXtjb250ZW50OiJcZjA0MyJ9LmZhLXRpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNjMxIn0uZmEtdGlyZS1mbGF0OmJlZm9yZXtjb250ZW50OiJcZjYzMiJ9LmZhLXRpcmUtcHJlc3N1cmUtd2FybmluZzpiZWZvcmV7Y29udGVudDoiXGY2MzMifS5mYS10aXJlLXJ1Z2dlZDpiZWZvcmV7Y29udGVudDoiXGY2MzQifS5mYS10b2dnbGUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9LmZhLXRvZ2dsZS1vbjpiZWZvcmV7Y29udGVudDoiXGYyMDUifS5mYS10b29sczpiZWZvcmV7Y29udGVudDoiXGY3ZDkifS5mYS10cmFpbGVyOmJlZm9yZXtjb250ZW50OiJcZTA0MSJ9LmZhLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmOCJ9LmZhLXRyYXNoLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWQifS5mYS10cmFzaC1yZXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjgyOSJ9LmZhLXRyYXNoLXJlc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjgyYSJ9LmZhLXRyYXNoLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmODk1In0uZmEtdHJhc2gtdW5kby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODk2In0uZmEtdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmVjIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLXRyb3BoeS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmViIn0uZmEtdHJ1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGQxIn0uZmEtdHJ1Y2stbG9hZGluZzpiZWZvcmV7Y29udGVudDoiXGY0ZGUifS5mYS10cnVjay1tb25zdGVyOmJlZm9yZXtjb250ZW50OiJcZjYzYiJ9LmZhLXRydWNrLXBpY2t1cDpiZWZvcmV7Y29udGVudDoiXGY2M2MifS5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtdHY6YmVmb3Jle2NvbnRlbnQ6IlxmMjZjIn0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYSJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwOTMifS5mYS11c2QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJlOCJ9LmZhLXVzZC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmU5In0uZmEtdXNlcjpiZWZvcmV7Y29udGVudDoiXGYwMDcifS5mYS11c2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MDYifS5mYS11c2VyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjRmYyJ9LmZhLXVzZXItY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJiZCJ9LmZhLXVzZXItZnJpZW5kczpiZWZvcmV7Y29udGVudDoiXGY1MDAifS5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYwM2QifS5mYS12b2ljZW1haWw6YmVmb3Jle2NvbnRlbnQ6IlxmODk3In0uZmEtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjZhOCJ9LmZhLXZvbHVtZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjAyNyJ9LmZhLXZvbHVtZS1tdXRlOmJlZm9yZXtjb250ZW50OiJcZjZhOSJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDI2In0uZmEtdm9sdW1lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjJlMiJ9LmZhLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGYwMjgifS5mYS13YWdvbi1jb3ZlcmVkOmJlZm9yZXtjb250ZW50OiJcZjhlZSJ9LmZhLXdhbGtpZS10YWxraWU6YmVmb3Jle2NvbnRlbnQ6IlxmOGVmIn0uZmEtd2ViY2FtOmJlZm9yZXtjb250ZW50OiJcZjgzMiJ9LmZhLXdlYmNhbS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY4MzMifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXdpZmk6YmVmb3Jle2NvbnRlbnQ6IlxmMWViIn0uZmEtd3JlbmNoOmJlZm9yZXtjb250ZW50OiJcZjBhZCJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDMxIn0uZmEtc2hpZWxkLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjJmNyJ9LmZhLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMGMxIn0uZmEtdW5saW5rOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLWJhZGdlLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NDUifS5mYS1wZW4tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9LmZhLWNvbW1lbnQtYWx0LWRvdHM6YmVmb3Jle2NvbnRlbnQ6IlxmNGEzIn0uZmEtYXJyb3ctZG93bi10by1saW5lOmJlZm9yZXtjb250ZW50OiJcZjMzZCJ9LmZhLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1NiI7fS5zci1vbmx5e2JvcmRlcjowO2NsaXA6cmVjdCgwLDAsMCwwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsLnNyLW9ubHktZm9jdXNhYmxlOmZvY3Vze2NsaXA6YXV0bztoZWlnaHQ6YXV0bzttYXJnaW46MDtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IEJyYW5kcyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYWJ7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IEJyYW5kcyc7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYWx7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC13ZWlnaHQ6MzAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYXJ7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYSwuZmFze2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nIWltcG9ydGFudDtmb250LXdlaWdodDo5MDB9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRDJDQ3VzdG9tSWNvbnMnO3NyYzpsb2NhbChEMkNDdXN0b21JY29ucyksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMuc3ZnI3N2Z0ZvbnROYW1lKSBmb3JtYXQoInN2ZyIpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0uZmEteC10d2l0dGVyOmJlZm9yZXtmb250LWZhbWlseTonRDJDQ3VzdG9tSWNvbnMnLHNlcmlmO2NvbnRlbnQ6IlxlOTAwIjtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0KLyoqIC9jc3MvZm9udC1hd2Vzb21lLmNvbnRlbnQubWluLmNzcyAqKi8KLmZhLTUwMHB4OmJlZm9yZXtjb250ZW50OiJcZjI2ZSJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1hY2N1c29mdDpiZWZvcmV7Y29udGVudDoiXGYzNjkifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJiYiJ9LmZhLWFkanVzdDpiZWZvcmV7Y29udGVudDoiXGYwNDIifS5mYS1hZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTcwIn0uZmEtYWR2ZXJzYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzZhIn0uZmEtYWZmaWxpYXRldGhlbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZiIn0uZmEtYWxnb2xpYTpiZWZvcmV7Y29udGVudDoiXGYzNmMifS5mYS1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDM3In0uZmEtYWxpZ24tanVzdGlmeTpiZWZvcmV7Y29udGVudDoiXGYwMzkifS5mYS1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjAzNiJ9LmZhLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzOCJ9LmZhLWFtYXpvbjpiZWZvcmV7Y29udGVudDoiXGYyNzAifS5mYS1hbWF6b24tcGF5OmJlZm9yZXtjb250ZW50OiJcZjQyYyJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZzpiZWZvcmV7Y29udGVudDoiXGYyYTMifS5mYS1hbWlsaWE6YmVmb3Jle2NvbnRlbnQ6IlxmMzZkIn0uZmEtYW5jaG9yOmJlZm9yZXtjb250ZW50OiJcZjEzZCJ9LmZhLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0uZmEtYW5nZWxsaXN0OmJlZm9yZXtjb250ZW50OiJcZjIwOSJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwMCJ9LmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDEifS5mYS1hbmdsZS1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwNCJ9LmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9LmZhLWFuZ2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwNiJ9LmZhLWFuZ3J5Y3JlYXRpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZlIn0uZmEtYW5ndWxhcjpiZWZvcmV7Y29udGVudDoiXGY0MjAifS5mYS1hcHAtc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZmIn0uZmEtYXBwLXN0b3JlLWlvczpiZWZvcmV7Y29udGVudDoiXGYzNzAifS5mYS1hcHBlcjpiZWZvcmV7Y29udGVudDoiXGYzNzEifS5mYS1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxNzkifS5mYS1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE1In0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxODcifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU4In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1OSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVhIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYWIifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDYzIn0uZmEtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNjAifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYwNjIifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmV7Y29udGVudDoiXGYzMzcifS5mYS1hcnJvd3MtYWx0LXY6YmVmb3Jle2NvbnRlbnQ6IlxmMzM4In0uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZXtjb250ZW50OiJcZjJhMiJ9LmZhLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjA2OSJ9LmZhLWFzeW1tZXRyaWs6YmVmb3Jle2NvbnRlbnQ6IlxmMzcyIn0uZmEtYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWZhIn0uZmEtYXVkaWJsZTpiZWZvcmV7Y29udGVudDoiXGYzNzMifS5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyOWUifS5mYS1hdXRvcHJlZml4ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDFjIn0uZmEtYXZpYW5leDpiZWZvcmV7Y29udGVudDoiXGYzNzQifS5mYS1hdmlhdG86YmVmb3Jle2NvbnRlbnQ6IlxmNDIxIn0uZmEtYXdzOmJlZm9yZXtjb250ZW50OiJcZjM3NSJ9LmZhLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0YSJ9LmZhLWJhbGFuY2Utc2NhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRlIn0uZmEtYmFuOmJlZm9yZXtjb250ZW50OiJcZjA1ZSJ9LmZhLWJhbmRjYW1wOmJlZm9yZXtjb250ZW50OiJcZjJkNSJ9LmZhLWJhcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDJhIn0uZmEtYmFyczpiZWZvcmV7Y29udGVudDoiXGYwYzkifS5mYS1iYXNlYmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzMyJ9LmZhLWJhc2tldGJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzQifS5mYS1iYXRoOmJlZm9yZXtjb250ZW50OiJcZjJjZCJ9LmZhLWJhdHRlcnktZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ0In0uZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNDIifS5mYS1iYXR0ZXJ5LXF1YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQzIn0uZmEtYmF0dGVyeS10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyNDEifS5mYS1iZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjM2In0uZmEtYmVlcjpiZWZvcmV7Y29udGVudDoiXGYwZmMifS5mYS1iZWhhbmNlOmJlZm9yZXtjb250ZW50OiJcZjFiNCJ9LmZhLWJlaGFuY2Utc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNSJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtYmVsbC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjYifS5mYS1iaWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIwNiJ9LmZhLWJpbW9iamVjdDpiZWZvcmV7Y29udGVudDoiXGYzNzgifS5mYS1iaW5vY3VsYXJzOmJlZm9yZXtjb250ZW50OiJcZjFlNSJ9LmZhLWJpcnRoZGF5LWNha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWZkIn0uZmEtYml0YnVja2V0OmJlZm9yZXtjb250ZW50OiJcZjE3MSJ9LmZhLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzc5In0uZmEtYml0eTpiZWZvcmV7Y29udGVudDoiXGYzN2EifS5mYS1ibGFjay10aWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjdlIn0uZmEtYmxhY2tiZXJyeTpiZWZvcmV7Y29udGVudDoiXGYzN2IifS5mYS1ibGluZDpiZWZvcmV7Y29udGVudDoiXGYyOWQifS5mYS1ibG9nZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM3YyJ9LmZhLWJsb2dnZXItYjpiZWZvcmV7Y29udGVudDoiXGYzN2QifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtYmx1ZXRvb3RoLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk0In0uZmEtYm9sZDpiZWZvcmV7Y29udGVudDoiXGYwMzIifS5mYS1ib2x0OmJlZm9yZXtjb250ZW50OiJcZjBlNyJ9LmZhLWJvbWI6YmVmb3Jle2NvbnRlbnQ6IlxmMWUyIn0uZmEtYm9vazpiZWZvcmV7Y29udGVudDoiXGYwMmQifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1ib3dsaW5nLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM2In0uZmEtYnJhaWxsZTpiZWZvcmV7Y29udGVudDoiXGYyYTEifS5mYS1icmllZmNhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGIxIn0uZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGYxYWQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1idWxsc2V5ZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifS5mYS1idXJvbW9iZWxleHBlcnRlOmJlZm9yZXtjb250ZW50OiJcZjM3ZiJ9LmZhLWJ1czpiZWZvcmV7Y29udGVudDoiXGYyMDcifS5mYS1idXlzZWxsYWRzOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtY2FsZW5kYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWNhbGVuZGFyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjI3NCJ9LmZhLWNhbGVuZGFyLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNhbGVuZGFyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcxIn0uZmEtY2FsZW5kYXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWNhbWVyYS1yZXRybzpiZWZvcmV7Y29udGVudDoiXGYwODMifS5mYS1jYXI6YmVmb3JlLC5mYS1hdXRvbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWNhcmV0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGQ3In0uZmEtY2FyZXQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwZDkifS5mYS1jYXJldC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwZGEifS5mYS1jYXJldC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNTAifS5mYS1jYXJldC1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxOTEifS5mYS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0uZmEtY2FyZXQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1MSJ9LmZhLWNhcmV0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkOCJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYyMTgifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2MtYW1hem9uLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MmQifS5mYS1jYy1hbWV4OmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9LmZhLWNjLWFwcGxlLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MTYifS5mYS1jYy1kaW5lcnMtY2x1YjpiZWZvcmV7Y29udGVudDoiXGYyNGMifS5mYS1jYy1kaXNjb3ZlcjpiZWZvcmV7Y29udGVudDoiXGYxZjIifS5mYS1jYy1qY2I6YmVmb3Jle2NvbnRlbnQ6IlxmMjRiIn0uZmEtY2MtbWFzdGVyY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxZjEifS5mYS1jYy1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0uZmEtY2Mtc3RyaXBlOmJlZm9yZXtjb250ZW50OiJcZjFmNSJ9LmZhLWNjLXZpc2E6YmVmb3Jle2NvbnRlbnQ6IlxmMWYwIn0uZmEtY2VudGVyY29kZTpiZWZvcmV7Y29udGVudDoiXGYzODAifS5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGYwYTMifS5mYS1jaGFydC1hcmVhOmJlZm9yZXtjb250ZW50OiJcZjFmZSJ9LmZhLWNoYXJ0LWJhcjpiZWZvcmV7Y29udGVudDoiXGYwODAifS5mYS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWNoYXJ0LXBpZTpiZWZvcmV7Y29udGVudDoiXGYyMDAifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2hlY2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YSJ9LmZhLWNoZXNzOmJlZm9yZXtjb250ZW50OiJcZjQzOSJ9LmZhLWNoZXNzLWJpc2hvcDpiZWZvcmV7Y29udGVudDoiXGY0M2EifS5mYS1jaGVzcy1ib2FyZDpiZWZvcmV7Y29udGVudDoiXGY0M2MifS5mYS1jaGVzcy1raW5nOmJlZm9yZXtjb250ZW50OiJcZjQzZiJ9LmZhLWNoZXNzLWtuaWdodDpiZWZvcmV7Y29udGVudDoiXGY0NDEifS5mYS1jaGVzcy1wYXduOmJlZm9yZXtjb250ZW50OiJcZjQ0MyJ9LmZhLWNoZXNzLXF1ZWVuOmJlZm9yZXtjb250ZW50OiJcZjQ0NSJ9LmZhLWNoZXNzLXJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmNDQ3In0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxM2EifS5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEzNyJ9LmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEzOCJ9LmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9LmZhLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNzgifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZjA3NyJ9LmZhLWNoaWxkOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9LmZhLWNocm9tZTpiZWZvcmV7Y29udGVudDoiXGYyNjgifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtY2lyY2xlLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLWNsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGYzMjgifS5mYS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMTcifS5mYS1jbG9uZTpiZWZvcmV7Y29udGVudDoiXGYyNGQifS5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmV7Y29udGVudDoiXGYyMGEifS5mYS1jbG91ZDpiZWZvcmV7Y29udGVudDoiXGYwYzIifS5mYS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgxIn0uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODIifS5mYS1jbG91ZHNjYWxlOmJlZm9yZXtjb250ZW50OiJcZjM4MyJ9LmZhLWNsb3Vkc21pdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMzg0In0uZmEtY2xvdWR2ZXJzaWZ5OmJlZm9yZXtjb250ZW50OiJcZjM4NSJ9LmZhLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0uZmEtY29kZS1icmFuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI2In0uZmEtY29kZXBlbjpiZWZvcmV7Y29udGVudDoiXGYxY2IifS5mYS1jb2RpZXBpZTpiZWZvcmV7Y29udGVudDoiXGYyODQifS5mYS1jb2ZmZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMGY0In0uZmEtY29nOmJlZm9yZXtjb250ZW50OiJcZjAxMyJ9LmZhLWNvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtZ2VhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtY29sdW1uczpiZWZvcmV7Y29udGVudDoiXGYwZGIifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWNvbW1lbnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjI3YSJ9LmZhLWNvbW1lbnRzOmJlZm9yZXtjb250ZW50OiJcZjA4NiJ9LmZhLWNvbXBhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTRlIn0uZmEtY29tcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDY2In0uZmEtY29ubmVjdGRldmVsb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMjBlIn0uZmEtY29udGFvOmJlZm9yZXtjb250ZW50OiJcZjI2ZCJ9LmZhLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWNwYW5lbDpiZWZvcmV7Y29udGVudDoiXGYzODgifS5mYS1jcmVhdGl2ZS1jb21tb25zOmJlZm9yZXtjb250ZW50OiJcZjI1ZSJ9LmZhLWNyZWRpdC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjA5ZCJ9LmZhLWNyb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTI1In0uZmEtY3Jvc3NoYWlyczpiZWZvcmV7Y29udGVudDoiXGYwNWIifS5mYS1jc3MzOmJlZm9yZXtjb250ZW50OiJcZjEzYyJ9LmZhLWNzczMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4YiJ9LmZhLWN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWIyIn0uZmEtY3ViZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWIzIn0uZmEtY3V0OmJlZm9yZXtjb250ZW50OiJcZjBjNCJ9LmZhLWN1dHRsZWZpc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMzhjIn0uZmEtZC1hbmQtZDpiZWZvcmV7Y29udGVudDoiXGYzOGQifS5mYS1kYXNoY3ViZTpiZWZvcmV7Y29udGVudDoiXGYyMTAifS5mYS1kYXRhYmFzZTpiZWZvcmV7Y29udGVudDoiXGYxYzAifS5mYS1kZWFmOmJlZm9yZXtjb250ZW50OiJcZjJhNCJ9LmZhLWRlbGljaW91czpiZWZvcmV7Y29udGVudDoiXGYxYTUifS5mYS1kZXBsb3lkb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMzhlIn0uZmEtZGVza3BybzpiZWZvcmV7Y29udGVudDoiXGYzOGYifS5mYS1kZXNrdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9LmZhLWRldmlhbnRhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJkIn0uZmEtZGlnZzpiZWZvcmV7Y29udGVudDoiXGYxYTYifS5mYS1kaWdpdGFsLW9jZWFuOmJlZm9yZXtjb250ZW50OiJcZjM5MSJ9LmZhLWRpc2NvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzkyIn0uZmEtZGlzY291cnNlOmJlZm9yZXtjb250ZW50OiJcZjM5MyJ9LmZhLWRvY2h1YjpiZWZvcmV7Y29udGVudDoiXGYzOTQifS5mYS1kb2NrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzk1In0uZmEtZG9sbGFyLXNpZ246YmVmb3JlLC5mYS1kb2xsYXI6YmVmb3JlLC5mYS11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtZG90LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1kcmFmdDJkaWdpdGFsOmJlZm9yZXtjb250ZW50OiJcZjM5NiJ9LmZhLWRyaWJiYmxlOmJlZm9yZXtjb250ZW50OiJcZjE3ZCJ9LmZhLWRyaWJiYmxlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzOTcifS5mYS1kcm9wYm94OmJlZm9yZXtjb250ZW50OiJcZjE2YiJ9LmZhLWRydXBhbDpiZWZvcmV7Y29udGVudDoiXGYxYTkifS5mYS1keWFsb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMzk5In0uZmEtZWFybHliaXJkczpiZWZvcmV7Y29udGVudDoiXGYzOWEifS5mYS1lZGdlOmJlZm9yZXtjb250ZW50OiJcZjI4MiJ9LmZhLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtZWplY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDUyIn0uZmEtZWxlbWVudG9yOmJlZm9yZXtjb250ZW50OiJcZjQzMCJ9LmZhLWVsbGlwc2lzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0uZmEtZWxsaXBzaXMtdjpiZWZvcmV7Y29udGVudDoiXGYxNDIifS5mYS1lbWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MjMifS5mYS1lbXBpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQxIn0uZmEtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGUwIn0uZmEtZW52ZWxvcGUtb3BlbjpiZWZvcmV7Y29udGVudDoiXGYyYjYifS5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk5In0uZmEtZW52aXJhOmJlZm9yZXtjb250ZW50OiJcZjI5OSJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1lcmxhbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMzlkIn0uZmEtZXRoZXJldW06YmVmb3Jle2NvbnRlbnQ6IlxmNDJlIn0uZmEtZXRzeTpiZWZvcmV7Y29udGVudDoiXGYyZDcifS5mYS1ldXJvLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTUzIn0uZmEtZXhjaGFuZ2UtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MiJ9LmZhLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9LmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNmEifS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1leHBhbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDY1In0uZmEtZXhwYW5kLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFlIn0uZmEtZXhwZWRpdGVkc3NsOmJlZm9yZXtjb250ZW50OiJcZjIzZSJ9LmZhLWV4dGVybmFsLWxpbmstYWx0OmJlZm9yZXtjb250ZW50OiJcZjM1ZCJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjAifS5mYS1leWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZlIn0uZmEtZXllLWRyb3BwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWZiIn0uZmEtZXllLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjA3MCJ9LmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA5YSJ9LmZhLWZhY2Vib29rLWY6YmVmb3Jle2NvbnRlbnQ6IlxmMzllIn0uZmEtZmFjZWJvb2stbWVzc2VuZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM5ZiJ9LmZhLWZhY2Vib29rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODIifS5mYS1mYXN0LWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OSJ9LmZhLWZhc3QtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTAifS5mYS1mYXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0uZmEtZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MiJ9LmZhLWZpZ2h0ZXItamV0OmJlZm9yZXtjb250ZW50OiJcZjBmYiJ9LmZhLWZpbGU6YmVmb3JlLC5mYS1maWxlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTVjIn0uZmEtZmlsZS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLWZpbGUtZXhjZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYzUifS5mYS1maWxlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXBvd2VycG9pbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxYzgifS5mYS1maWxlLXdvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWMyIn0uZmEtZmlsbTpiZWZvcmV7Y29udGVudDoiXGYwMDgifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1maXJlLWV4dGluZ3Vpc2hlcjpiZWZvcmV7Y29udGVudDoiXGYxMzQifS5mYS1maXJlZm94OmJlZm9yZXtjb250ZW50OiJcZjI2OSJ9LmZhLWZpcnN0LW9yZGVyOmJlZm9yZXtjb250ZW50OiJcZjJiMCJ9LmZhLWZpcnN0ZHJhZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ExIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS1mbGFzazpiZWZvcmV7Y29udGVudDoiXGYwYzMifS5mYS1mbGlja3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTZlIn0uZmEtZmxpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjQ0ZCJ9LmZhLWZseTpiZWZvcmV7Y29udGVudDoiXGY0MTcifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDdiIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtZm9udDpiZWZvcmV7Y29udGVudDoiXGYwMzEifS5mYS1mb250LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI0In0uZmEtZm9udC1hd2Vzb21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWMifS5mYS1mb250LWF3ZXNvbWUtZmxhZzpiZWZvcmV7Y29udGVudDoiXGY0MjUifS5mYS1mb250aWNvbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjgwIn0uZmEtZm9udGljb25zLWZpOmJlZm9yZXtjb250ZW50OiJcZjNhMiJ9LmZhLWZvb3RiYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDRlIn0uZmEtZm9ydC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZjI4NiJ9LmZhLWZvcnQtYXdlc29tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2EzIn0uZmEtZm9ydW1iZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjExIn0uZmEtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNGUifS5mYS1mb3Vyc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE4MCJ9LmZhLWZyZWUtY29kZS1jYW1wOmJlZm9yZXtjb250ZW50OiJcZjJjNSJ9LmZhLWZyZWVic2Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2E0In0uZmEtZnJvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtZnV0Ym9sOmJlZm9yZXtjb250ZW50OiJcZjFlMyJ9LmZhLWdhbWVwYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFiIn0uZmEtZ2F2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGUzIn0uZmEtZ2VtOmJlZm9yZXtjb250ZW50OiJcZjNhNSJ9LmZhLWdlbmRlcmxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjJkIn0uZmEtZ2V0LXBvY2tldDpiZWZvcmV7Y29udGVudDoiXGYyNjUifS5mYS1nZzpiZWZvcmV7Y29udGVudDoiXGYyNjAifS5mYS1nZy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjYxIn0uZmEtZ2lmdDpiZWZvcmV7Y29udGVudDoiXGYwNmIifS5mYS1naXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWQzIn0uZmEtZ2l0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZDIifS5mYS1naXRodWI6YmVmb3Jle2NvbnRlbnQ6IlxmMDliIn0uZmEtZ2l0aHViLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxMTMifS5mYS1naXRodWItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5MiJ9LmZhLWdpdGtyYWtlbjpiZWZvcmV7Y29udGVudDoiXGYzYTYifS5mYS1naXRsYWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk2In0uZmEtZ2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjQyNiJ9LmZhLWdsYXNzLW1hcnRpbmk6YmVmb3Jle2NvbnRlbnQ6IlxmMDAwIn0uZmEtZ2xpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmE1In0uZmEtZ2xpZGUtZzpiZWZvcmV7Y29udGVudDoiXGYyYTYifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDoiXGYwYWMifS5mYS1nb2ZvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2E3In0uZmEtZ29sZi1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1MCJ9LmZhLWdvb2RyZWFkczpiZWZvcmV7Y29udGVudDoiXGYzYTgifS5mYS1nb29kcmVhZHMtZzpiZWZvcmV7Y29udGVudDoiXGYzYTkifS5mYS1nb29nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0uZmEtZ29vZ2xlLWRyaXZlOmJlZm9yZXtjb250ZW50OiJcZjNhYSJ9LmZhLWdvb2dsZS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjNhYiJ9LmZhLWdvb2dsZS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjJiMyJ9LmZhLWdvb2dsZS1wbHVzLWc6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ1In0uZmEtZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkNCJ9LmZhLWdvb2dsZS13YWxsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWVlIn0uZmEtZ3JhZHVhdGlvbi1jYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTlkIn0uZmEtZ3JhdGlwYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMTg0In0uZmEtZ3JhdjpiZWZvcmV7Y29udGVudDoiXGYyZDYifS5mYS1ncmlwZmlyZTpiZWZvcmV7Y29udGVudDoiXGYzYWMifS5mYS1ncnVudDpiZWZvcmV7Y29udGVudDoiXGYzYWQifS5mYS1ndWxwOmJlZm9yZXtjb250ZW50OiJcZjNhZSJ9LmZhLWgtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBmZCJ9LmZhLWhhY2tlci1uZXdzOmJlZm9yZXtjb250ZW50OiJcZjFkNCJ9LmZhLWhhY2tlci1uZXdzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzYWYifS5mYS1oYW5kLWxpemFyZDpiZWZvcmV7Y29udGVudDoiXGYyNTgifS5mYS1oYW5kLXBhcGVyOmJlZm9yZXtjb250ZW50OiJcZjI1NiJ9LmZhLWhhbmQtcGVhY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjViIn0uZmEtaGFuZC1wb2ludC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhNyJ9LmZhLWhhbmQtcG9pbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTUifS5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtcG9pbnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGE2In0uZmEtaGFuZC1wb2ludGVyOmJlZm9yZSwuZmEtaGFuZC1wb2ludGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtaGFuZC1yb2NrOmJlZm9yZXtjb250ZW50OiJcZjI1NSJ9LmZhLWhhbmQtc2Npc3NvcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjU3In0uZmEtaGFuZC1zcG9jazpiZWZvcmV7Y29udGVudDoiXGYyNTkifS5mYS1oYW5kc2hha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmI1In0uZmEtaGFzaHRhZzpiZWZvcmV7Y29udGVudDoiXGYyOTIifS5mYS1oZGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGEwIn0uZmEtaGVhZGluZzpiZWZvcmV7Y29udGVudDoiXGYxZGMifS5mYS1oZWFkcGhvbmVzOmJlZm9yZXtjb250ZW50OiJcZjAyNSJ9LmZhLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZjAwNCJ9LmZhLWhlYXJ0YmVhdDpiZWZvcmV7Y29udGVudDoiXGYyMWUifS5mYS1oaXBzOmJlZm9yZXtjb250ZW50OiJcZjQ1MiJ9LmZhLWhpcmUtYS1oZWxwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2IwIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1ob2NrZXktcHVjazpiZWZvcmV7Y29udGVudDoiXGY0NTMifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWhvb2xpOmJlZm9yZXtjb250ZW50OiJcZjQyNyJ9LmZhLWhvc3BpdGFsOmJlZm9yZXtjb250ZW50OiJcZjBmOCJ9LmZhLWhvdGphcjpiZWZvcmV7Y29udGVudDoiXGYzYjEifS5mYS1ob3VyZ2xhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjU0In0uZmEtaG91cmdsYXNzLWVuZDpiZWZvcmV7Y29udGVudDoiXGYyNTMifS5mYS1ob3VyZ2xhc3MtaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNTIifS5mYS1ob3VyZ2xhc3Mtc3RhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUxIn0uZmEtaG91eno6YmVmb3Jle2NvbnRlbnQ6IlxmMjdjIn0uZmEtaHRtbDU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0uZmEtaHVic3BvdDpiZWZvcmV7Y29udGVudDoiXGYzYjIifS5mYS1pLWN1cnNvcjpiZWZvcmV7Y29udGVudDoiXGYyNDYifS5mYS1pZC1iYWRnZTpiZWZvcmV7Y29udGVudDoiXGYyYzEifS5mYS1pZC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJjMiJ9LmZhLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjAzZSJ9LmZhLWltYWdlczpiZWZvcmV7Y29udGVudDoiXGYzMDIifS5mYS1pbWRiOmJlZm9yZXtjb250ZW50OiJcZjJkOCJ9LmZhLWluYm94OmJlZm9yZXtjb250ZW50OiJcZjAxYyJ9LmZhLWluZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2MifS5mYS1pbmR1c3RyeTpiZWZvcmV7Y29udGVudDoiXGYyNzUifS5mYS1pbmZvOmJlZm9yZXtjb250ZW50OiJcZjEyOSJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1YSJ9LmZhLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYxNmQifS5mYS1pbnRlcm5ldC1leHBsb3JlcjpiZWZvcmV7Y29udGVudDoiXGYyNmIifS5mYS1pb3hob3N0OmJlZm9yZXtjb250ZW50OiJcZjIwOCJ9LmZhLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYwMzMifS5mYS1pdHVuZXM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I0In0uZmEtaXR1bmVzLW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2I1In0uZmEtamVua2luczpiZWZvcmV7Y29udGVudDoiXGYzYjYifS5mYS1qb2dldDpiZWZvcmV7Y29udGVudDoiXGYzYjcifS5mYS1qb29tbGE6YmVmb3Jle2NvbnRlbnQ6IlxmMWFhIn0uZmEtanM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I4In0uZmEtanMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNiOSJ9LmZhLWpzZmlkZGxlOmJlZm9yZXtjb250ZW50OiJcZjFjYyJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1rZXlib2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMWMifS5mYS1rZXljZG46YmVmb3Jle2NvbnRlbnQ6IlxmM2JhIn0uZmEta2lja3N0YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2JiIn0uZmEta2lja3N0YXJ0ZXItazpiZWZvcmV7Y29udGVudDoiXGYzYmMifS5mYS1rb3J2dWU6YmVmb3Jle2NvbnRlbnQ6IlxmNDJmIn0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtbGFwdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOSJ9LmZhLWxhcmF2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmM2JkIn0uZmEtbGFzdGZtOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9LmZhLWxhc3RmbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0uZmEtbGVhZjpiZWZvcmV7Y29udGVudDoiXGYwNmMifS5mYS1sZWFucHViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9LmZhLWxlbW9uOmJlZm9yZXtjb250ZW50OiJcZjA5NCJ9LmZhLWxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDFkIn0uZmEtbGV2ZWwtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JlIn0uZmEtbGV2ZWwtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZiJ9LmZhLWxpZmUtcmluZzpiZWZvcmV7Y29udGVudDoiXGYxY2QifS5mYS1saWdodGJ1bGI6YmVmb3Jle2NvbnRlbnQ6IlxmMGViIn0uZmEtbGluZTpiZWZvcmV7Y29udGVudDoiXGYzYzAifS5mYS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjBjMSJ9LmZhLWxpbmtlZGluOmJlZm9yZXtjb250ZW50OiJcZjA4YyJ9LmZhLWxpbmtlZGluLWluOmJlZm9yZXtjb250ZW50OiJcZjBlMSJ9LmZhLWxpbm9kZTpiZWZvcmV7Y29udGVudDoiXGYyYjgifS5mYS1saW51eDpiZWZvcmV7Y29udGVudDoiXGYxN2MifS5mYS1saXJhLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTk1In0uZmEtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwM2EifS5mYS1saXN0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYwMjIifS5mYS1saXN0LW9sOmJlZm9yZXtjb250ZW50OiJcZjBjYiJ9LmZhLWxpc3QtdWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGNhIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMjMifS5mYS1sb2NrLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmM2MxIn0uZmEtbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMDkifS5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMwYiJ9LmZhLWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjMwYyJ9LmZhLWxvdy12aXNpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmE4In0uZmEtbHlmdDpiZWZvcmV7Y29udGVudDoiXGYzYzMifS5mYS1tYWdlbnRvOmJlZm9yZXtjb250ZW50OiJcZjNjNCJ9LmZhLW1hZ2ljOmJlZm9yZXtjb250ZW50OiJcZjBkMCJ9LmZhLW1hZ25ldDpiZWZvcmV7Y29udGVudDoiXGYwNzYifS5mYS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MyJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6IlxmMjc2In0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIyIn0uZmEtbWFycy1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjI3In0uZmEtbWFycy1zdHJva2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjI5In0uZmEtbWFycy1zdHJva2UtaDpiZWZvcmV7Y29udGVudDoiXGYyMmIifS5mYS1tYXJzLXN0cm9rZS12OmJlZm9yZXtjb250ZW50OiJcZjIyYSJ9LmZhLW1heGNkbjpiZWZvcmV7Y29udGVudDoiXGYxMzYifS5mYS1tZWRhcHBzOmJlZm9yZXtjb250ZW50OiJcZjNjNiJ9LmZhLW1lZGl1bTpiZWZvcmV7Y29udGVudDoiXGYyM2EifS5mYS1tZWRpdW0tbTpiZWZvcmV7Y29udGVudDoiXGYzYzcifS5mYS1tZWRraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZhIn0uZmEtbWVkcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M4In0uZmEtbWVldHVwOmJlZm9yZXtjb250ZW50OiJcZjJlMCJ9LmZhLW1laDpiZWZvcmV7Y29udGVudDoiXGYxMWEifS5mYS1tZXJjdXJ5OmJlZm9yZXtjb250ZW50OiJcZjIyMyJ9LmZhLW1pY3JvY2hpcDpiZWZvcmV7Y29udGVudDoiXGYyZGIifS5mYS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjEzMCJ9LmZhLW1pY3JvcGhvbmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTMxIn0uZmEtbWljcm9zb2Z0OmJlZm9yZXtjb250ZW50OiJcZjNjYSJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1taW51cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ2In0uZmEtbWl4OmJlZm9yZXtjb250ZW50OiJcZjNjYiJ9LmZhLW1peGNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjI4OSJ9LmZhLW1penVuaTpiZWZvcmV7Y29udGVudDoiXGYzY2MifS5mYS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTBiIn0uZmEtbW9iaWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2QifS5mYS1tb2R4OmJlZm9yZXtjb250ZW50OiJcZjI4NSJ9LmZhLW1vbmVybzpiZWZvcmV7Y29udGVudDoiXGYzZDAifS5mYS1tb25leS1iaWxsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZDEifS5mYS1tb29uOmJlZm9yZXtjb250ZW50OiJcZjE4NiJ9LmZhLW1vdG9yY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjFjIn0uZmEtbW91c2UtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDUifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1uYXBzdGVyOmJlZm9yZXtjb250ZW50OiJcZjNkMiJ9LmZhLW5ldXRlcjpiZWZvcmV7Y29udGVudDoiXGYyMmMifS5mYS1uZXdzcGFwZXI6YmVmb3JlLC5mYS1uZXdzcGFwZXItbzpiZWZvcmV7Y29udGVudDoiXGYxZWEifS5mYS1uaW50ZW5kby1zd2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNDE4In0uZmEtbm9kZTpiZWZvcmV7Y29udGVudDoiXGY0MTkifS5mYS1ub2RlLWpzOmJlZm9yZXtjb250ZW50OiJcZjNkMyJ9LmZhLW5wbTpiZWZvcmV7Y29udGVudDoiXGYzZDQifS5mYS1uczg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q1In0uZmEtbnV0cml0aW9uaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q2In0uZmEtb2JqZWN0LWdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0NyJ9LmZhLW9iamVjdC11bmdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0OCJ9LmZhLW9kbm9rbGFzc25pa2k6YmVmb3Jle2NvbnRlbnQ6IlxmMjYzIn0uZmEtb2Rub2tsYXNzbmlraS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjY0In0uZmEtb3BlbmNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjNkIn0uZmEtb3BlbmlkOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9LmZhLW9wZXJhOmJlZm9yZXtjb250ZW50OiJcZjI2YSJ9LmZhLW9wdGluLW1vbnN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjNjIn0uZmEtb3NpOmJlZm9yZXtjb250ZW50OiJcZjQxYSJ9LmZhLW91dGRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDNiIn0uZmEtcGFnZTQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q3In0uZmEtcGFnZWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjE4YyJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZXtjb250ZW50OiJcZjFmYyJ9LmZhLXBhbGZlZDpiZWZvcmV7Y29udGVudDoiXGYzZDgifS5mYS1wYXBlci1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYxZDgifS5mYS1wYXBlcmNsaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGM2In0uZmEtcGFyYWdyYXBoOmJlZm9yZXtjb250ZW50OiJcZjFkZCJ9LmZhLXBhc3RlOmJlZm9yZXtjb250ZW50OiJcZjBlYSJ9LmZhLXBhdHJlb246YmVmb3Jle2NvbnRlbnQ6IlxmM2Q5In0uZmEtcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDRjIn0uZmEtcGF1c2UtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4YiJ9LmZhLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxYjAifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtcGVuLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGIifS5mYS1wZW5jaWwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwMyJ9LmZhLXBlcmNlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjk1In0uZmEtcGVyaXNjb3BlOmJlZm9yZXtjb250ZW50OiJcZjNkYSJ9LmZhLXBoYWJyaWNhdG9yOmJlZm9yZXtjb250ZW50OiJcZjNkYiJ9LmZhLXBob2VuaXgtZnJhbWV3b3JrOmJlZm9yZXtjb250ZW50OiJcZjNkYyJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXBob25lLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTgifS5mYS1waG9uZS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtcGhwOmJlZm9yZXtjb250ZW50OiJcZjQ1NyJ9LmZhLXBpZWQtcGlwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmFlIn0uZmEtcGllZC1waXBlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE4In0uZmEtcGllZC1waXBlci1wcDpiZWZvcmV7Y29udGVudDoiXGYxYTcifS5mYS1waW50ZXJlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMGQyIn0uZmEtcGludGVyZXN0LXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMxIn0uZmEtcGludGVyZXN0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYwNzIifS5mYS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjA0YiJ9LmZhLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9LmZhLXBsYXlzdGF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjNkZiJ9LmZhLXBsdWc6YmVmb3Jle2NvbnRlbnQ6IlxmMWU2In0uZmEtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwNjcifS5mYS1wbHVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTUifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1wb2RjYXN0OmJlZm9yZXtjb250ZW50OiJcZjJjZSJ9LmZhLXBvdW5kLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU0In0uZmEtcG93ZXItb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAxMSJ9LmZhLXByaW50OmJlZm9yZXtjb250ZW50OiJcZjAyZiJ9LmZhLXByb2R1Y3QtaHVudDpiZWZvcmV7Y29udGVudDoiXGYyODgifS5mYS1wdXNoZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2UxIn0uZmEtcHV6emxlLXBpZWNlOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9LmZhLXB5dGhvbjpiZWZvcmV7Y29udGVudDoiXGYzZTIifS5mYS1xcTpiZWZvcmV7Y29udGVudDoiXGYxZDYifS5mYS1xcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDI5In0uZmEtcXVlc3Rpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTI4In0uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OSJ9LmZhLXF1aWRkaXRjaDpiZWZvcmV7Y29udGVudDoiXGY0NTgifS5mYS1xdWluc2NhcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDU5In0uZmEtcXVvcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMmM0In0uZmEtcXVvdGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMGQifS5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtcmF2ZWxyeTpiZWZvcmV7Y29udGVudDoiXGYyZDkifS5mYS1yZWFjdDpiZWZvcmV7Y29udGVudDoiXGY0MWIifS5mYS1yZWJlbDpiZWZvcmV7Y29udGVudDoiXGYxZDAifS5mYS1yZWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjFiOCJ9LmZhLXJlZC1yaXZlcjpiZWZvcmV7Y29udGVudDoiXGYzZTMifS5mYS1yZWRkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWExIn0uZmEtcmVkZGl0LWFsaWVuOmJlZm9yZXtjb250ZW50OiJcZjI4MSJ9LmZhLXJlZGRpdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEyIn0uZmEtcmVkbzpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1yZWRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjkifS5mYS1yZWdpc3RlcmVkOmJlZm9yZXtjb250ZW50OiJcZjI1ZCJ9LmZhLXJlbmRhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2U0In0uZmEtcmVucmVuOmJlZm9yZXtjb250ZW50OiJcZjE4YiJ9LmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjNlNSJ9LmZhLXJlcGx5LWFsbDpiZWZvcmV7Y29udGVudDoiXGYxMjIifS5mYS1yZXBseWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2U2In0uZmEtcmVzb2x2aW5nOmJlZm9yZXtjb250ZW50OiJcZjNlNyJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc5In0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1yb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM1In0uZmEtcm9ja2V0Y2hhdDpiZWZvcmV7Y29udGVudDoiXGYzZTgifS5mYS1yb2Nrcm1zOmJlZm9yZXtjb250ZW50OiJcZjNlOSJ9LmZhLXJzczpiZWZvcmV7Y29udGVudDoiXGYwOWUifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0MyJ9LmZhLXJ1YmxlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU4In0uZmEtcnVwZWUtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTYifS5mYS1zYWZhcmk6YmVmb3Jle2NvbnRlbnQ6IlxmMjY3In0uZmEtc2FzczpiZWZvcmV7Y29udGVudDoiXGY0MWUifS5mYS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZjBjNyJ9LmZhLXNjaGxpeDpiZWZvcmV7Y29udGVudDoiXGYzZWEifS5mYS1zY3JpYmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjhhIn0uZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS1zZWFyY2hlbmdpbjpiZWZvcmV7Y29udGVudDoiXGYzZWIifS5mYS1zZWxsY2FzdDpiZWZvcmV7Y29udGVudDoiXGYyZGEifS5mYS1zZWxsc3k6YmVmb3Jle2NvbnRlbnQ6IlxmMjEzIn0uZmEtc2VydmVyOmJlZm9yZXtjb250ZW50OiJcZjIzMyJ9LmZhLXNlcnZpY2VzdGFjazpiZWZvcmV7Y29udGVudDoiXGYzZWMifS5mYS1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGYwNjQifS5mYS1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTEifS5mYS1zaGFyZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0uZmEtc2hla2VsLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMjBiIn0uZmEtc2hpZWxkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZWQifS5mYS1zaGlwOmJlZm9yZXtjb250ZW50OiJcZjIxYSJ9LmZhLXNoaXJ0c2luYnVsazpiZWZvcmV7Y29udGVudDoiXGYyMTQifS5mYS1zaG9wcGluZy1iYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkwIn0uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZXtjb250ZW50OiJcZjI5MSJ9LmZhLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDdhIn0uZmEtc2hvd2VyOmJlZm9yZXtjb250ZW50OiJcZjJjYyJ9LmZhLXNpZ24taW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNiJ9LmZhLXNpZ24tbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmE3In0uZmEtc2lnbi1vdXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNSJ9LmZhLXNpZ25hbDpiZWZvcmV7Y29udGVudDoiXGYwMTIifS5mYS1zaW1wbHlidWlsdDpiZWZvcmV7Y29udGVudDoiXGYyMTUifS5mYS1zaXN0cml4OmJlZm9yZXtjb250ZW50OiJcZjNlZSJ9LmZhLXNpdGVtYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGU4In0uZmEtc2t5YXRsYXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0uZmEtc2t5cGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTdlIn0uZmEtc2xhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTk4In0uZmEtc2xhY2staGFzaDpiZWZvcmV7Y29udGVudDoiXGYzZWYifS5mYS1zbGlkZXJzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRlIn0uZmEtc2xpZGVzaGFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTcifS5mYS1zbWlsZTpiZWZvcmUsLmZhLXNtaWxlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0uZmEtc25hcGNoYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmFiIn0uZmEtc25hcGNoYXQtZ2hvc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmFjIn0uZmEtc25hcGNoYXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhZCJ9LmZhLXNub3dmbGFrZTpiZWZvcmV7Y29udGVudDoiXGYyZGMifS5mYS1zb3J0OmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLXNvcnQtYWxwaGEtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNWQifS5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1ZSJ9LmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0uZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjMifS5mYS1zb3J0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkZSJ9LmZhLXNvdW5kY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJlIn0uZmEtc3BhY2Utc2h1dHRsZTpiZWZvcmV7Y29udGVudDoiXGYxOTcifS5mYS1zcGVha2FwOmJlZm9yZXtjb250ZW50OiJcZjNmMyJ9LmZhLXNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTEwIn0uZmEtc3BvdGlmeTpiZWZvcmV7Y29udGVudDoiXGYxYmMifS5mYS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM4In0uZmEtc3F1YXJlLWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDVjIn0uZmEtc3RhY2stZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMThkIn0uZmEtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTZjIn0uZmEtc3RhcjpiZWZvcmV7Y29udGVudDoiXGYwMDUifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtc3RheWxpbmtlZDpiZWZvcmV7Y29udGVudDoiXGYzZjUifS5mYS1zdGVhbTpiZWZvcmV7Y29udGVudDoiXGYxYjYifS5mYS1zdGVhbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI3In0uZmEtc3RlYW0tc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjNmNiJ9LmZhLXN0ZXAtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ4In0uZmEtc3RlcC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA1MSJ9LmZhLXN0ZXRob3Njb3BlOmJlZm9yZXtjb250ZW50OiJcZjBmMSJ9LmZhLXN0aWNrZXItbXVsZTpiZWZvcmV7Y29udGVudDoiXGYzZjcifS5mYS1zdGlja3ktbm90ZTpiZWZvcmV7Y29udGVudDoiXGYyNDkifS5mYS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjA0ZCJ9LmZhLXN0b3AtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4ZCJ9LmZhLXN0b3B3YXRjaDpiZWZvcmV7Y29udGVudDoiXGYyZjIifS5mYS1zdHJhdmE6YmVmb3Jle2NvbnRlbnQ6IlxmNDI4In0uZmEtc3RyZWV0LXZpZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjFkIn0uZmEtc3RyaWtldGhyb3VnaDpiZWZvcmV7Y29udGVudDoiXGYwY2MifS5mYS1zdHJpcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDI5In0uZmEtc3RyaXBlLXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDJhIn0uZmEtc3R1ZGlvdmluYXJpOmJlZm9yZXtjb250ZW50OiJcZjNmOCJ9LmZhLXN0dW1ibGV1cG9uOmJlZm9yZXtjb250ZW50OiJcZjFhNCJ9LmZhLXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxYTMifS5mYS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0uZmEtc3Vid2F5OmJlZm9yZXtjb250ZW50OiJcZjIzOSJ9LmZhLXN1aXRjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBmMiJ9LmZhLXN1bjpiZWZvcmUsLmZhLXN1bi1vOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLXN1cGVycG93ZXJzOmJlZm9yZXtjb250ZW50OiJcZjJkZCJ9LmZhLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYiJ9LmZhLXN1cHBsZTpiZWZvcmV7Y29udGVudDoiXGYzZjkifS5mYS1zeW5jOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLXN5bmMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmMSJ9LmZhLXRhYmxlOmJlZm9yZXtjb250ZW50OiJcZjBjZSJ9LmZhLXRhYmxlLXRlbm5pczpiZWZvcmV7Y29udGVudDoiXGY0NWQifS5mYS10YWJsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBhIn0uZmEtdGFibGV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmEifS5mYS10YWNob21ldGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmQifS5mYS10YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDJiIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS10YXNrczpiZWZvcmV7Y29udGVudDoiXGYwYWUifS5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRlbGVncmFtOmJlZm9yZXtjb250ZW50OiJcZjJjNiJ9LmZhLXRlbGVncmFtLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjNmZSJ9LmZhLXRlbmNlbnQtd2VpYm86YmVmb3Jle2NvbnRlbnQ6IlxmMWQ1In0uZmEtdGVybWluYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIwIn0uZmEtdGV4dC1oZWlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM0In0uZmEtdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDoiXGYwMzUifS5mYS10aDpiZWZvcmV7Y29udGVudDoiXGYwMGEifS5mYS10aC1sYXJnZTpiZWZvcmV7Y29udGVudDoiXGYwMDkifS5mYS10aC1saXN0OmJlZm9yZXtjb250ZW50OiJcZjAwYiJ9LmZhLXRoZW1laXNsZTpiZWZvcmV7Y29udGVudDoiXGYyYjIifS5mYS10aGVybW9tZXRlci1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYyY2IifS5mYS10aGVybW9tZXRlci1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjJjNyJ9LmZhLXRoZXJtb21ldGVyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMmM5In0uZmEtdGhlcm1vbWV0ZXItcXVhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYyY2EifS5mYS10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyYzgifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdGh1bWJ0YWNrOmJlZm9yZXtjb250ZW50OiJcZjA4ZCJ9LmZhLXRpY2tldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZmIn0uZmEtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBkIn0uZmEtdGltZXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NyJ9LmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQzIn0uZmEtdG9nZ2xlLW9mZjpiZWZvcmV7Y29udGVudDoiXGYyMDQifS5mYS10b2dnbGUtb246YmVmb3Jle2NvbnRlbnQ6IlxmMjA1In0uZmEtdHJhZGVtYXJrOmJlZm9yZXtjb250ZW50OiJcZjI1YyJ9LmZhLXRyYWluOmJlZm9yZXtjb250ZW50OiJcZjIzOCJ9LmZhLXRyYW5zZ2VuZGVyOmJlZm9yZXtjb250ZW50OiJcZjIyNCJ9LmZhLXRyYW5zZ2VuZGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyMjUifS5mYS10cmFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjgifS5mYS10cmFzaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVkIn0uZmEtdHJlZTpiZWZvcmV7Y29udGVudDoiXGYxYmIifS5mYS10cmVsbG86YmVmb3Jle2NvbnRlbnQ6IlxmMTgxIn0uZmEtdHJpcGFkdmlzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjYyIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLXRydWNrOmJlZm9yZXtjb250ZW50OiJcZjBkMSJ9LmZhLXR0eTpiZWZvcmV7Y29udGVudDoiXGYxZTQifS5mYS10dW1ibHI6YmVmb3Jle2NvbnRlbnQ6IlxmMTczIn0uZmEtdHVtYmxyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNzQifS5mYS10djpiZWZvcmV7Y29udGVudDoiXGYyNmMifS5mYS10d2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWU4In0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS10eXBvMzpiZWZvcmV7Y29udGVudDoiXGY0MmIifS5mYS11YmVyOmJlZm9yZXtjb250ZW50OiJcZjQwMiJ9LmZhLXVpa2l0OmJlZm9yZXtjb250ZW50OiJcZjQwMyJ9LmZhLXVtYnJlbGxhOmJlZm9yZXtjb250ZW50OiJcZjBlOSJ9LmZhLXVuZGVybGluZTpiZWZvcmV7Y29udGVudDoiXGYwY2QifS5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYSJ9LmZhLXVuaXJlZ2lzdHJ5OmJlZm9yZXtjb250ZW50OiJcZjQwNCJ9LmZhLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjlhIn0uZmEtdW5pdmVyc2l0eTpiZWZvcmV7Y29udGVudDoiXGYxOWMifS5mYS11bmxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0uZmEtdW5sb2NrOmJlZm9yZXtjb250ZW50OiJcZjA5YyJ9LmZhLXVubG9jay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTNlIn0uZmEtdW50YXBwZDpiZWZvcmV7Y29udGVudDoiXGY0MDUifS5mYS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDkzIn0uZmEtdXNiOmJlZm9yZXtjb250ZW50OiJcZjI4NyJ9LmZhLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA3In0uZmEtdXNlci1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmJkIn0uZmEtdXNlci1tZDpiZWZvcmV7Y29udGVudDoiXGYwZjAifS5mYS11c2VyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM0In0uZmEtdXNlci1zZWNyZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFiIn0uZmEtdXNlci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyMzUifS5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS11c3N1bm5haDpiZWZvcmV7Y29udGVudDoiXGY0MDcifS5mYS11dGVuc2lsLXNwb29uOmJlZm9yZXtjb250ZW50OiJcZjJlNSJ9LmZhLXV0ZW5zaWxzOmJlZm9yZXtjb250ZW50OiJcZjJlNyJ9LmZhLXZhYWRpbjpiZWZvcmV7Y29udGVudDoiXGY0MDgifS5mYS12ZW51czpiZWZvcmV7Y29udGVudDoiXGYyMjEifS5mYS12ZW51cy1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjI2In0uZmEtdmVudXMtbWFyczpiZWZvcmV7Y29udGVudDoiXGYyMjgifS5mYS12aWFjb2luOmJlZm9yZXtjb250ZW50OiJcZjIzNyJ9LmZhLXZpYWRlbzpiZWZvcmV7Y29udGVudDoiXGYyYTkifS5mYS12aWFkZW8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhYSJ9LmZhLXZpYmVyOmJlZm9yZXtjb250ZW50OiJcZjQwOSJ9LmZhLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjAzZCJ9LmZhLXZpbWVvOmJlZm9yZXtjb250ZW50OiJcZjQwYSJ9LmZhLXZpbWVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTQifS5mYS12aW1lby12OmJlZm9yZXtjb250ZW50OiJcZjI3ZCJ9LmZhLXZpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWNhIn0uZmEtdms6YmVmb3Jle2NvbnRlbnQ6IlxmMTg5In0uZmEtdm52OmJlZm9yZXtjb250ZW50OiJcZjQwYiJ9LmZhLXZvbGxleWJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NWYifS5mYS12b2x1bWUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS12b2x1bWUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAyNiJ9LmZhLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGYwMjgifS5mYS12dWVqczpiZWZvcmV7Y29udGVudDoiXGY0MWYifS5mYS13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxOGEifS5mYS13ZWl4aW46YmVmb3Jle2NvbnRlbnQ6IlxmMWQ3In0uZmEtd2hhdHNhcHA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMyIn0uZmEtd2hhdHNhcHAtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQwYyJ9LmZhLXdoZWVsY2hhaXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTkzIn0uZmEtd2htY3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDBkIn0uZmEtd2lmaTpiZWZvcmV7Y29udGVudDoiXGYxZWIifS5mYS13aWtpcGVkaWEtdzpiZWZvcmV7Y29udGVudDoiXGYyNjYifS5mYS13aW5kb3ctY2xvc2U6YmVmb3Jle2NvbnRlbnQ6IlxmNDEwIn0uZmEtd2luZG93LW1heGltaXplOmJlZm9yZXtjb250ZW50OiJcZjJkMCJ9LmZhLXdpbmRvdy1taW5pbWl6ZTpiZWZvcmV7Y29udGVudDoiXGYyZDEifS5mYS13aW5kb3ctcmVzdG9yZTpiZWZvcmV7Y29udGVudDoiXGYyZDIifS5mYS13aW5kb3dzOmJlZm9yZXtjb250ZW50OiJcZjE3YSJ9LmZhLXdvbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1OSJ9LmZhLXdvcmRwcmVzczpiZWZvcmV7Y29udGVudDoiXGYxOWEifS5mYS13b3JkcHJlc3Mtc2ltcGxlOmJlZm9yZXtjb250ZW50OiJcZjQxMSJ9LmZhLXdwYmVnaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk3In0uZmEtd3BleHBsb3JlcjpiZWZvcmV7Y29udGVudDoiXGYyZGUifS5mYS13cGZvcm1zOmJlZm9yZXtjb250ZW50OiJcZjI5OCJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS14Ym94OmJlZm9yZXtjb250ZW50OiJcZjQxMiJ9LmZhLXhpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTY4In0uZmEteGluZy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY5In0uZmEteS1jb21iaW5hdG9yOmJlZm9yZXtjb250ZW50OiJcZjIzYiJ9LmZhLXlhaG9vOmJlZm9yZXtjb250ZW50OiJcZjE5ZSJ9LmZhLXlhbmRleDpiZWZvcmV7Y29udGVudDoiXGY0MTMifS5mYS15YW5kZXgtaW50ZXJuYXRpb25hbDpiZWZvcmV7Y29udGVudDoiXGY0MTQifS5mYS15ZWxwOmJlZm9yZXtjb250ZW50OiJcZjFlOSJ9LmZhLXllbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9LmZhLXlvYXN0OmJlZm9yZXtjb250ZW50OiJcZjJiMSJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDMxIn0KLyoqIC9jc3MvdjIvYW5pbWF0ZS5jc3MgKiovCi5hbmltLWJlYXQgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdDsgYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0OyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCkgfSAuYW5pbS1ib3VuY2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYm91bmNlOyBhbmltYXRpb24tbmFtZTphbmltLWJvdW5jZTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjI4LC44NCwuNDIsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguMjgsLjg0LC40MiwxKSkgfSAuYW5pbS1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWZhZGU7IGFuaW1hdGlvbi1uYW1lOmFuaW0tZmFkZTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpIH0gLmFuaW0tYmVhdC1mYWRlLC5hbmltLWZhZGUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpIH0gLmFuaW0tYmVhdC1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJlYXQtZmFkZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0LWZhZGU7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKSB9IC5hbmltLWZsaXAgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tZmxpcDsgYW5pbWF0aW9uLW5hbWU6YW5pbS1mbGlwOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDNzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sM3MpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCkgfSAuYW5pbS1zaGFrZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1zaGFrZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zaGFrZTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcikgfSAuYW5pbS1zaGFrZSwuYW5pbS1zcGluIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKSB9IC5hbmltLXNwaW4geyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDJzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMnMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcik7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKSB9IC5hbmltLXNwaW4tcmV2ZXJzZSB7IC0tYW5pbS1kaXJlY3Rpb246cmV2ZXJzZSB9IC5hbmltLXB1bHNlLC5hbmltLXNwaW4tcHVsc2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLHN0ZXBzKDgpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxzdGVwcyg4KSkgfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1iZWF0IHsgMCUsOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDQ1JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYmVhdCB7IDAlLDkwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA0NSUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYm91bmNlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKSB9IDMwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpIH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApIH0gNTclIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSkgfSA2NCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB9IEBrZXlmcmFtZXMgYW5pbS1ib3VuY2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gMTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApIH0gMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSkgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCkgfSA1NyUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKSB9IDY0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tZmFkZSB7IDUwJSB7IG9wYWNpdHk6dmFyKC0tYW5pbS1mYWRlLW9wYWNpdHksLjQpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tZmFkZSB7IDUwJSB7IG9wYWNpdHk6dmFyKC0tYW5pbS1mYWRlLW9wYWNpdHksLjQpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1iZWF0LWZhZGUgeyAwJSx0byB7IG9wYWNpdHk6dmFyKC0tYW5pbS1iZWF0LWZhZGUtb3BhY2l0eSwuNCk7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA1MCUgeyBvcGFjaXR5OjE7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYmVhdC1mYWRlIHsgMCUsdG8geyBvcGFjaXR5OnZhcigtLWFuaW0tYmVhdC1mYWRlLW9wYWNpdHksLjQpOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNTAlIHsgb3BhY2l0eToxOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tZmxpcCB7IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSk7IHRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tZmxpcCB7IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSk7IHRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1zaGFrZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKSB9IDQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZykgfSA4JSwyNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpIH0gMTIlLDI4JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMThkZWcpIH0gMTYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKSB9IDIwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpIH0gMzIlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKSB9IDM2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpIH0gNDAlLHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tc2hha2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xNWRlZykgfSA0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpIH0gOCUsMjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKSB9IDEyJSwyOCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE4ZGVnKSB9IDE2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0yMmRlZykgfSAyMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDIyZGVnKSB9IDMyJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xMmRlZykgfSAzNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDEyZGVnKSB9IDQwJSx0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tc3BpbiB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pOyB0cmFuc2Zvcm06cm90YXRlKDF0dXJuKSB9IH0gQGtleWZyYW1lcyBhbmltLXNwaW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTsgdHJhbnNmb3JtOnJvdGF0ZSgxdHVybikgfSB9IEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmUpIHsgYm9keSAjcHJvbW9Ub3BCdG4gLmFuaW0tZmxpcHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dW5zZXQ7IGFuaW1hdGlvbi1kZWxheTp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnVuc2V0OyBhbmltYXRpb24tZGlyZWN0aW9uOnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp1bnNldDsgYW5pbWF0aW9uLWR1cmF0aW9uOnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dW5zZXQ7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp1bnNldDsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp1bnNldDsgfSB9IC5wdWxzYXRpbmctY2lyY2xlIHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjMwcHg7IGhlaWdodDozMHB4OyBmbGV4OjAgMCBhdXRvOyAmOmJlZm9yZSB7IGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDozMDAlOyBoZWlnaHQ6MzAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tbGVmdDotMTAwJTsgbWFyZ2luLXRvcDotMTAwJTsgYm9yZGVyLXJhZGl1czo0NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMWE0ZTk7IGFuaW1hdGlvbjpwdWxzZS1yaW5nIDEuMjVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpIGluZmluaXRlOyB9ICY6YWZ0ZXIgeyBjb250ZW50OicnOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlci1yYWRpdXM6MTVweDsgYm94LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjMpOyBhbmltYXRpb246cHVsc2UtZG90IDEuMjVzIGN1YmljLWJlemllcigwLjQ1NSwgMC4wMywgMC41MTUsIDAuOTU1KSAtLjRzIGluZmluaXRlOyB9IH0gQGtleWZyYW1lcyBwdWxzZS1yaW5nIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjMzKTsgfSA4MCUsIDEwMCUgeyBvcGFjaXR5OjA7IH0gfSBAa2V5ZnJhbWVzIHB1bHNlLWRvdCB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKC44KTsgfSA1MCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSguOCk7IH0gfQovKiogL2Nzcy9kaXZfbGF5ZXJzLmNzcyAqKi8KZGl2Lk1haW5Cb3hMYXllcnsgd2lkdGg6bWluKDEwMCUsOTYwcHgpOyBtYXJnaW46MCBhdXRvOyB9IGRpdi5NYWluQm94TGF5ZXIgSDF7IHdpZHRoOjk0MHB4OyB9IGRpdi5NYWluQm94TGF5ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIGgxIHsgd2lkdGg6aW5pdGlhbDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5jcmVkc2lpRGl2IEgxeyB3aWR0aDphdXRvOyB9IC5jcmVkc2lpRGl2eyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuTGVmdEJveExheWVyIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5SaWdodEJveExheWVyIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyIHsgcGFkZGluZzoxMHB4OyBmbG9hdDpsZWZ0OyB3aWR0aDo5NDBweDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyIHsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4OyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIudG9wQm9yZGVyZWR7IGJvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllci5ib3R0b21Cb3JkZXJlZHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZCB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQuZWFzdHsgZmxvYXQ6cmlnaHQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQud2VzdHsgZmxvYXQ6bGVmdDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdleyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW46MCBhdXRvOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UgPiBpbWd7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciNoaXN0b3J5RGl2IGRpdi5Jbm5lckJveExheWVyICNicmVhZGNydW1icyB7IG1hcmdpbjowOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIHsgd2lkdGg6MTIwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciB7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIueHRpbWVGcmFtZSB7IHdpZHRoOjEyMDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgSDF7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIGgxIHsgd2lkdGg6aW5pdGlhbDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2LmNyZWRzaWlEaXYgSDF7IHdpZHRoOmF1dG87IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZSB7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlLlRFQU0geyB3aWR0aDo5NjBweDsgfSB9IGRpdi5NYWluQm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkxlZnRCb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gI3ZkcFByaW50SW1nIHsgZGlzcGxheTpub25lOyB9IEBtZWRpYSBwcmludCB7IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIC5Jbm5lckJveExheWVyLi1wYjMwIHsgZGlzcGxheTpmbGV4ICFpbXBvcnRhbnQ7IGZsZXgtZGlyZWN0aW9uOnJvdyAhaW1wb3J0YW50OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IGdhcDoxNnB4ICFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDsgb3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50OyB9IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC53ZXN0IHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyBvcmRlcjoxICFpbXBvcnRhbnQ7IGZsZXg6MSAxIGF1dG8gIWltcG9ydGFudDsgd2lkdGg6YXV0byAhaW1wb3J0YW50OyBtYXgtd2lkdGg6NjIlICFpbXBvcnRhbnQ7IG1pbi13aWR0aDowICFpbXBvcnRhbnQ7IH0gYm9keSNORVdDQVJERVRBSUxTLmhhcy12ZHAtcHJpbnQtaW1nIGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLmVhc3QsIGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC0xIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyBvcmRlcjoyICFpbXBvcnRhbnQ7IGZsZXg6MCAwIDI3MHB4ICFpbXBvcnRhbnQ7IHdpZHRoOjI3MHB4ICFpbXBvcnRhbnQ7IH0gYm9keSNORVdDQVJERVRBSUxTLmhhcy12ZHAtcHJpbnQtaW1nIGRpdi5NYWluQm94TGF5ZXIsIGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuT3V0ZXJCb3hMYXllciwgYm9keSNORVdDQVJERVRBSUxTLmhhcy12ZHAtcHJpbnQtaW1nIGRpdi5MZWZ0Qm94TGF5ZXIgeyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IH0gYm9keSNORVdDQVJERVRBSUxTLmhhcy12ZHAtcHJpbnQtaW1nIC5TbGlkZXJPdXRlckJveCB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyAjdmRwUHJpbnRJbWcgeyBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6My4yaW4gIWltcG9ydGFudDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyBtYXJnaW46MCAhaW1wb3J0YW50OyBvYmplY3QtZml0OmNvbnRhaW4gIWltcG9ydGFudDsgcGFnZS1icmVhay1pbnNpZGU6YXZvaWQgIWltcG9ydGFudDsgfSB9IEBtZWRpYSBwcmludCB7IGJvZHkuaXNVc2VkVmRwUGFnZS5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIC5Jbm5lckJveExheWVyLi1wYjMwIHsgZGlzcGxheTpmbGV4ICFpbXBvcnRhbnQ7IGZsZXgtZGlyZWN0aW9uOnJvdyAhaW1wb3J0YW50OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IGdhcDoxNnB4ICFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDsgb3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50OyB9IGJvZHkuaXNVc2VkVmRwUGFnZS5oYXMtdmRwLXByaW50LWltZyAjdXNlZFZEUFNsaWRlckNvbnRhaW5lciB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgb3JkZXI6MSAhaW1wb3J0YW50OyBmbGV4OjEgMSBhdXRvICFpbXBvcnRhbnQ7IHdpZHRoOmF1dG8gIWltcG9ydGFudDsgbWF4LXdpZHRoOjYyJSAhaW1wb3J0YW50OyBtaW4td2lkdGg6MCAhaW1wb3J0YW50OyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgfSBib2R5LmlzVXNlZFZkcFBhZ2UuaGFzLXZkcC1wcmludC1pbWcgLnVzZWRWZHBBY3Rpb25zIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyBvcmRlcjoyICFpbXBvcnRhbnQ7IGZsZXg6MCAwIDI3MHB4ICFpbXBvcnRhbnQ7IHdpZHRoOjI3MHB4ICFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50OyB9IGJvZHkuaXNVc2VkVmRwUGFnZS5oYXMtdmRwLXByaW50LWltZyAuU2xpZGVyT3V0ZXJCb3ggeyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSBib2R5LmlzVXNlZFZkcFBhZ2UuaGFzLXZkcC1wcmludC1pbWcgI3ZkcFByaW50SW1nIHsgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBtYXgtaGVpZ2h0OjMuMmluICFpbXBvcnRhbnQ7IHdpZHRoOmF1dG8gIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSB9Ci8qKiAvY3NzL2Rpdl9zcGFucy5jc3MgKiovCi5kaXZTcGFue2Zsb2F0OmxlZnQ7Ym94LXNpemluZzpib3JkZXItYm94fS5kaXZTcGFuLmRpdlNwYW5MZWZ0e2Zsb2F0OmxlZnR9LmRpdlNwYW4uZGl2U3BhblJpZ2h0e2Zsb2F0OnJpZ2h0fS5kaXZTcGFuLmRpdlNwYW4xe3dpZHRoOjguMzMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuMnt3aWR0aDoxNi42NjY2NjY2NjY2NjY2NyV9LmRpdlNwYW4uZGl2U3BhbjN7d2lkdGg6MjUlfS5kaXZTcGFuLmRpdlNwYW40e3dpZHRoOjMzLjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuNXt3aWR0aDo0MS42NjY2NjY2NjY2NjY2NyV9LmRpdlNwYW4uZGl2U3BhbjZ7d2lkdGg6NTAlfS5kaXZTcGFuLmRpdlNwYW43e3dpZHRoOjU4LjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuOHt3aWR0aDo2Ni42NjY2NjY2NjY2NjY2NiV9LmRpdlNwYW4uZGl2U3Bhbjl7d2lkdGg6NzUlfS5kaXZTcGFuLmRpdlNwYW4xMHt3aWR0aDo4My4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjExe3dpZHRoOjkxLjY2NjY2NjY2NjY2NjY2JX0uZGl2U3Bhbi5kaXZTcGFuMTJ7d2lkdGg6MTAwJX0KLyoqIC9jc3MvbWVudWltZy5jc3MgKiovCi5tZW51c3ByaXRle2JhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbWVudWljb25zL21lbnVzcHJpdGVzaGVldC5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtkaXNwbGF5OmlubGluZS10YWJsZTtib3JkZXI6MH0ubWVudXNwcml0ZS1hcnJvd19kb3due3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC01cHh9Lm1lbnVzcHJpdGUtYXJyb3dfdXB7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTQ3cHh9Lm1lbnVzcHJpdGUtY29udGFjdHt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtODlweH0ubWVudXNwcml0ZS1kZW1vY2Fye3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0xMzFweH0ubWVudXNwcml0ZS1maW5hbmNle3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0xNzNweH0ubWVudXNwcml0ZS1ob21le3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0yMTVweH0ubWVudXNwcml0ZS1uZXdjYXJ7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTI1N3B4fS5tZW51c3ByaXRlLW9sZGNhcnt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtMjk5cHh9Lm1lbnVzcHJpdGUtcHJvbW90aW9uc3t3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtMzQxcHh9Lm1lbnVzcHJpdGUtc2VydmljZXt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtMzgzcHh9Ci8qKiAvY3NzL3RvYXN0ci5jc3MgKiovCi50b2FzdC10aXRsZXtmb250LXdlaWdodDpib2xkfS50b2FzdC1tZXNzYWdley1tcy13b3JkLXdyYXA6YnJlYWstd29yZDt3b3JkLXdyYXA6YnJlYWstd29yZH0udG9hc3QtbWVzc2FnZSBhLC50b2FzdC1tZXNzYWdlIGxhYmVse2NvbG9yOiNmZmZ9LnRvYXN0LW1lc3NhZ2UgYTpob3Zlcntjb2xvcjojY2NjO3RleHQtZGVjb3JhdGlvbjpub25lfS50b2FzdC1jbG9zZS1idXR0b257cG9zaXRpb246cmVsYXRpdmU7cmlnaHQ6LTAuM2VtO3RvcDotMC4zZW07ZmxvYXQ6cmlnaHQ7Zm9udC1zaXplOjEuMjVyZW0gO2ZvbnQtd2VpZ2h0OmJvbGQ7Y29sb3I6aW5oZXJpdDstd2Via2l0LXRleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjt0ZXh0LXNoYWRvdzowIDFweCAwICNmZmY7b3BhY2l0eTouODstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKX0udG9hc3QtY2xvc2UtYnV0dG9uOmhvdmVyLC50b2FzdC1jbG9zZS1idXR0b246Zm9jdXN7Y29sb3I6IzAwMDAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtvcGFjaXR5Oi40Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfWJ1dHRvbi50b2FzdC1jbG9zZS1idXR0b257cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LnRvYXN0LXRvcC1jZW50ZXJ7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC1ib3R0b20tY2VudGVye2JvdHRvbTowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtdG9wLWZ1bGwtd2lkdGh7dG9wOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC1ib3R0b20tZnVsbC13aWR0aHtib3R0b206MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LXRvcC1sZWZ0e3RvcDoxMnB4O2xlZnQ6MTJweH0udG9hc3QtdG9wLXJpZ2h0e3RvcDoxMnB4O3JpZ2h0OjEycHh9LnRvYXN0LWJvdHRvbS1yaWdodHtyaWdodDoxMnB4O2JvdHRvbToxMnB4fS50b2FzdC1ib3R0b20tbGVmdHtib3R0b206MTJweDtsZWZ0OjEycHh9I3RvYXN0LWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt6LWluZGV4Ojk5OTk5OTtjb2xvcjojRkZGfSN0b2FzdC1jb250YWluZXIgKnstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9I3RvYXN0LWNvbnRhaW5lcj5kaXZ7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowIDAgNnB4O3BhZGRpbmc6MTVweCAxNXB4IDE1cHggNTBweDt3aWR0aDozMDBweDstbW96LWJvcmRlci1yYWRpdXM6M3B4IDNweCAzcHggM3B4Oy13ZWJraXQtYm9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7Ym9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7YmFja2dyb3VuZC1wb3NpdGlvbjoxNXB4IGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7LW1vei1ib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7Ym94LXNoYWRvdzowIDAgMTJweCAjOTk5O2NvbG9yOmluaGVyaXQ7b3BhY2l0eTouODstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTgwKX0jdG9hc3QtY29udGFpbmVyPjpob3ZlcnstbW96LWJveC1zaGFkb3c6MCAwIDEycHggIzAwMDstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEycHggIzAwMDtib3gtc2hhZG93OjAgMCAxMnB4ICMwMDA7b3BhY2l0eToxOy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT0xMDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7Y3Vyc29yOnBvaW50ZXJ9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3QtaW5mb3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUd3U1VSQlZFaEx0WmE5U2dOQkVNYzlzVXh4UmNvVUtTelNXSWhYcEZNaGhZV0ZoYUJnNHlQWWlXQ1haeEJMRVJzTFJTM0VRa0Vmd0NLZGpXSkF3U0tDZ29LQ2N1ZHY0TzVZTHJ0N0V6Z1hoaVUzLzQrYjJja213VmpKU3BLa1E2d0FpNGd3aFQrejN3UkJjRXoweWpTc2VVVHJjUnlmc0hzWG1EMEFtYkhPQzlJaThWSW1udVhCUGdsSHBRNXd3U1ZNN3NOblRHN1phNEp3RGRDanh5QWlIM255QTJtdGFUSnVmaURaNWRDYXFsSXRJTGgxTkhhdGZONXNrdmp4OVozOG02OUNnenVYbVpnVnJQSUdFNzYzSng5cUtzUm96V1l3NnhPSGRFUitubjJLa08rQmIrVVY1Q0JONldDNlF0QmdiUlZvenJhaEFibW02SHRVc2d0UEMxOXRGZHhYWllCT2ZrYm1GSjFWYUhBMVZBSGpkMHBwNzBvVFp6dlIrRVZyeDJZZ2Zkc3E2ZXU1NUJIWVI4aGxja2krbitrRVJVRkc4QnJBMEJ3amVBdjJNOFdMUUJ0Y3krU0Q2Zk5zbW5CM0FsQkxyZ1R0VlcxYzJRTjRiVldMQVRhSVM2MEoyRHU1eTFUaUpnalNCdkZWWmdUbXdDVStkQVpGb1B4R0VFczhueUhDOUJ3ZTJHdkVKdjJXWFpiMHZqZHlGVDRDeGszZS9rSXFsT0dvVkx3d1BldnBZSFQrMDBUK2hXd1hEZjRBSkFPVXFXY0RoYndBQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3QtZXJyb3J7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFIT1NVUkJWRWhMclphL1NnTkJFTVp6aDBXS0NDbFNDS2FJWU9FRCtBQUtlUVFMRzhIV3p0TENJbUJyWWFkZ0lkWStnSUtOWWtCRlN3dTdDQW9xQ2dra29HQkkvRTI4UGRiTFptZURMZ3paemN4ODMveloyU1NYQzFqOWZyK0kxSHE5M2cyeXhINGl3TTF2a29CV0FkeENtcHpUeGZrTjJSY3laTmFIRklrU28xMCs4a2d4a1hJVVJWNUhHeFRtRnVjNzVCMlJmUWtweEhHOGFBZ2FBRmEwdEFIcVlGZlE3SXdlMnloT0RrOCtKNEM3eUFvUlRXSTN3LzRrbEdSZ1I0bE83UnBuOStndk15V3ArdXhGaDgrSCtBUmxnTjFuSnVKdVFBWXZOa0Vud0dGY2sxOEVyNHEzZWdFYy9vTyttaExkS2dSeWhkTkZpYWNDMHJsT0NiaE5WejRIOUZuQVlnREJ2VTNRSWlvWmxKRkxKdHNvSFlSRGZpWm9VeUl4cUN0UnBWbEFOcTBFVTRkQXBqcnRnZXpQRmFkNVMxOVdnamtjMGhOVm51RjRIalZBNkM3UXJTSWJ5bEIrb1plM2FIZ0JzcWxOcUtZSDQ4alh5SktNdUFiaXlWSjhLemFCM2VSYzBwZzlWd1E0bmlGcnlJNjhxaU9pM0Fiandkc2ZuQXRrMGJDalRMSktyNm1yRDlnOGlxL1MvQjgxaGd1T01sUVRuVnlHNDB3QWNqbm1nc0NORVNEcmptZTd3ZmZ0UDRQN1NQNE4zQ0paZHZ6b055R3EyYy9IV09YSkdzdlZnK1JBL2syTUMvd042STJZQTJQdDhHa0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1zdWNjZXNze2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBRHNTVVJCVkVoTFkyQVlCZlFNZ2YvLy8zUDgrL2V2QUlndkEvRnNJRitCYXZZRERXTUJHcm9hU01NQmlFOFZDN0FaRHJJRmFNRm5paTNBWlRqVWdzVVVXVURBOE9kQUg2aVFiUUVodzRIeUdzUEVjS0JYQklDNEFSaGV4NEc0QnNqbXdlVTFzb0lGYUdnL1d0b0ZaUklaZEV2SU1oeGtDQ2pYSVZzQVRWNmdGR0FDczRSc3cwRUdnSUlIM1FKWUpnSFNBUlFaRHJXQUIramF3emdzK1EyVU80OUQ3am5SU1JHb0VGUklMY2RtRU1XR0kwY20wSkoyUXBZQTFSRHZjbXpKRVdoQUJoRC9wcXJMMFMwQ1d1QUJLZ25Sa2k5bExzZVM3ZzJBbHF3SFdRU0tING9LTHJJTHBSR2hFUUN3MkxpUlVJYTRsd0FBQUFCSlJVNUVya0pnZ2c9PSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lcj4udG9hc3Qtd2FybmluZ3tiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUdZU1VSQlZFaEw1WlN2VHNOUUZNYlhaR0lDTVlHWW1KaEFRSUpBSUNZUVBBQUNpU0RCOEFpSUNRUUpUNENxUUV3Z0p2WUFTQVFDaVppWW1KaEFJQkFUQ0FSSnkrOXJUc2xkZDhzS3UxTTArZExiMDU3djYvbGJxLzJySzBtUy9UUk5qOWNXTkFLUFlJSklJN2dJeENjUTUxY3ZxSUQrR0lFWDhBU0c0QjFiSzVnSVpGZVFmb0pkRVhPZmdYNFFBUWc3a0gyQTY1eVE4N2x5eGIyN3NnZ2tBekF1RmhiYmcxSzJrZ0NrQjFiVnd5SVI5bTJMN1BSUEloRFVJWGdHdHlLdzU3NXl6M2xUTnM2WDRKWG5qVitMS00vbTNNeWRuVGJ0T0tJanR6NlZoQ0JxNHZTbTNuY2RyRDJsazBWZ1VYU1ZLalZESlhKemlqVzFSUWRzVTdGNzdIZTh1Njhrb05aVHo4T3o1eUdhNkozSDNsWjB4WWdYQksyUXltbFdXQStSV25ZaHNrTEJ2MnZtRStoQk1DdGJBN0tYNWRyV3lSVC8ySnNxWjJJdmZCOVk0YldETk1GYkpSRm1DOUU3NFNvUzBDcXVsd2prQzArNWJwY1YxQ1o4Tk1lajRwankwVStkb0RRc0d5bzFoelZKdHRJamhRN0duQnRSRk4xVWFyVWxIOEYzeGljdCtIWTA3ckV6b1VHUGxXY2pSRlJyNC9nQ2haZ2MzWkwyZDhvQUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXIudG9hc3QtdG9wLWNlbnRlcj5kaXYsI3RvYXN0LWNvbnRhaW5lci50b2FzdC1ib3R0b20tY2VudGVyPmRpdnt3aWR0aDozMDBweDttYXJnaW46YXV0b30jdG9hc3QtY29udGFpbmVyLnRvYXN0LXRvcC1mdWxsLXdpZHRoPmRpdiwjdG9hc3QtY29udGFpbmVyLnRvYXN0LWJvdHRvbS1mdWxsLXdpZHRoPmRpdnt3aWR0aDo5NiU7bWFyZ2luOmF1dG99LnRvYXN0e2JhY2tncm91bmQtY29sb3I6IzAzMDMwM30udG9hc3Qtc3VjY2Vzc3tiYWNrZ3JvdW5kLWNvbG9yOiM1MWEzNTF9LnRvYXN0LWVycm9ye2JhY2tncm91bmQtY29sb3I6I2JkMzYyZn0udG9hc3QtaW5mb3tiYWNrZ3JvdW5kLWNvbG9yOiMyZjk2YjR9LnRvYXN0LXdhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZjg5NDA2fS50b2FzdC1wcm9ncmVzc3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7aGVpZ2h0OjRweDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7b3BhY2l0eTouNDstbXMtZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApO2ZpbHRlcjphbHBoYShvcGFjaXR5PTQwKX1AbWVkaWEgYWxsIGFuZCAobWF4LXdpZHRoOjI0MHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjhweCA4cHggOHB4IDUwcHg7d2lkdGg6MTFlbX0jdG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b257cmlnaHQ6LTAuMmVtO3RvcDotMC4yZW19fUBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MjQxcHgpIGFuZCAobWF4LXdpZHRoOjQ4MHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjhweCA4cHggOHB4IDUwcHg7d2lkdGg6MThlbX0jdG9hc3QtY29udGFpbmVyIC50b2FzdC1jbG9zZS1idXR0b257cmlnaHQ6LTAuMmVtO3RvcDotMC4yZW19fUBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6NDgxcHgpIGFuZCAobWF4LXdpZHRoOjc2OHB4KXsjdG9hc3QtY29udGFpbmVyPmRpdntwYWRkaW5nOjE1cHggMTVweCAxNXB4IDUwcHg7d2lkdGg6MjVlbX19Ci8qKiAvY3NzL3ZlaGljbGVGZWF0dXJlU3VtbWFyeS5wcmVsb2FkLmNzcyAqKi8KLnZkcEZlYXR1cmVTdW1tYXJ5eyAtLXN3aXRjaC1icDo1MHJlbTsgYm9yZGVyLWNvbG9yOiNjY2NjY2M7IGNsZWFyOmJvdGg7IH0gLnZzZmlJdGVtU3VtbWFyeSB7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjEuMnJlbTsgfSAudmRwRmVhdHVyZUNvbnN1bXB0aW9ueyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyB9IC52ZHBGZWF0dXJlQ29uc3VtcHRpb24gPiAqeyBmbGV4OjEgMSAzMSU7IG1pbi13aWR0aDo5cmVtOyB9ICN0b3BGZWF0dXJlVGl0bGUgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KLyoqIC9jc3Mva2MuZmFiLmNzcyAqKi8KI2NvbnRhaW5lckZsQiB7IG1hcmdpbjowOyB3aWR0aDo2MHB4OyBoZWlnaHQ6NjBweDsgcG9zaXRpb246Zml4ZWQ7Ym90dG9tOjIwcHg7cmlnaHQ6MTBweDt9ICNjaXJjbGVGbEIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwJTsgcGFkZGluZy1ib3R0b206MTAwJTsgb3ZlcmZsb3c6aGlkZGVuOyB9ICNjaXJjbGVGbEIgdGV4dCB7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NpcmNsZUZsQiBzdmcgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlOyAtbW96LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZTsgLW1zLWFuaW1hdGlvbi1uYW1lOnJvdGF0ZTsgLW8tYW5pbWF0aW9uLW5hbWU6cm90YXRlOyBhbmltYXRpb24tbmFtZTpyb3RhdGU7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjVzOyAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjo1czsgLW1zLWFuaW1hdGlvbi1kdXJhdGlvbjo1czsgLW8tYW5pbWF0aW9uLWR1cmF0aW9uOjVzOyBhbmltYXRpb24tZHVyYXRpb246NXM7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyAtbXMtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLW8tYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgLW1vei1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgLW1zLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyOyAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZSB7IGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTsgfSB9IEAtbW96LWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW1vei10cmFuc2Zvcm06cm90YXRlKDApOyB9IHRvIHsgLW1vei10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7IH0gfSBALW1zLWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpOyB9IH0gQC1vLWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW8tdHJhbnNmb3JtOnJvdGF0ZSgwKTsgfSB0byB7IC1vLXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTsgfSB9IEBrZXlmcmFtZXMgcm90YXRlIHsgZnJvbSB7IHRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyB0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7IH0gfSAjc2lnbkZsQnsgY29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTQ3cHg7bGVmdDoxOXB4O2ZvbnQtc2l6ZToyLjE4OHJlbSA7IHotaW5kZXg6OTk5OTk5OyB9Ci8qKiAvY3NzL211bHRpRm9ybVBvcHVwLmNzcyAqKi8KLm11bHRpZm9ybV9mb3JtIGxhYmVseyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luLWJvdHRvbTouNXJlbTsgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LXdlaWdodDo0MDA7IGxpbmUtaGVpZ2h0OjEuNTsgY29sb3I6IzIxMjUyOTsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXdlaWdodDpib2xkOyB9IC5tdWx0aWZvcm1fZm9ybXsgbWFyZ2luLWxlZnQ6NDBweDsgfSAubXVsdGlmb3JtX2NpcmNsZS1saW5leyBoZWlnaHQ6MXB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjOyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjEzcHg7IGZsb2F0OmxlZnQ7IH0gLm11bHRpZm9ybV90ZXh0eyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyBwYWRkaW5nLXRvcDoyMHB4OyBmb250LXdlaWdodDo2MDA7IHBhZGRpbmctYm90dG9tOjIwcHg7IH0gLm11bHRpZm9ybV9jaXJjbGV7IGJhY2tncm91bmQ6I2ZmZmZmZjsgd2lkdGg6MzBweDsgaGVpZ2h0OjMwcHg7IGJvcmRlci1yYWRpdXM6MzBweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBwYWRkaW5nOjVweCAwcHggMHB4IDBweDsgYm94LXNpemluZzpib3JkZXItYm94OyBjb2xvcjojY2NjOyBmb250LXNpemU6MC44MTNyZW0gOyBtYXJnaW46MCBhdXRvOyB9IC5tdWx0aWZvcm1fY2lyY2xlMXsgYmFja2dyb3VuZDojMzMzMzMzOyBjb2xvcjojZmZmZmZmOyB9IC5tdWx0aWZvcm1fYm9keXsgcGFkZGluZzozMHB4OyB9IC5tdWx0aWZvcm1fZm9vdGVyeyBib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjOyBwYWRkaW5nOjI1cHg7IHRleHQtYWxpZ246cmlnaHQ7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNtb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lciAubXVsdGlmb3JtX2Zvb3RlcnsgcG9zaXRpb246c3RhdGljOyB9IC5tdWx0aWZvcm1fbGluZV93cmFwcGVyeyBtYXJnaW46MCBhdXRvOyB3aWR0aDozMDBweDsgaGVpZ2h0OjMwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB9IC5tdWx0aWZvcm1fY2lyY2xlX3dyYXBwZXIyIHsgd2lkdGg6MTE3cHg7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOi0zMHB4OyB9IC5tdWx0aWZvcm1fY2lyY2xlX3dyYXBwZXJ7IHdpZHRoOjIzNXB4OyBtYXJnaW46MCBhdXRvOyB9ICNtdWx0aWZvcm1fZm9ybVcgeyBiYWNrZ3JvdW5kOndoaXRlOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6IzQxNDE0MTsgfSAubXVsdGlmb3JtX2NpcmNsZVRleHRfd3JhcHBlcnsgd2lkdGg6MjAwcHg7IG1hcmdpbjowIGF1dG87IH0gLm11bHRpZm9ybV9zdGVwMnsgZGlzcGxheTpub25lOyB9IC5tdWx0aWZvcm1JbWFnZTF7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5tdWx0aWZvcm1JbWFnZVRleHQxeyBwb3NpdGlvbjphYnNvbHV0ZTsgY29sb3I6I2ZmZmZmZjsgdG9wOjEwNXB4OyBsZWZ0OjA7IHJpZ2h0OjA7IG1hcmdpbjphdXRvOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMzc1cmVtIDsgd2lkdGg6MjcwcHg7IH0gLnJldmVhbC1tb2RhbCAubXVsdGlmb3JtSW1hZ2VUZXh0MSBzcGFueyBtYXJnaW46MDsgcGFkZGluZzowOyBjb2xvcjojZmZmZmZmOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6Mi4wNjNyZW0gOyBmb250LXdlaWdodDo3MDA7IH0gLm11bHRpZm9ybUltYWdlMnsgcG9zaXRpb246cmVsYXRpdmU7IH0gLm11bHRpZm9ybUltYWdlVGV4dDJ7IHBvc2l0aW9uOmFic29sdXRlOyBjb2xvcjojZmZmZmZmOyB0b3A6MTE1cHg7IGxlZnQ6MDsgcmlnaHQ6MDsgbWFyZ2luOmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4zNzVyZW0gOyB3aWR0aDoyNzBweDsgfSAucmV2ZWFsLW1vZGFsIC5tdWx0aWZvcm1JbWFnZVRleHQyIHNwYW57IG1hcmdpbjowOyBwYWRkaW5nOjA7IGNvbG9yOiNmZmZmZmY7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZToyLjA2M3JlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubXVsdGlmb3JtSW1hZ2VUZXh0MV9teyBwb3NpdGlvbjphYnNvbHV0ZTsgY29sb3I6I2ZmZmZmZjsgdG9wOjcwcHg7IGxlZnQ6MjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHdpZHRoOjE4NHB4OyB9IC5tdWx0aWZvcm1JbWFnZVRleHQxX20gc3BhbnsgbWFyZ2luOjAhaW1wb3J0YW50OyBwYWRkaW5nOjAhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAhaW1wb3J0YW50OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo0ODBweCksIG9ubHkgc2NyZWVuIGFuZCAobWF4LWRldmljZS13aWR0aDo0ODBweCl7IC5tdWx0aWZvcm1fZm9ybSB7IG1hcmdpbi1sZWZ0OjE1cHg7IH0gLm11bHRpZm9ybV9jaXJjbGUtbGluZXsgd2lkdGg6MTAwJTsgfSAubXVsdGlmb3JtX2xpbmVfd3JhcHBlciB7IHdpZHRoOjI0NXB4OyB9IH0KLyoqIC9jc3MvY3JlZGl0U2NvcmVQb3B1cC5jc3MgKiovCiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyeyBiYWNrZ3JvdW5kOndoaXRlOyBwYWRkaW5nOjMwcHggMjBweCAzNHB4OyBtYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDQwcHgpOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW57IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUdyZWVuQ29sb3J7IGNvbG9yOiM0ZDhmMTQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUJvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNyZWRpdFNjb3JlX2J0bnsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDojNGQ4ZjE0OyB9IC5jcmVkaXRTY29yZUltYWdleyB3aWR0aDoxMDAlOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZVRpdGxlQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVUaXRsZXsgZm9udC1zaXplOjEuMjVyZW0gOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZUltYWdlQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVGcmVleyBmb250LXNpemU6Mi44MTNyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZXsgZm9udC1zaXplOjEuODEzcmVtIDsgdGV4dC1zaGFkb3c6MS40cHggMDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBpbnB1dHsgaGVpZ2h0OjMycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHdpZHRoOjEzNXB4OyBwYWRkaW5nOjAgMTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNlZWVlZWU7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgI2NyZWRpdFNjb3JlRW1haWx7IHdpZHRoOjI5NnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyICNjcmVkaXRTY29yZUFkZHJlc3N7IHdpZHRoOjI5NnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZV9idG57IHdpZHRoOjMyMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgaGVpZ2h0OjQwcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlRXh0cmFUZXh0eyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVDb25zZW50TWVzc2FnZXsgY29sb3I6I2IzYjNiMzsgZm9udC1zaXplOjAuNjg4cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUltYWdleyBiYWNrZ3JvdW5kLWNvbG9yOiM0ZDhmMTQ7IH0gLnBhYy1jb250YWluZXIgeyB6LWluZGV4OjEwMDAwMjE7IH0KLyoqIC9jc3MvbmViQ2FsL25lYkNhbC5jc3MgKiovCi5uZWJDYWwgKiB7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowOyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvciA6d2hpdGU7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWFycm93LWxlZnQsIC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IGN1cnNvcjpwb2ludGVyO30gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWFycm93LWxlZnQgeyBmbG9hdDpsZWZ0OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6JzwnOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojNTIzYTI5OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IGZsb2F0OnJpZ2h0OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50Oic+JzsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzUyM2EyOTsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtbGFiZWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6dmlzaWJsZTsgd2lkdGg6MTQ2cHg7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGUgeyBjdXJzb3I6cG9pbnRlcjsgfSAubmViQ2FsIC5jYWwtYm9keSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5uZWJDYWwgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB9IC5uZWJDYWwgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2IHsgZmxvYXQ6bGVmdDsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aC5jYWwtcGlja2FibGUgLmNhbC1yb3cgZGl2LCAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYgeyBjdXJzb3I6cG9pbnRlcjt9IC5uZWJDYWwgeyBjdXJzb3I6ZGVmYXVsdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwMDAyMDsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjI5MHB4OyBoZWlnaHQ6MjE1cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM1MjNhMjk7IH0gLm5lYkNhbC5pbmxpbmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC13cmFwcGVyIHsgcGFkZGluZzowIDRweDsgYm9yZGVyOnNvbGlkIDFweCAjZGRkZWQ5OyAtbW96LWJveC1zaGFkb3c6MHB4IDBweCA0cHggMnB4ICNkOGQ4ZDg7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4O2JveC1zaGFkb3c6MHB4IDBweCA0cHggMnB4ICNkOGQ4ZDg7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgeyBoZWlnaHQ6MjVweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0LCAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IHdpZHRoOjEycHg7IGhlaWdodDoxM3B4OyBtYXJnaW46NnB4IDdweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0IHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0OmhvdmVyIHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQ6aG92ZXIgeyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsIHsgbGluZS1oZWlnaHQ6MjVweDsgY29sb3I6IzUyM2EyOTsgdGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGUgeyBjb2xvcjojMDhhNTNjOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGU6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgeyBoZWlnaHQ6MTgwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIHsgd2lkdGg6MjkwcHg7IGhlaWdodDoxODBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgeyB3aWR0aDoyOTBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93LmNhbC1vZGQgZGl2IHsgbWFyZ2luOjVweDsgYmFja2dyb3VuZC1jb2xvcjojZGVkZWRlO2JvcmRlcjoxcHggc29saWQgI2Q5ZDlkOTt9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cuY2FsLWV2ZW4gZGl2IHsgbWFyZ2luOjVweDsgYmFja2dyb3VuZC1jb2xvcjojZjBmMGYwO2JvcmRlcjoxcHggc29saWQgI2VjZWNlYzt9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLXRvZGF5IHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC1zZWxlY3RlZCB7IG1hcmdpbi1sZWZ0OjVweDsgbWFyZ2luLXJpZ2h0OjVweDsgaGVpZ2h0OjIwcHg7Zm9udC1zaXplOjFyZW0gO2ZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6I2ZmZiAhaW1wb3J0YW50O3RleHQtc2hhZG93OjFweCAxcHggMHB4ICMzOWE2NjM7IGJhY2tncm91bmQtY29sb3I6IzU0YmIwMDstd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4Oy1tb3otYm9yZGVyLXJhZGl1czo1cHg7Ym9yZGVyLXJhZGl1czo1cHg7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC1ub24tc2VsZWN0YWJsZSwgLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtbm9uLXNlbGVjdGFibGU6aG92ZXIgeyBjb2xvcjojYmRiZGJkICFpbXBvcnRhbnQ7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdy5hIGRpdiB7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IGNvbG9yOiMzNzliNTcgIWltcG9ydGFudDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyB7IGhlaWdodDoyNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cgZGl2IHsgbWFyZ2luLXRvcDozcHg7IHdpZHRoOjQwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLXNlbGVjdGVkIHsgbWFyZ2luLXRvcDozcHg7IHdpZHRoOjMwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLWZpcnN0IHsgcGFkZGluZy1sZWZ0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLWxhc3QgeyBwYWRkaW5nLXJpZ2h0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYuY2FsLW91dHNpZGUgeyBjb2xvcjojZGVkZWRlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuY2FsLWV2ZW4gZGl2LmNhbC1vdXRzaWRlIHsgY29sb3I6I2NlY2VjZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93LmEgZGl2IHsgY29sb3I6IzljOWM5YzsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IHsgaGVpZ2h0OjQycHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYgeyB3aWR0aDo4MHB4O2xpbmUtaGVpZ2h0OjI3cHg7IGhlaWdodDoyN3B4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2LmNhbC1maXJzdCB7IG1hcmdpbi1sZWZ0OjE2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYuY2FsLWxhc3QgeyBtYXJnaW4tcmlnaHQ6MTZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOiM1NGJiMDA7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoLmNhbC1waWNrYWJsZSAuY2FsLXJvdyBkaXY6aG92ZXIsIC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2OmhvdmVyIHsgY29sb3I6I2IyY2ZlMTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1mb290ZXIgeyBoZWlnaHQ6NHB4OyB9Ci8qKiAvY3NzL2ZpbmFuY2VfbXVsdGlzdGVwLmNzcyAqKi8KI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm17IHRleHQtYWxpZ246Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvcnsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGgyeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoxMHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaDN7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOjEuMjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToxNXB4OyB3aWR0aDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyBib3R0b206MDsgcGFkZGluZy1ib3R0b206ZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9ueyBwYWRkaW5nOjE3cHggNjVweCAxNXB4IDY1cHg7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZm9udC13ZWlnaHQ6NDAwOyB3aWR0aDoyODBweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgY29sb3I6I0MwQzBDMDsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBib3JkZXI6MXB4IHNvbGlkICNDMEMwQzA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uLmlzVmFsaWR7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgY29sb3I6IzEwMmI0ZTsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9InJhZGlvIl17IG9wYWNpdHk6MDsgd2lkdGg6MDsgaGVpZ2h0OjA7IHBvc2l0aW9uOmFic29sdXRlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGxhYmVsLnJhZGlvX2xhYmVsIHsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjE1cHggMTBweDsgY3Vyc29yOnBvaW50ZXI7IG9wYWNpdHk6MTsgdHJhbnNpdGlvbjphbGwgMXMgZWFzZS1pbi1vdXQ7IG1hcmdpbi1ib3R0b206NXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4xMjVyZW0gOyBtaW4taGVpZ2h0OjEwMnB4OyBiYWNrZ3JvdW5kOiNmZmZmZmY7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkIH4gbGFiZWwucmFkaW9fbGFiZWwgeyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGxhYmVsLnJhZGlvX2xhYmVsMiB7IGJvcmRlcjoxcHggc29saWQgcmdiYSgyNTAsIDI1MCwgMjUwLCAwLjE1KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjEwcHggNXB4IDVweCA1cHg7IGN1cnNvcjpwb2ludGVyOyBvcGFjaXR5OjE7IHRyYW5zaXRpb246YWxsIDFzIGVhc2UtaW4tb3V0OyBtYXJnaW4tYm90dG9tOjVweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOyBib3JkZXItYm90dG9tLXdpZHRoOjVweDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuMTI1cmVtIDsgbWluLWhlaWdodDo0NXB4OyBiYWNrZ3JvdW5kOiNmZmZmZmY7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXTpjaGVja2VkIH4gbGFiZWwucmFkaW9fbGFiZWwyIHsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBib3JkZXItYm90dG9tLXdpZHRoOjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2eyB3aWR0aDo0NSU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2Rpdi5yZF93aWRleyB3aWR0aDo0NiU7IG1pbi1oZWlnaHQ6ODhweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2Om50aC1vZi10eXBlKG9kZCl7IGZsb2F0OmxlZnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJhZGlvX2RpdjpudGgtb2YtdHlwZShldmVuKXsgZmxvYXQ6cmlnaHQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0idGV4dCJdeyB3aWR0aDoyOTBweDsgaGVpZ2h0OjQwcHg7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS4yNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl06bm90KC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50KXsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkOyB3aWR0aDoxMjBweDsgYm9yZGVyLXJpZ2h0Om5vbmU7IG1hcmdpbjowIDAgMTBweDsgbGluZS1oZWlnaHQ6MzBweDsgaGVpZ2h0Ojc1cHg7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5udW1iZXItdHlwZS1sYWJlbHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjZGRkZGRkOyB3aWR0aDoxMjBweDsgY29sb3I6IzI1MjUyNTsgaGVpZ2h0Ojc1cHg7IGxpbmUtaGVpZ2h0OjM1cHg7IGZvbnQtc2l6ZToxLjVyZW0gOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5udW1iZXItdHlwZS1kaXZ7IGZsb2F0OmxlZnQ7IGxlZnQ6MTAlOyBtYXJnaW4tdG9wOjIwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyeyBtYXJnaW4tdG9wOjEwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfZGl2eyB3aWR0aDoxMDAlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyIHNlbGVjdHsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjMDAwMDAwOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDo5MHB4OyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcl9zZWxlY3R7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDo0MCU7IG1hcmdpbjphdXRvOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyX3NlbGVjdDphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIC4zcyBsaW5lYXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnN0ZXAyNHNlbGVjdHsgbWFyZ2luLXRvcDoxMHB4OyBwYWRkaW5nOjAuNXJlbTsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czowLjVyZW07IGJvcmRlcjoxcHggc29saWQgI2RkZDsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBmb250LXdlaWdodDo0MDA7IHdpZHRoOjEwMCU7IH0gLnBhYy1jb250YWluZXIgeyB6LWluZGV4OjEwMDAwMjE7IH0gaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uIHsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjowOyB9ICNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXJ7IG1heC13aWR0aDpjYWxjKDEwMHZ3IC0gMjBweCk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3Mgc2VsZWN0IHsgbWF4LXdpZHRoOjI4MHB4OyBtYXJnaW46MCBhdXRvOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIGxhYmVsIHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgbWFyZ2luLWJvdHRvbToyNXB4OyBmb250LXNpemU6MS41cmVtIDsgZGlzcGxheTpibG9jazsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyAjbXV0bGlBZGRyZXNzU3VibWl0IHsgZGlzcGxheTpub25lOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRzeyBkaXNwbGF5OmlubGluZS1mbGV4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2eyBtYXJnaW46MjBweCA1cHggMjBweCA1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgbGFiZWx7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgaW5wdXRbdHlwZT0ibnVtYmVyIl17IHdpZHRoOjgwcHg7IGhlaWdodDo1MHB4OyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9iaXJ0aGRhdGVfaW5wdXRfZGl2IGlucHV0W3R5cGU9Im51bWJlciJdLmJpcnRoeWVhcnsgd2lkdGg6MTAwcHg7IH0gLnJldmVhbC1tb2RhbC5maW5hbmNlX2JhY2tncm91bmRfaW1hZ2V7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3BvcHVwcy9maW5hbmNlcG9wdXAtYmctbW9iaWxlLndlYnAnKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXZ7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MTM1cHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXYgLmZpbmFuY2VDYWxjeyBjb2xvcjojNGViYTU5OyBmb250LXNpemU6MTAwcHg7IGxlZnQ6MzUlOyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZUljb25EaXYgLmZpbmFuY2VDYXJ7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxMDBweDsgbGVmdDozMyU7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6NTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHRMYWJlbHsgd2lkdGg6NDUlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50VGV4dExhYmVsMnsgbWFyZ2luLXJpZ2h0OjI1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRUZXh0eyB3aWR0aDo2MCUhaW1wb3J0YW50OyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjY2NjOyBoZWlnaHQ6MjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0ibnVtYmVyIl0uZW1wbG95bWVudFN0YXR1c1RpbWV7IHdpZHRoOjUwcHg7IGhlaWdodDo1MHB4OyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBhbGlnbi1zZWxmOmNlbnRlcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudEFkZGVkSW5mb3sgd2lkdGg6OTUlOyBoZWlnaHQ6NTBweDsgcmVzaXplOm5vbmU7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC5mYWRlLWVudGVyLCAuZmFkZS1sZWF2ZSB7IG9wYWNpdHk6MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm17IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBsYWJlbHsgbWFyZ2luLWJvdHRvbToxNXB4OyBwYWRkaW5nOjA7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgcG9zaXRpb246cmVsYXRpdmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGxhYmVsLnBheW1lbnRWYWx1ZUxhYmVseyBqdXN0aWZ5LWNvbnRlbnQ6dW5zZXQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciBzcGFueyBmb250LXNpemU6MWVtOyB3aWR0aDo1MCU7IHRleHQtYWxpZ246bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIGlucHV0eyB0ZXh0LWFsaWduOmxlZnQ7IGhlaWdodDoyNXB4OyBmb250LXNpemU6MWVtOyBjb2xvcjpibGFjazsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIHNlbGVjdHsgaGVpZ2h0OjI4cHg7IGNvbG9yOmJsYWNrOyBmb250LXNpemU6MWVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmVzdGltYXRlZFRleHR7IGZvbnQtd2VpZ2h0OjcwMDsgd2lkdGg6NzAlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm91dHB1dHByaWNlLXR4dHsgd2lkdGg6MzUlOyBtYXJnaW4tbGVmdDozMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnRheGVUZXh0eyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyBib3R0b206LTEwcHg7IHdpZHRoOmZpdC1jb250ZW50OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmlucHV0IHsgYm9yZGVyOjFweCBzb2xpZCAjOTk5OyBiYWNrZ3JvdW5kOiNlZWU7IHBhZGRpbmc6MC4yNXJlbTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB3aWR0aDptaW4oNTAlLDZyZW0pOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBkaXYuZG9sbGFyU3BhbnsgZGlzcGxheTpjb250ZW50czsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIGRpdi5kb2xsYXJTcGFuIC5pbnB1dHsgcGFkZGluZy1sZWZ0OjEycHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGRpdi5kb2xsYXJTcGFuOjpiZWZvcmV7IGNvbnRlbnQ6IiQiOyBmb250LXNpemU6MWVtOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6ODVweDsgdG9wOjQ5JTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTQzJSk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2NvbnNlbnRfdGV4dF9kaXZ7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6NDQwcHg7IHdpZHRoOjEwMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcFBheW1lbnRWZWhpY2xleyBmb250LXNpemU6aW5oZXJpdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWF4LWhlaWdodDoxNzVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyeyBoZWlnaHQ6Mjc1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIC5sb2FuYW1vdW50LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gLmludGVyZXN0cmF0ZXsgYm9yZGVyOjA7IGJhY2tncm91bmQtY29sb3I6dW5zZXQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGlucHV0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0eyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5tdWx0aXN0ZXBJbml0aWFsVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbi10b3A6MDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBzcGFuLmgyLWFsdHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOmluaGVyaXQ7IGRpc3BsYXk6YmxvY2s7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBtYXJnaW4tbGVmdDowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNwYW4uaDMtYWx0eyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoxMHB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZGlzcGxheTpibG9jazsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC1oMi1tb2IpOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5oaWRkZW5JbnB1dHsgZGlzcGxheTpub25lOyB9IC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JJbmNsdWRlVGF4Q2hlY2tEaXZ7IHBvc2l0aW9uOmFic29sdXRlOyBtYXJnaW4tdG9wOjEwcHg7IHJpZ2h0OjBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkluaXRpYWx7IGZvbnQtc2l6ZTowLjYyNXJlbSA7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDoxMDVweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6NHB4IDJweCA1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjEwNXB4IWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4IDJweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbHsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjk2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjVweCAycHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWx7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgaGVpZ2h0OjM1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyB3aWR0aDo5NnB4IWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6NXB4IDJweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZvcm1hdC1wcmljZXsgbWFyZ2luLWJvdHRvbTp1bnNldDsgbWFyZ2luLWxlZnQ6MC43cmVtOyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSBsYWJlbCAuZm9ybWF0LXByaWNleyBtYXJnaW4tcmlnaHQ6MC4zcmVtOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC52d0NvbnNlbnRUZXh0eyBoZWlnaHQ6MTIwcHg7IG92ZXJmbG93LXk6c2Nyb2xsOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBhZGRpbmc6MTBweCAxMHB4OyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBoMXsgZm9udC1zaXplOjEuMjVyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTZweCAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgaDJ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OyBtYXJnaW46MjRweCAwIDEwcHggMCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHB7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTJweCAwICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHVseyBtYXJnaW46OHB4IDAgMTZweCAyNHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGxpeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NDAwICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyBtYXJnaW46MCAwIDEycHggMCAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmp1c3RpZnkgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBzdHJvbmd7IGZvbnQtd2VpZ2h0OjcwMCAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGF7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgIWltcG9ydGFudDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAudndDb25zZW50RGl2c3sgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmVudE9yT3duUXVlc3Rpb257IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjIwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnJlbnRPck93blF1ZXN0aW9uLnZ3UmVudE9yT3dueyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDo1cHg7IH0gLmRyVmlld0Rpc2NsYWltZXJMaW5rIHsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC43NXJlbSA7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmRyRGlzY2xhaW1lckRyYXdlciB7IHBvc2l0aW9uOmZpeGVkOyBsZWZ0OjA7IGJvdHRvbTotMzAwcHg7IHdpZHRoOjEwMCU7IGhlaWdodDoyMDBweDsgYmFja2dyb3VuZDojZmZmOyBib3gtc2hhZG93OjAgLTJweCAxMHB4IHJnYmEoMCwwLDAsMC4zKTsgdHJhbnNpdGlvbjpib3R0b20gMC4zcyBlYXNlOyBkaXNwbGF5Om5vbmU7IG92ZXJmbG93OmF1dG87IHotaW5kZXg6MTAwMDAwMDAwMDsgfSAuZHJEaXNjbGFpbWVyRHJhd2VyLm9wZW4geyBib3R0b206MDsgfSAuZHJEaXNjbGFpbWVyRHJhd2VyLm9wZW4gLmRyRGlzY2xhaW1lckNvbnRlbnQgeyBwYWRkaW5nOjIwcHg7IHBhZGRpbmctYm90dG9tOmNhbGMoMjBweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTsgb3ZlcmZsb3cteTphdXRvOyB9IC5kckRpc2NsYWltZXJEcmF3ZXIub3BlbiAuY2xvc2VEUkRpc2NsYWltZXJEcmF3ZXIsIC5kckRpc2NsYWltZXJEcmF3ZXIub3BlbiAuY2xvc2VEUkNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIHsgcGFkZGluZzoxMHB4OyBjdXJzb3I6cG9pbnRlcjsgfSAuc3VwZXJTY3JpcHRTcGFuIHsgZGlzcGxheTppbmxpbmUtZmxleDsgfQovKiogL2Nzcy9jb250YWN0UG9wdXAuY3NzICoqLwojY29udGFjdHBvcHVwIHsgd2lkdGg6NTk4cHg7IG1pbi13aWR0aDoyMzBweDsgfSAjY29udGFjdHBvcHVwLm1vYmlsZSB7IHdpZHRoOjEwMCU7IH0gLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSwgLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZXh0YXJlYS5qcXRyYW5zZm9ybWRvbmUgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGQuanFUcmFuc2Zvcm1UZXh0YXJlYS1tbCwgLmNvbnRhY3Rwb3B1cC5tb2JpbGUgdGFibGUuanFUcmFuc2Zvcm1UZXh0YXJlYSB0ZC5qcVRyYW5zZm9ybVRleHRhcmVhLW1yIHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0cG9wdXAgKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAjY29udGFjdHBvcHVwLnJldmVhbC1tb2RhbCB7IHBhZGRpbmc6MDsgfSAjY29udGFjdHBvcHVwLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZGlzcGxheTpub25lOyB9ICNjb250YWN0cG9wdXAgLmNvbnRhY3Rwb3B1cC1ib2R5IHsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgcGFkZGluZzozMHB4IDEwcHggMTBweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgaW5wdXQgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3c6bm90KDpsYXN0LWNoaWxkKSAuZGl2U3BhbiB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNjpmaXJzdC1jaGlsZCB7IHBhZGRpbmctcmlnaHQ6MTVweDsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93IC5kaXZTcGFuNjpsYXN0LWNoaWxkIHsgcGFkZGluZy1sZWZ0OjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjYgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIHsgbWF4LXdpZHRoOjI3NHB4ICFpbXBvcnRhbnQ7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgeyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBwYWRkaW5nOjE1cHggMTVweCAzMHB4IDE1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IC1tb3otYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCByZ2JhKDAsMCwwLDAuMyk7IGZvbnQtc2l6ZToxLjYyNXJlbSA7IGNvbG9yOiMxMDJiNGU7IGJhY2tncm91bmQtY29sb3I6I2Y3ZjdmNzsgfSAuY29udGFjdHBvcHVwLWhlYWRlcjo6YWZ0ZXIgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOi0xNXB4OyBsZWZ0OjUwJTsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7IC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyBib3JkZXItbGVmdDozMHB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6MzBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDoxNXB4IHNvbGlkICNmN2Y3Zjc7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmZhLXRpbWVzIHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjAuNXJlbTsgdG9wOjAuNXJlbTsgZm9udC1zaXplOmluaXRpYWw7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmZhLXRpbWVzOmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXIgLmhlYWRlci1yZXBsYWNlIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gYnV0dG9uLmNvbnRhY3Qtc3VibWl0IHsgcGFkZGluZzoxMHB4IDE1cHg7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJvcmRlci1jb2xvcjojMTAyYjRlOyBiYWNrZ3JvdW5kOiNmN2Y3Zjc7IHRyYW5zaXRpb246YWxsIDAuMjVzOyBjb2xvcjojMTAyYjRlOyBmb250LXdlaWdodDo2MDA7IG1hcmdpbjowOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS41NjNyZW0gOyB9IC5jb250YWN0LXN1Ym1pdDpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItY29sb3I6I2Y3ZjdmNzsgYmFja2dyb3VuZC1jb2xvcjojMTAyYjRlOyBjb2xvcjojZjdmN2Y3OyB9IC5jb250YWN0cG9wdXAtZm9vdGVyIHsgfSAuY29udGFjdHBvcHVwLWZvb3RlciAuYnRuLXdyYXBwZXIgeyBwYWRkaW5nOjEwcHg7IH0gI2NvbnRhY3Rwb3B1cCAuanFUcmFuc2Zvcm1JbnB1dElubmVyIGRpdiB7IGhlaWdodDozMHB4OyB9ICNjb250YWN0cG9wdXAgLmpxVHJhbnNmb3JtSW5wdXRJbm5lciBkaXYudmFsaWRpdHktZXJyb25lb3VzIHsgd2lkdGg6aW5oZXJpdDsgfQovKiogL2Nzcy9kaXZfdGFibGVzLmNzcyAqKi8KZGl2LmRpdlRhYmxlVmlld3sgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUYWJsZVdyYXBlcnsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZUaXRsZXsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC45MzhyZW0gOyBwYWRkaW5nOjMwcHggMHB4IDEwcHggMTBweDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGhlaWdodDphdXRvOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxlT3V0ZXJ7IGJvcmRlcjoxcHggc29saWQgI2RkZDsgcGFkZGluZzowOyBib3JkZXItcmFkaXVzOjhweDsgbWFyZ2luOjA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KTsgb3ZlcmZsb3c6aGlkZGVuOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxleyBkaXNwbGF5OnRhYmxlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmd7IGRpc3BsYXk6dGFibGUtcm93OyBmb250LXdlaWdodDppbml0aWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ1cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93eyBkaXNwbGF5OnRhYmxlLXJvdzsgd2lkdGg6MTAwJTsgaGVpZ2h0OjY1cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Q2VsbHsgZGlzcGxheTp0YWJsZS1jZWxsOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxNXB4IDE1cHggMjVweCAxNXB4OyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Q2VsbDpsYXN0LWNoaWxkeyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHRyYW5zcGFyZW50OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGx7IHBhZGRpbmc6MTBweCAxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZIZWFkaW5nIGRpdi5kaXZDZWxsOm50aC1jaGlsZChldmVuKXsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6bGFzdC1jaGlsZHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6Zmlyc3QtY2hpbGR7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6OHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdzpsYXN0LWNoaWxkIGRpdi5kaXZDZWxseyBib3JkZXItYm90dG9tOjBweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3cgZGl2LmRpdkNlbGx7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdyBkaXYuZGl2Q2VsbDpudGgtY2hpbGQoZXZlbil7IGJhY2tncm91bmQtY29sb3I6I2Y2ZjdmODsgfQovKiogL2Nzcy9kaXZfYmxvY2tzLmNzcyAqKi8KZGl2LmRpdkJsb2NrVmlld3sgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RpdGxlLCBkaXYuZGl2QmxvY2tWaWV3IGxhYmVsLmRpdkJsb2NrVGl0bGV7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgcGFkZGluZzozMHB4IDEwcHggMTBweCAxMHB4OyBjb2xvcjojMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUaXRsZS5ibG9ja1RpdGxlU3R5bGUyLCBkaXYuZGl2QmxvY2tWaWV3IGxhYmVsLmRpdkJsb2NrVGl0bGUuYmxvY2tUaXRsZVN0eWxlMnsgcGFkZGluZzowIDQwcHggMTBweDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnR7IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzoxNXB4IDBweDsgbWFyZ2luOjA7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50IGRpdi5kaXZCbG9ja0NvbHVtbnsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjAgNDBweDsgbWFyZ2luOjA7IHdpZHRoOjg2MHB4ICFpbXBvcnRhbnQ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0eyBiYWNrZ3JvdW5kOmluaXRpYWw7IHBhZGRpbmc6MDsgbWFyZ2luOjAgMCAyMHB4IDA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgeyBwYWRkaW5nOjEwcHggMCAwIDA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Quc2l6ZUZvcjRDb2x1bW5zTGlzdHsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdDpub3QoLnNpemVGb3I0Q29sdW1uc0xpc3QpOm50aC1jaGlsZCgzbisxKSwgZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3Quc2l6ZUZvcjRDb2x1bW5zTGlzdDpudGgtY2hpbGQoNG4rMSl7IGNsZWFyOmxlZnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgZGl2LmRpdkJsb2NrTGlzdFRpdGxleyBiYWNrZ3JvdW5kOmluaXRpYWw7IHBhZGRpbmc6MCAwIDEwcHggMDsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGZvbnQtd2VpZ2h0OmJvbGQgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbXsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyBtYXJnaW46MDsgdGV4dC1pbmRlbnQ6MDsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYXJyb3dfcmVkLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgMCA1cHggdHJhbnNwYXJlbnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0gPiBBeyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOm5vbmU7IGZvbnQtc2l6ZTppbml0aWFsOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RUaXRsZTJ7IGZvbnQtc2l6ZToxLjFlbTsgYm9yZGVyOjA7IG1hcmdpbjowOyBwYWRkaW5nOjAgMCAxMHB4IDA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGxpc3Qtc3R5bGU6bm9uZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTJ7IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgdGV4dC1pbmRlbnQ6MDsgbGlzdC1zdHlsZTpub25lIG91dHNpZGUgbm9uZTsgZGlzcGxheTpibG9jazsgbWFyZ2luOjAgMCAwIDEycHg7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yIC5vdGhlck9wdGlvbkxhYmVseyBmb250LXdlaWdodDpib2xkICFpbXBvcnRhbnQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yOmJlZm9yZXsgY29udGVudDoiXGYxMzgiOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyBtYXJnaW4tcmlnaHQ6MDsgbWFyZ2luLWxlZnQ6LTIxcHg7IHBhZGRpbmctcmlnaHQ6NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMjpiZWZvcmV7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCBMSSB7IHBhZGRpbmc6MCAzMHB4IDEwcHggMTBweDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5ub1N0eWxlSXRlbXsgcGFkZGluZzowIDAgNXB4IDA7IG1hcmdpbjowOyB0ZXh0LWluZGVudDowOyBiYWNrZ3JvdW5kOm5vbmU7IGxpc3Qtc3R5bGU6bm9uZTsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbS5vblNhbWVMaW5leyBwYWRkaW5nLXJpZ2h0OjE1cHg7IGRpc3BsYXk6aW5saW5lLXRhYmxlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm9uU2FtZUxpbmU6bGFzdC1jaGlsZHsgcGFkZGluZy1yaWdodDowOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGFibGVPdXRlcnsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RhYmxleyBkaXNwbGF5OnRhYmxlOyB3aWR0aDoxMDAlOyBwYWRkaW5nOjA7IG1hcmdpbjowOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrUm93eyBkaXNwbGF5OnRhYmxlLXJvdzsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NlbGx7IGRpc3BsYXk6dGFibGUtY2VsbDsgfSBkaXYuZGl2RGlzY2xhaW1lckJsb2NreyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWdlbmVyYWwtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOjNweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tDb250ZW50IGRpdi5kaXZCbG9ja0NvbHVtbiB7IHdpZHRoOjExMDBweCAhaW1wb3J0YW50OyB9IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMucHJlbG9hZC5jc3MgKiovCi5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5kMmNmb3JtICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmQyY2Zvcm0gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTQpOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0tdGhpbiBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtOSk7IH0gLmQyY2Zvcm0tLXJvdyBzdGFjay1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC13cmFwOndyYXA7IH0gLmQyY2Zvcm0tLXJvdyBib3gtbGMgeyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjExNXB4OyB3aWR0aDozMCU7IHBhZGRpbmctcmlnaHQ6dmFyKC0tcyk7IG1hcmdpbi10b3A6dmFyKC0tczEpOyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gbGFiZWw6aGFzKFtyZXF1aXJlZF0pIHNwYW46YWZ0ZXJ7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbDpub3QoLmZpbmFuY2VDYWxjKSwgLmQyY2Zvcm0gLmxhYmVsOm5vdCguZmluYW5jZUNhbGMpIHsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1yaWdodCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSA6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSksIC5kMmNmb3JtIHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCksIC5kMmNmb3JtIHRleHRhcmVhIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0IHsgaGVpZ2h0OjM1cHg7IH0gLmQyY2Zvcm0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC5kMmNmb3JtIGlucHV0OmRpc2FibGVkLCAuZDJjZm9ybSBpbnB1dC5kaXNhYmxlZCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpOyBjb2xvcjpyZ2IoODQsIDg0LCA4NCk7IGJvcmRlci1jb2xvcjpyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXIgeyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlcjo6cGxhY2Vob2xkZXIgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCwgLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDp2YXIoLS1zMSk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgLmlucHV0LWljb24geyByaWdodDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCAuaW5wdXQtaWNvbiB7IGxlZnQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgaW5wdXQgeyBwYWRkaW5nLWxlZnQ6dmFyKC0tczkpOyB9IC5kMmNmb3JtIC5zZXBhcmF0b3IgeyB3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjZDRkNGQ0OyBtYXJnaW4tdG9wOnZhcigtLXM3KTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zNyk7IH0gLmQyY2Zvcm0gLnJhZGlvLWlubGluZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgPiAqIHsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgPiAqOm5vdCg6bGFzdC1vZi10eXBlKSB7IG1hcmdpbi1yaWdodDp2YXIoLS1zMSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHsgZGlzcGxheTpmbGV4OyB3aWR0aCA6MTAwJTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLXRleHQgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZDp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBib3JkZXItbGVmdDowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSBAbWVkaWEgKG1heC13aWR0aDo5ODBweCkgeyAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6ODVweDsgfSB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLmNzcyAqKi8KLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0LCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gdGV4dGFyZWE6Zm9jdXMgeyBib3JkZXItY29sb3I6Izg2YjdmZTsgb3V0bGluZTowOyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2IoMTMgMTEwIDI1MyAvIDI1JSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7IHotaW5kZXg6MzsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGJvcmRlci1jb2xvcjojZGMzNTQ1ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBjb2xvcjojZGMzNTQ1OyB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLnByZWxvYWQuY3NzICoqLwouZDJjZm9ybSB7IC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sOiIqIjsgLS1sYWJlbC1yZXF1aXJlZC1jb2xvcjojRkYwMDAwOyAtLWlucHV0LXBhZGRpbmc6dmFyKC0tcy0xKSB2YXIoLS1zMSk7IC0taW5wdXQtYmctY29sb3I6dmFyKC0td2hpdGUpOyAtLWlucHV0LWJvcmRlci1jb2xvcjp2YXIoLS1taWQtZ3JheSk7IC0taW5wdXQtcmFkaXVzOnZhcigtLXMtNik7IC0taW5wdXQtZm9udC1zaXplOnZhcigtLWZzMCk7IC0taW5wdXQtbGluZS1oZWlnaHQ6dmFyKC0tZnMyKTsgfSAuZDJjZm9ybSAqIHsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kMmNmb3JtIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy00KTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLXRoaW4gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTkpOyB9IC5kMmNmb3JtLS1yb3cgc3RhY2stbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGZsZXgtd3JhcDp3cmFwOyB9IC5kMmNmb3JtLS1yb3cgYm94LWxjIHsgcGFkZGluZy1yaWdodDp2YXIoLS1zcGFjZSk7IHBhZGRpbmctbGVmdDp2YXIoLS1zcGFjZSk7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDoxMTVweDsgd2lkdGg6MzAlOyBwYWRkaW5nLXJpZ2h0OnZhcigtLXMpOyBtYXJnaW4tdG9wOnZhcigtLXMxKTsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIGxhYmVsOmhhcyhbcmVxdWlyZWRdKSBzcGFuOmFmdGVyeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWw6bm90KC5maW5hbmNlQ2FsYyksIC5kMmNmb3JtIC5sYWJlbDpub3QoLmZpbmFuY2VDYWxjKSB7IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctcmlnaHQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gOndoZXJlKGlucHV0Om5vdChbdHlwZT1zdWJtaXRdLC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50KTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSkpLCAuZDJjZm9ybSBzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QpLCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taW5wdXQtYmctY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgY29sb3I6IzIxMjUyOTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgZm9udC13ZWlnaHQ6NDAwOyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCB7IGhlaWdodDozNXB4OyB9IC5kMmNmb3JtIC5pbnZhbGlkID4gOmlzKGlucHV0LHNlbGVjdCx0ZXh0YXJlYSl7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAuZDJjZm9ybSBpbnB1dDpkaXNhYmxlZCwgLmQyY2Zvcm0gaW5wdXQuZGlzYWJsZWQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKTsgY29sb3I6cmdiKDg0LCA4NCwgODQpOyBib3JkZXItY29sb3I6cmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpOyBjdXJzb3I6bm90LWFsbG93ZWQ7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyIHsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXI6OnBsYWNlaG9sZGVyIHsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQsIC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxOyB0b3A6dmFyKC0tczEpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBjb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLXJpZ2h0IC5pbnB1dC1pY29uIHsgcmlnaHQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgLmlucHV0LWljb24geyBsZWZ0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IGlucHV0IHsgcGFkZGluZy1sZWZ0OnZhcigtLXM5KTsgfSAuZDJjZm9ybSAuc2VwYXJhdG9yIHsgd2lkdGg6MTAwJTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2Q0ZDRkNDsgbWFyZ2luLXRvcDp2YXIoLS1zNyk7IG1hcmdpbi1ib3R0b206dmFyKC0tczcpOyB9IC5kMmNmb3JtIC5yYWRpby1pbmxpbmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0ID4gKiB7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0ID4gKjpub3QoOmxhc3Qtb2YtdHlwZSkgeyBtYXJnaW4tcmlnaHQ6dmFyKC0tczEpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCB7IGRpc3BsYXk6ZmxleDsgd2lkdGggOjEwMCU7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC10ZXh0IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IHBhZGRpbmc6dmFyKC0taW5wdXQtcGFkZGluZyk7IGJhY2tncm91bmQ6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyB3aGl0ZS1zcGFjZTpub3dyYXA7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsgYm9yZGVyLWxlZnQ6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmxhc3QtY2hpbGQpIHsgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gQG1lZGlhIChtYXgtd2lkdGg6OTgwcHgpIHsgLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjg1cHg7IH0gfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5jc3MgKiovCi5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSksIC5kMmNmb3JtIHNlbGVjdCwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pOmZvY3VzLCAuZDJjZm9ybSBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIHRleHRhcmVhOmZvY3VzIHsgYm9yZGVyLWNvbG9yOiM4NmI3ZmU7IG91dGxpbmU6MDsgYm94LXNoYWRvdzowIDAgMCAwLjJyZW0gcmdiKDEzIDExMCAyNTMgLyAyNSUpOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pOmZvY3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgdGV4dGFyZWE6Zm9jdXMgeyB6LWluZGV4OjM7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSBzZWxlY3QudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSB0ZXh0YXJlYS52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBib3JkZXItY29sb3I6I2RjMzU0NSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXM6OnBsYWNlaG9sZGVyLCAuZDJjZm9ybSB0ZXh0YXJlYS52YWxpZGl0eS1lcnJvbmVvdXM6OnBsYWNlaG9sZGVyLCAuZDJjZm9ybSBzZWxlY3QudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgY29sb3I6I2RjMzU0NTsgfQovKiogL2Nzcy92Mi9tb2RhbC5jc3MgKiovCi5tb2RhbC13cmFwcGVyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDoxNTAlOyBsZWZ0OjUwJTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAtNTAlKTsgei1pbmRleDoxNjAwMTsgdHJhbnNpdGlvbjp0b3AgMTUwbXMgZWFzZS1pbjsgfSAubW9kYWwtd3JhcHBlci5pcy1hY3RpdmV7IHRvcDo1MCU7IH0gLm1vZGFsLXdyYXBwZXIgLm1vZGFsLWJvZHl7IG1pbi13aWR0aDoyMHJlbTsgbWF4LXdpZHRoOjEwMCU7IG1heC1oZWlnaHQ6ODV2aDsgb3ZlcmZsb3cteTphdXRvOyB9IC5tb2RhbC1vdmVybGF5eyBwb3NpdGlvbjpmaXhlZDsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwdnc7IGhlaWdodDoxMDB2aDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLDAuNSk7IHotaW5kZXg6MTAwMDA7IH0gLmxvYWRpbmctb3ZlcmxheXsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB0b3A6MDsgbGVmdDowOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IH0gLm1vZGFsLXdyYXBwZXIgOmlzKGlucHV0W3R5cGU9InRleHQiXSxpbnB1dFt0eXBlPSJlbWFpbCJdLGlucHV0W3R5cGU9InRlbCJdKXsgcGFkZGluZzowLjRyZW07IGJvcmRlcjoxcHggc29saWQgdmFyKC0tbWlkLWdyYXkpOyBib3JkZXItcmFkaXVzOjAuM3JlbTsgfSAubW9kYWwtYm9keSAuaWZyYW1lLXdyYXBwZXJ7IHdpZHRoOm1heCg5MHZ3LCAyMC41cmVtKTsgaGVpZ2h0Om1heCg4NHZoLCAzMHJlbSk7IHdpZHRoOmNsYW1wKDIwLjVyZW0sIG1heCg5MHZ3LCAyMC41cmVtKSwgNjByZW0pOyBoZWlnaHQ6Y2xhbXAoMzByZW0sIG1heCg4NHZoLCAzMHJlbSksIDYwcmVtKTsgfSAubW9kYWwtYm9keSAuaWZyYW1lLXdyYXBwZXIgaWZyYW1leyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfQovKiogL2Nzcy92Mi9mbGF0cGlja3IubWluLmNzcyAqKi8KLmZsYXRwaWNrci1jYWxlbmRhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O29wYWNpdHk6MDtkaXNwbGF5Om5vbmU7dGV4dC1hbGlnbjpjZW50ZXI7dmlzaWJpbGl0eTpoaWRkZW47cGFkZGluZzowOy13ZWJraXQtYW5pbWF0aW9uOm5vbmU7YW5pbWF0aW9uOm5vbmU7ZGlyZWN0aW9uOmx0cjtib3JkZXI6MDtmb250LXNpemU6MC44NzVyZW0gO2xpbmUtaGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo1cHg7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MzA3Ljg3NXB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstbXMtdG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2JhY2tncm91bmQ6I2ZmZjstd2Via2l0LWJveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2LC0xcHggMCAwICNlNmU2ZTYsMCAxcHggMCAjZTZlNmU2LDAgLTFweCAwICNlNmU2ZTYsMCAzcHggMTNweCByZ2JhKDAsMCwwLDAuMDgpO2JveC1zaGFkb3c6MXB4IDAgMCAjZTZlNmU2LC0xcHggMCAwICNlNmU2ZTYsMCAxcHggMCAjZTZlNmU2LDAgLTFweCAwICNlNmU2ZTYsMCAzcHggMTNweCByZ2JhKDAsMCwwLDAuMDgpfS5mbGF0cGlja3ItY2FsZW5kYXIub3BlbiwuZmxhdHBpY2tyLWNhbGVuZGFyLmlubGluZXtvcGFjaXR5OjE7bWF4LWhlaWdodDo2NDBweDt2aXNpYmlsaXR5OnZpc2libGV9LmZsYXRwaWNrci1jYWxlbmRhci5vcGVue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3otaW5kZXg6OTk5OTl9LmZsYXRwaWNrci1jYWxlbmRhci5hbmltYXRlLm9wZW57LXdlYmtpdC1hbmltYXRpb246ZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllciguMjMsMSwuMzIsMSk7YW5pbWF0aW9uOmZwRmFkZUluRG93biAzMDBtcyBjdWJpYy1iZXppZXIoLjIzLDEsLjMyLDEpfS5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5le2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7dG9wOjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpY3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygxMDAlICsgMnB4KX0uZmxhdHBpY2tyLWNhbGVuZGFyLnN0YXRpYy5vcGVue3otaW5kZXg6OTk5O2Rpc3BsYXk6YmxvY2t9LmZsYXRwaWNrci1jYWxlbmRhci5tdWx0aU1vbnRoIC5mbGF0cGlja3ItZGF5cyAuZGF5Q29udGFpbmVyOm50aC1jaGlsZChuKzEpIC5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bnRoLWNoaWxkKDduKzcpey13ZWJraXQtYm94LXNoYWRvdzpub25lICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnR9LmZsYXRwaWNrci1jYWxlbmRhci5tdWx0aU1vbnRoIC5mbGF0cGlja3ItZGF5cyAuZGF5Q29udGFpbmVyOm50aC1jaGlsZChuKzIpIC5mbGF0cGlja3ItZGF5LmluUmFuZ2U6bnRoLWNoaWxkKDduKzEpey13ZWJraXQtYm94LXNoYWRvdzotMnB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93Oi0ycHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXIsLmZsYXRwaWNrci1jYWxlbmRhciAuaGFzVGltZSAuZGF5Q29udGFpbmVye2JvcmRlci1ib3R0b206MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNXZWVrcyAuZGF5Q29udGFpbmVye2JvcmRlci1sZWZ0OjB9LmZsYXRwaWNrci1jYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZXtoZWlnaHQ6NDBweDtib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIubm9DYWxlbmRhci5oYXNUaW1lIC5mbGF0cGlja3ItdGltZXtoZWlnaHQ6YXV0b30uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyOmFmdGVye3Bvc2l0aW9uOmFic29sdXRlO2Rpc3BsYXk6YmxvY2s7cG9pbnRlci1ldmVudHM6bm9uZTtib3JkZXI6c29saWQgdHJhbnNwYXJlbnQ7Y29udGVudDonJztoZWlnaHQ6MDt3aWR0aDowO2xlZnQ6MjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLnJpZ2h0TW9zdDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1JpZ2h0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLnJpZ2h0TW9zdDphZnRlciwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93UmlnaHQ6YWZ0ZXJ7bGVmdDphdXRvO3JpZ2h0OjIycHh9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0NlbnRlcjpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0NlbnRlcjphZnRlcntsZWZ0OjUwJTtyaWdodDo1MCV9LmZsYXRwaWNrci1jYWxlbmRhcjpiZWZvcmV7Ym9yZGVyLXdpZHRoOjVweDttYXJnaW46MCAtNXB4fS5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXJ7Ym9yZGVyLXdpZHRoOjRweDttYXJnaW46MCAtNHB4fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXJ7Ym90dG9tOjEwMCV9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDpiZWZvcmV7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dUb3A6YWZ0ZXJ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmfS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXJ7dG9wOjEwMCV9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTpiZWZvcmV7Ym9yZGVyLXRvcC1jb2xvcjojZTZlNmU2fS5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dCb3R0b206YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjojZmZmfS5mbGF0cGlja3ItY2FsZW5kYXI6Zm9jdXN7b3V0bGluZTowfS5mbGF0cGlja3Itd3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9ja30uZmxhdHBpY2tyLW1vbnRoc3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbW9udGh7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjpyZ2JhKDAsMCwwLDAuOSk7ZmlsbDpyZ2JhKDAsMCwwLDAuOSk7aGVpZ2h0OjM0cHg7bGluZS1oZWlnaHQ6MTt0ZXh0LWFsaWduOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoe3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2hlaWdodDozNHB4O3BhZGRpbmc6MTBweDt6LWluZGV4OjM7Y29sb3I6cmdiYSgwLDAsMCwwLjkpO2ZpbGw6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1kaXNhYmxlZHtkaXNwbGF5Om5vbmV9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIGksLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIGl7cG9zaXRpb246cmVsYXRpdmV9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItcHJldi1tb250aHtsZWZ0OjB9IC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLW5leHQtbW9udGh7cmlnaHQ6MH0gLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aDpob3Zlcntjb2xvcjojOTU5ZWE5fS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aDpob3ZlciBzdmcsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVyIHN2Z3tmaWxsOiNmNjQ3NDd9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZywuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggc3Zne3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHh9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoIHN2ZyBwYXRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmcgcGF0aHstd2Via2l0LXRyYW5zaXRpb246ZmlsbCAuMXM7dHJhbnNpdGlvbjpmaWxsIC4xcztmaWxsOmluaGVyaXR9Lm51bUlucHV0V3JhcHBlcntwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6YXV0b30ubnVtSW5wdXRXcmFwcGVyIGlucHV0LC5udW1JbnB1dFdyYXBwZXIgc3BhbntkaXNwbGF5OmlubGluZS1ibG9ja30ubnVtSW5wdXRXcmFwcGVyIGlucHV0e3dpZHRoOjEwMCV9Lm51bUlucHV0V3JhcHBlciBpbnB1dDo6LW1zLWNsZWFye2Rpc3BsYXk6bm9uZX0ubnVtSW5wdXRXcmFwcGVyIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLC5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b257bWFyZ2luOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9Lm51bUlucHV0V3JhcHBlciBzcGFue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7d2lkdGg6MTRweDtwYWRkaW5nOjAgNHB4IDAgMnB4O2hlaWdodDo1MCU7bGluZS1oZWlnaHQ6NTAlO29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC4xNSk7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94fS5udW1JbnB1dFdyYXBwZXIgc3Bhbjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4xKX0ubnVtSW5wdXRXcmFwcGVyIHNwYW46YWN0aXZle2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjIpfS5udW1JbnB1dFdyYXBwZXIgc3BhbjphZnRlcntkaXNwbGF5OmJsb2NrO2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXB7dG9wOjA7Ym9yZGVyLWJvdHRvbTowfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206NHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTt0b3A6MjYlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd257dG9wOjUwJX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci1sZWZ0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6NHB4IHNvbGlkIHJnYmEoNTcsNTcsNTcsMC42KTt0b3A6NDAlfS5udW1JbnB1dFdyYXBwZXIgc3BhbiBzdmd7d2lkdGg6aW5oZXJpdDtoZWlnaHQ6YXV0b30ubnVtSW5wdXRXcmFwcGVyIHNwYW4gc3ZnIHBhdGh7ZmlsbDpyZ2JhKDAsMCwwLDAuNSl9Lm51bUlucHV0V3JhcHBlcjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9Lm51bUlucHV0V3JhcHBlcjpob3ZlciBzcGFue29wYWNpdHk6MX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGh7Zm9udC1zaXplOjEzNSU7bGluZS1oZWlnaHQ6aW5oZXJpdDtmb250LXdlaWdodDozMDA7Y29sb3I6aW5oZXJpdDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo3NSU7bGVmdDoxMi41JTtwYWRkaW5nOjcuNDhweCAwIDAgMDtsaW5lLWhlaWdodDoxO2hlaWdodDozNHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3RleHQtYWxpZ246Y2VudGVyOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aHtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjppbmhlcml0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0Oi41Y2g7cGFkZGluZzowfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBzcGFuLmN1ci1tb250aDpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC4wNSl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6NmNoO3dpZHRoOjdjaFwwO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsMC45KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsMC45KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtjdXJzb3I6dGV4dDtwYWRkaW5nOjAgMCAwIC41Y2g7bWFyZ2luOjA7ZGlzcGxheTppbmxpbmUtYmxvY2s7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDozMDA7bGluZS1oZWlnaHQ6aW5oZXJpdDtoZWlnaHQ6YXV0bztib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7dmVydGljYWwtYWxpZ246aW5pdGlhbDstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyOmZvY3Vze291dGxpbmU6MH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXJbZGlzYWJsZWRdLC5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF06aG92ZXJ7Zm9udC1zaXplOjEwMCU7Y29sb3I6cmdiYSgwLDAsMCwwLjUpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9pbnRlci1ldmVudHM6bm9uZX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoc3thcHBlYXJhbmNlOm1lbnVsaXN0O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTppbmhlcml0O2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6MzAwO2hlaWdodDphdXRvO2xpbmUtaGVpZ2h0OmluaGVyaXQ7bWFyZ2luOi0xcHggMCAwIDA7b3V0bGluZTpub25lO3BhZGRpbmc6MCAwIDAgLjVjaDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjppbml0aWFsOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYXBwZWFyYW5jZTptZW51bGlzdDstbW96LWFwcGVhcmFuY2U6bWVudWxpc3Q7d2lkdGg6YXV0b30uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczpmb2N1cywuZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoczphY3RpdmV7b3V0bGluZTpub25lfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRocyAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGh7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtvdXRsaW5lOm5vbmU7cGFkZGluZzowfS5mbGF0cGlja3Itd2Vla2RheXN7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0ZXh0LWFsaWduOmNlbnRlcjtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDoyOHB4fS5mbGF0cGlja3Itd2Vla2RheXMgLmZsYXRwaWNrci13ZWVrZGF5Y29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxfXNwYW4uZmxhdHBpY2tyLXdlZWtkYXl7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOjkwJTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMCwwLDAsMC41NCk7bGluZS1oZWlnaHQ6MTttYXJnaW46MDt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrOy13ZWJraXQtYm94LWZsZXg6MTstd2Via2l0LWZsZXg6MTstbXMtZmxleDoxO2ZsZXg6MTtmb250LXdlaWdodDpib2xkZXJ9LmRheUNvbnRhaW5lciwuZmxhdHBpY2tyLXdlZWtze3BhZGRpbmc6MXB4IDAgMCAwfS5mbGF0cGlja3ItZGF5c3twb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpzdGFydDstd2Via2l0LWFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7LW1zLWZsZXgtYWxpZ246c3RhcnQ7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt3aWR0aDozMDcuODc1cHh9LmZsYXRwaWNrci1kYXlzOmZvY3Vze291dGxpbmU6MH0uZGF5Q29udGFpbmVye3BhZGRpbmc6MDtvdXRsaW5lOjA7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjMwNy44NzVweDttaW4td2lkdGg6MzA3Ljg3NXB4O21heC13aWR0aDozMDcuODc1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO29wYWNpdHk6MX0uZGF5Q29udGFpbmVyICsgLmRheUNvbnRhaW5lcnstd2Via2l0LWJveC1zaGFkb3c6LTFweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93Oi0xcHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1kYXl7YmFja2dyb3VuZDpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czoxNTBweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6IzM5MzkzOTtjdXJzb3I6cG9pbnRlcjtmb250LXdlaWdodDo0MDA7d2lkdGg6MTQuMjg1NzE0MyU7LXdlYmtpdC1mbGV4LWJhc2lzOjE0LjI4NTcxNDMlOy1tcy1mbGV4LXByZWZlcnJlZC1zaXplOjE0LjI4NTcxNDMlO2ZsZXgtYmFzaXM6MTQuMjg1NzE0MyU7bWF4LXdpZHRoOjM5cHg7aGVpZ2h0OjM5cHg7bGluZS1oZWlnaHQ6MzlweDttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0ZXh0LWFsaWduOmNlbnRlcn0uZmxhdHBpY2tyLWRheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LnRvZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5Lm5leHRNb250aERheTpob3ZlciwuZmxhdHBpY2tyLWRheTpmb2N1cywuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6Zm9jdXMsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmZvY3Vze2N1cnNvcjpwb2ludGVyO291dGxpbmU6MDtiYWNrZ3JvdW5kOiNlNmU2ZTY7Ym9yZGVyLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1kYXkudG9kYXl7Ym9yZGVyLWNvbG9yOiM5NTllYTl9LmZsYXRwaWNrci1kYXkudG9kYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkudG9kYXk6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM5NTllYTk7YmFja2dyb3VuZDojOTU5ZWE5O2NvbG9yOiNmZmZ9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkOmZvY3VzLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2U6Zm9jdXMsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2U6Zm9jdXMsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6aG92ZXIsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpob3ZlciwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpob3ZlciwuZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UucHJldk1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLm5leHRNb250aERheSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLm5leHRNb250aERheSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5uZXh0TW9udGhEYXl7YmFja2dyb3VuZDojNTY5ZmY3Oy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjojNTY5ZmY3fS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLnN0YXJ0UmFuZ2V7Ym9yZGVyLXJhZGl1czo1MHB4IDAgMCA1MHB4fS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2UuZW5kUmFuZ2V7Ym9yZGVyLXJhZGl1czowIDUwcHggNTBweCAwfS5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnN0YXJ0UmFuZ2UgKyAuZW5kUmFuZ2U6bm90KDpudGgtY2hpbGQoN24rMSkpLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSksLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSl7LXdlYmtpdC1ib3gtc2hhZG93Oi0xMHB4IDAgMCAjNTY5ZmY3O2JveC1zaGFkb3c6LTEwcHggMCAwICM1NjlmZjd9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZXtib3JkZXItcmFkaXVzOjUwcHh9LmZsYXRwaWNrci1kYXkuaW5SYW5nZXtib3JkZXItcmFkaXVzOjA7LXdlYmtpdC1ib3gtc2hhZG93Oi01cHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTVweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZDpob3ZlciwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5Lm5vdEFsbG93ZWQsLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZC5uZXh0TW9udGhEYXl7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2N1cnNvcjpkZWZhdWx0fS5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQ6aG92ZXJ7Y3Vyc29yOm5vdC1hbGxvd2VkO2NvbG9yOnJnYmEoNTcsNTcsNTcsMC4xKX0uZmxhdHBpY2tyLWRheS53ZWVrLnNlbGVjdGVke2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6LTVweCAwIDAgIzU2OWZmNyw1cHggMCAwICM1NjlmZjc7Ym94LXNoYWRvdzotNXB4IDAgMCAjNTY5ZmY3LDVweCAwIDAgIzU2OWZmN30uZmxhdHBpY2tyLWRheS5oaWRkZW57dmlzaWJpbGl0eTpoaWRkZW59LnJhbmdlTW9kZSAuZmxhdHBpY2tyLWRheXttYXJnaW4tdG9wOjFweH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVye2Zsb2F0OmxlZnR9LmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtze3BhZGRpbmc6MCAxMnB4Oy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci13ZWVrd3JhcHBlciAuZmxhdHBpY2tyLXdlZWtkYXl7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2xpbmUtaGVpZ2h0OjI4cHh9LmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXksLmZsYXRwaWNrci13ZWVrd3JhcHBlciBzcGFuLmZsYXRwaWNrci1kYXk6aG92ZXJ7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO21heC13aWR0aDpub25lO2NvbG9yOnJnYmEoNTcsNTcsNTcsMC4zKTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2N1cnNvcjpkZWZhdWx0O2JvcmRlcjpub25lfS5mbGF0cGlja3ItaW5uZXJDb250YWluZXJ7ZGlzcGxheTpibG9jaztkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW59LmZsYXRwaWNrci1yQ29udGFpbmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3BhZGRpbmc6MDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmZsYXRwaWNrci10aW1le3RleHQtYWxpZ246Y2VudGVyO291dGxpbmU6MDtkaXNwbGF5OmJsb2NrO2hlaWdodDowO2xpbmUtaGVpZ2h0OjQwcHg7bWF4LWhlaWdodDo0MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZmxhdHBpY2tyLXRpbWU6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2NsZWFyOmJvdGh9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXJ7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO3dpZHRoOjQwJTtoZWlnaHQ6NDBweDtmbG9hdDpsZWZ0fS5mbGF0cGlja3ItdGltZSAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOiMzOTM5Mzl9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLXRvcC1jb2xvcjojMzkzOTM5fS5mbGF0cGlja3ItdGltZS5oYXNTZWNvbmRzIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6MjYlfS5mbGF0cGlja3ItdGltZS50aW1lMjRociAubnVtSW5wdXRXcmFwcGVye3dpZHRoOjQ5JX0uZmxhdHBpY2tyLXRpbWUgaW5wdXR7YmFja2dyb3VuZDp0cmFuc3BhcmVudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZTtib3gtc2hhZG93Om5vbmU7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjowO3BhZGRpbmc6MDtoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOiMzOTM5Mzk7Zm9udC1zaXplOjAuODc1cmVtIDtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDstbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkO2FwcGVhcmFuY2U6dGV4dGZpZWxkfS5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItaG91cntmb250LXdlaWdodDpib2xkfS5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3ItbWludXRlLC5mbGF0cGlja3ItdGltZSBpbnB1dC5mbGF0cGlja3Itc2Vjb25ke2ZvbnQtd2VpZ2h0OjQwMH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6Zm9jdXN7b3V0bGluZTowO2JvcmRlcjowfS5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLXRpbWUtc2VwYXJhdG9yLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBte2hlaWdodDppbmhlcml0O2Zsb2F0OmxlZnQ7bGluZS1oZWlnaHQ6aW5oZXJpdDtjb2xvcjojMzkzOTM5O2ZvbnQtd2VpZ2h0OmJvbGQ7d2lkdGg6MiU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtYWxpZ24tc2VsZjpjZW50ZXI7LW1zLWZsZXgtaXRlbS1hbGlnbjpjZW50ZXI7YWxpZ24tc2VsZjpjZW50ZXJ9LmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG17b3V0bGluZTowO3dpZHRoOjE4JTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXdlaWdodDo0MDB9LmZsYXRwaWNrci10aW1lIGlucHV0OmhvdmVyLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmhvdmVyLC5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1cywuZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbTpmb2N1c3tiYWNrZ3JvdW5kOiNlZWV9LmZsYXRwaWNrci1pbnB1dFtyZWFkb25seV17Y3Vyc29yOnBvaW50ZXJ9QC13ZWJraXQta2V5ZnJhbWVzIGZwRmFkZUluRG93bntmcm9te29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19QGtleWZyYW1lcyBmcEZhZGVJbkRvd257ZnJvbXtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtMjBweCwwKX10b3tvcGFjaXR5OjE7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9fQovKiogL2Nzcy9pbmxpbmUuZnIubmV3Y2Fycy5jc3MgKiovCmJ1dHRvbiNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjMgIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IGJ1dHRvbiNvbmV0cnVzdC1yZWplY3QtYWxsLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjc2YjMgIWltcG9ydGFudDsgY29sb3I6IzAyNzZiMyAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6IzAyNzZiMyAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweCAhaW1wb3J0YW50OyB9IGJ1dHRvbiNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBjb2xvcjojNjk2OTY5ICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojOTA5MDkwICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uLnNhdmUtcHJlZmVyZW5jZS1idG4taGFuZGxlci5vbmV0cnVzdC1jbG9zZS1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBjb2xvcjojMDI3NmIzICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojMDI3NmIzICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uLm90LXBjLXJlZnVzZS1hbGwtaGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6IzAyNzZiMyAhaW1wb3J0YW50OyBjb2xvcjojMDI3NmIzICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojMDI3NmIzICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlcnsgYmFja2dyb3VuZC1jb2xvcjojMDI3NmIzICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgZm9udC1zaXplOnNtYWxsICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4ICFpbXBvcnRhbnQ7IH0gLm90LXBjLWxvZ28gaW1neyBjb250ZW50OnVybCgiL2ltYWdlcy9Mb2dvTW9iaWxlL3NvcmVsLXRyYWN5LWZvcmQtbG9nby53ZWJwIikgIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dveyB3aWR0aDozMCUgIWltcG9ydGFudDsganVzdGlmeS1jb250ZW50OmxlZnQgIWltcG9ydGFudDsgfSAub3QtYm5yLWxvZ297IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ29Nb2JpbGUvc29yZWwtdHJhY3ktZm9yZC1sb2dvLndlYnAiKSAhaW1wb3J0YW50OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrLm90LWJuci13LWxvZ28gLm90LWJuci1sb2dveyB3aWR0aDo4NXB4ICFpbXBvcnRhbnQ7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjI1cHggIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvICNvbmV0cnVzdC1wb2xpY3kgeyBtYXJnaW4tbGVmdDoxMTBweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MjVweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDI1cHgpeyAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvIC5vdC1ibnItbG9nb3sgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjoxNXB4IDAgMTBweCAwICFpbXBvcnRhbnQ7IHRyYW5zZm9ybTppbmhlcml0OyB6b29tOjQwJTsgfSAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvICNvbmV0cnVzdC1wb2xpY3kgeyBtYXJnaW4tbGVmdDowcHggIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luLXRvcDo1cHg7IH0gI29uZXRydXN0LWNvbnNlbnQtc2RrICNvbmV0cnVzdC1wb2xpY3ktdGl0bGV7IGZvbnQtc2l6ZToxZW0gIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYWNjZXB0LWJ0bi1oYW5kbGVyLCAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyLCAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcGMtYnRuLWhhbmRsZXJ7IHBhZGRpbmc6MTBweCAxMHB4OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrIGJ1dHRvbiwgI29uZXRydXN0LXBjLXNkayBidXR0b24sICNvdC1zZGstY29va2llLXBvbGljeSBidXR0b257IG1hcmdpbi1ib3R0b206MC41cmVtOyB9ICNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uIHsgd2lkdGg6YXV0bzsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAub3Qtc2RrLWNvbnRhaW5lciwgI29uZXRydXN0LXBjLXNkayAub3Qtc2RrLWNvbnRhaW5lciwgI290LXNkay1jb29raWUtcG9saWN5IC5vdC1zZGstY29udGFpbmVyeyBwYWRkaW5nOjVweCAyMHB4OyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1wb2xpY3l7IG1hcmdpbjowOyB9ICNvbmV0cnVzdC1iYW5uZXItc2RrICNvbmV0cnVzdC1idXR0b24tZ3JvdXAgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlcnsgZm9udC1zaXplOnZhcigtLWZzMCk7IH0gfTwvc3R5bGU+CgogICAgICAgCiAgICAgICA8IS0tIE9POjoxNWRiZTFlYzRiYjgxOWYzYmU5YWYwYmI5MTczMWQ5ZiAtLT4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSLDoCB2ZW5kcmUiIGlkPSJ0ZXh0Rm9yU2FsZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iRMOpdGFpbHMiIGlkPSJ0ZXh0RGV0YWlscyI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVG91cyIgaWQ9InRleHRBbGwiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlByaXggUsOpZHVpdCIgaWQ9InRleHRSZWR1Y2VkIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJTw6lsZWN0aW9ubmV6IHVuZSBtYXJxdWUiIGlkPSJ0ZXh0TWFudVRpdGxlIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJWb2lyIG5vcyBtb2TDqGxlcyBGb3JkIiBpZD0idGV4dEJyYW5kVGl0bGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik1vZMOobGVzIEZvcmQgbmV1ZnMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IiBpZD0idGV4dE1haW5UaXRsZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQXV0b3MgbmV1dmVzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0Q2FyVGl0bGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlZVUyBuZXVmcyBGb3JkIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dFNVVlRpdGxlIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJDYW1pb25zIG5ldWZzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0VHJ1Y2tUaXRsZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iSHlicmlkZXMgbmV1dmVzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIHskTkVXQ0lUWX0iIGlkPSJ0ZXh0SHlicmlkVGl0bGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Im5vdXZlYXUiIGlkPSJ0ZXh0TmV3Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJGb3JkIHskQ0xBU1NOQU1FfSAyMDI1LCAyMDI2ICZhbXA7IDIwMjciIGlkPSJ0ZXh0Q2xhc3NWaWV3Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJBY2N1ZWlsIiBpZD0idGV4dEhvbWUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii8iIGlkPSJ1cmlIb21lIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvbmV1ZnMvbm91dmVhdS5odG1sIiBpZD0idXJpTmV3Q2FycyI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL25ldWZzLyIgaWQ9InRleHROZXdDYXJGb2xkZXIiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5vcyBtYXJxdWVzIiBpZD0idGV4dE1hbnVTZWxlY3QiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkVuIFN0b2NrIC8gRGlzcG9uaWJsZXMiIGlkPSJpblN0b2NrTGFiZWwiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9pbWFnZXMvIiBpZD0idGV4dEJhc2VJbWFnZVBhdGgiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9wcm94eV9hdWIvIiBpZD0iYnJhbmRJbWFnZVBhdGgiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZm9yY2VUb0ZpbGxQb3B1cF9uZXciIHZhbHVlPSJub25lIj4KCSAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0iaXNtb2JpbGUiPgogICAgICAgCQkJCTxzY3JpcHQ+CgoJCS8vZ2xvYmFsIHN0b3JlCgkJdmFyIHN0b3JlID0gbnVsbDsKCgkJY29uc3QgaW5pdFN0b3JlID0gKCkgPT4gewoKCQkJaWYodHlwZW9mIGNyZWF0ZURhdGFTdG9yZSAhPT0gJ2Z1bmN0aW9uJyl7CgkJCQlzZXRUaW1lb3V0KGluaXRTdG9yZSwgNTApOwoJCQkJcmV0dXJuOwoJCQl9CgoJCQlzdG9yZSA9IGNyZWF0ZURhdGFTdG9yZSh7ImNvbnRleHQiOnsibGFuZyI6IkZSRU5DSCIsInNob3J0TGFuZyI6ImZyIiwiaXNNb2JpbGUiOnRydWUsImNhdGVnb3J5IjoiYWxsIiwic2VjdGlvbiI6Ik5FVyIsImxvY2FsZSI6ImZyX0NBIiwiZGF0ZWZvcm1hdCI6IiVlICVCIn0sImRlYWxlckluZm8iOnsiYWRkcmVzcyI6IjIzMjUgcnVlIExhcHJhZGUiLCJjaXR5IjoiU29yZWwtVHJhY3kiLCJwcm92aW5jZSI6IlF1XHUwMGU5YmVjIiwicmVnaW9uIjoiTW9udFx1MDBlOXJcdTAwZTlnaWUiLCJwb3N0YWwiOiJKM1IgMkMxIiwibmFtZSI6IlNvcmVsLVRyYWN5IEZvcmQiLCJlbWFpbCI6ImRsYXZhbGxlZUBzb3JlbC10cmFjeWZvcmQuY2EiLCJkZWFsZXJJRCI6MzkzMywiZGVhbGVyR3JvdXAiOnsiZ3JvdXBlTmFtZSI6Ikdyb3VwZSBSTSIsImdyb3VwZUlEIjoiNDI1MSIsImRlYWxlcnMiOlt7ImRlYWxlcklEIjoxMTU3LCJuYW1lIjoiSG9uZGEgU29yZWwtVHJhY3kiLCJzaXRlSUQiOjQ2NiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6MzkzMywibmFtZSI6IlNvcmVsLVRyYWN5IEZvcmQiLCJzaXRlSUQiOjE0NDYsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOjQ2MTAsIm5hbWUiOiJTb3JlbC1UcmFjeSBNaXRzdWJpc2hpIiwic2l0ZUlEIjoxNjIyLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjo0Njc4LCJuYW1lIjoiU29yZWwtVHJhY3kgTmlzc2FuIiwic2l0ZUlEIjoxNzUxLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjo1MzUsIm5hbWUiOiJWYWxsZXlmaWVsZCBOaXNzYW4iLCJzaXRlSUQiOjE4NDcsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOjIwOTMsIm5hbWUiOiJWb2xrc3dhZ2VuIFNvcmVsLVRyYWN5Iiwic2l0ZUlEIjo0OTUsImlzTGl2ZSI6IllFUyJ9XX0sImZheCI6IiIsInBob25lIjoiNDUwLTc0Mi0yNzQzIiwibGF0aXR1ZGUiOiI0Ni4wMjk5MjkwMDAwIiwibG9uZ2l0dWRlIjoiLTczLjE0MTc5NzAwMDAiLCJwcm92aW5jZV9jb2RlIjoiUUMiLCJkZXRhaWxfcHJpeCI6bnVsbCwiZGV0YWlsX3ByaXhfYW4iOm51bGwsImRldGFpbF9wcml4X3VzZWQiOm51bGwsImRldGFpbF9wcml4X3VzZWRfYW4iOm51bGwsIm9lbURlYWxlckNvZGUiOiJCMjU0OSIsInByaWNlX2Rpc2NsYWltZXJfcHJlZmVyZW5jZSI6IjAiLCJwcmljZV9kaXNjbGFpbWVyX3ByZWZlcmVuY2VfdXNlZCI6IjAiLCJnbUJBQyI6IiIsInBsYWNlSWQiOiJDaElKTXpFSnA0LVB5RXdSV3NMd2dNQWY3REUifSwiaXNWTSI6ZmFsc2UsImZpZWxkcyI6eyJTSE9XUk9PTV9JTUFHRV9TT1VSQ0VfVFlQRSI6ImNocm9tZSIsIk5FV19JTlZfSU1BR0VfU09VUkNFX1RZUEUiOiJjaHJvbWUiLCJBRE1JTl9TSE9XX0VGRkVDVElWRV9SQVRFX1NFTEVDVCI6InByaW1hcnkiLCJBRE1JTl9TSE9XX0VGRkVDVElWRV9SQVRFIjoiZmFsc2UiLCJWV19EUl9QUF9FTkFCTEVEIjp0cnVlfSwiaTE4biI6eyJXRUJfU0lURV9HRU5FUkFUT1JfUEFHRV9ORVdJTlYiOiJcL25ldWZzXC9pbnZlbnRhaXJlXC9yZWNoZXJjaGUuaHRtbCIsIlBBWU1FTlRTIjoiUGFpZW1lbnRzIiwiREVGQVVMVF9QQVlNRU5UX0NBU0giOiJDb21wdGFudCIsIkxBQkVMX0JFRk9SRV9UQVhFUyI6IkF2YW50IHRheGVzIiwiTEFCRUxfU0FWRV9CVUlMRF9USVRMRSI6IkVucmVnaXN0cmVyIHZvdHJlIGNvbmZpZ3VyYXRpb24hIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX1RPT0xUSVAiOiJSZXN0YXVyZXogdW5lIGNvbmZpZ3VyYXRpb24gcHJcdTAwZTljXHUwMGU5ZGVtbWVudCBlbnJlZ2lzdHJcdTAwZTllIGVuIHNhaXNpc3NhbnQgdm90cmUgYWRyZXNzZSBlLW1haWwgb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRU1BSUxfUEhPTkUiOiJTYWlzaXNzZXogdm90cmUgYWRyZXNzZSBlLW1haWwgZXRcL291IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUgcG91ciBjaGFyZ2VyIHVuZSBjb25maWd1cmF0aW9uIGVucmVnaXN0clx1MDBlOWUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0VNQUlMX1BIT05FX0VSUk9SIjoiVmV1aWxsZXogc2Fpc2lyIHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX0VSUk9SIjoiTGVzIGRvbm5cdTAwZTllcyBkZSBjb25maWd1cmF0aW9uIG5lIHNvbnQgcGFzIGRpc3BvbmlibGVzIHBvdXIgY2V0IGVucmVnaXN0cmVtZW50LiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9SRURJUkVDVElORyI6IkNvbXBpbGF0aW9uIGNoYXJnXHUwMGU5ZSEgUmVkaXJlY3Rpb24gZW4gY291cnMuLi4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9FUlJPUiI6IkF1Y3VuZSBjb25maWd1cmF0aW9uIG4mIzM5O2EgXHUwMGU5dFx1MDBlOSB0cm91dlx1MDBlOWUgcG91ciBjZXR0ZSBhZHJlc3NlIGUtbWFpbFwvbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfSU5WQUxJRF9UT0tFTiI6IkxlIGpldG9uIGVzdCBpbnZhbGlkZSBvdSBhIGV4cGlyXHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVCI6IkNoYXJnZW1lbnQgZGVzIGNvbmZpZ3VyYXRpb25zIHNhdXZlZ2FyZFx1MDBlOXMuLi4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9TRUxFQ1QiOiJTXHUwMGU5bGVjdGlvbm5leiB1bmUgY29uZmlndXJhdGlvbiBcdTAwZTAgY2hhcmdlcjoiLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfTElTVF9GQUlMRUQiOiJJbXBvc3NpYmxlIGRlIGNoYXJnZXIgbGVzIGNvbmZpZ3VyYXRpb25zLiIsIldFQlNJVEVfT0VNRFJfTUZBX1NFTkRfQ09ERSI6IkVudm9pIGR1IGNvZGUgZGUgdlx1MDBlOXJpZmljYXRpb24uLi4iLCJXRUJTSVRFX09FTURSX01GQV9TVEFSVF9FUlJPUiI6IkltcG9zc2libGUgZGUgZFx1MDBlOW1hcnJlciBsYSB2XHUwMGU5cmlmaWNhdGlvbi4iLCJXRUJTSVRFX09FTURSX01GQV9FTlRFUl9DT0RFIjoiU2Fpc2lzc2V6IGxlIGNvZGUgXHUwMGUwIDYgY2hpZmZyZXMgZW52b3lcdTAwZTkgXHUwMGUwIHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IFx1MDBlMCB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VOVEVSX0NPREVfRVJST1IiOiJWZXVpbGxleiBzYWlzaXIgbGUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbi4iLCJXRUJTSVRFX09FTURSX01GQV9WRVJJRllfQ09ERSI6IlZcdTAwZTlyaWZpY2F0aW9uIGR1IGNvZGUuLi4iLCJXRUJTSVRFX09FTURSX01GQV9FWFBJUkVEX0NPREUiOiJDb2RlIGludmFsaWRlIG91IGV4cGlyXHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX01GQV9WRVJJRllfRkFJTEVEIjoiTGEgdlx1MDBlOXJpZmljYXRpb24gYSBcdTAwZTljaG91XHUwMGU5LiBWZXVpbGxleiByXHUwMGU5ZXNzYXllci4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfVVBEQVRJTkciOiJNaXNlIFx1MDBlMCBqb3VyIGRlIGxhIGNvbmZpZ3VhdGlvbi4uLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVEVfU1VDQ0VTUyI6IkxhIGNvbmZpZ3VhdGlvbiBhIFx1MDBlOXRcdTAwZTkgbWlzZSBcdTAwZTAgam91ciBhdmVjIHN1Y2NcdTAwZThzLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVEVfRVJST1IiOiJJbXBvc3NpYmxlIGRlIG1ldHRyZSBcdTAwZTAgam91ciBsYSBjb25maWd1YXRpb24uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVklORyI6IlNhdXZlZ2FyZGUgZGUgbGEgY29uZmlndWF0aW9uLi4uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVkVfU1VDQ0VTUyI6IkNvbmZpZ3VhdGlvbiBlbnJlZ2lzdHJcdTAwZTkgISBWb3VzIHBvdXJyZXogbGUgY2hhcmdlciB1bHRcdTAwZTlyaWV1cmVtZW50IGVuIHV0aWxpc2FudCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9TQVZFX0VSUk9SIjoiSW1wb3NzaWJsZSBkJiMzOTtlbnJlZ2lzdHJlciBsYSBjb25maWd1cmF0aW9uLiIsIldFQlNJVEVfT0VNRFJfQlROX0xPQUQiOiJDaGFyZ2VyIiwiV0VCU0lURV9PRU1EUl9CVE5fVkVSSUZZIjoiVlx1MDBlOXJpZmllciIsIldFQlNJVEVfT0VNRFJfQlROX1JFU0VORF9DT0RFIjoiUmVudm95ZXIgbGUgY29kZSIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGSUNBVElPTl9DT0RFIjoiTGUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9NT0RBTF9USVRMRSI6IkNoYXJnZXIgdW5lIGNvbmZpZ3VyYXRpb24gZW5yZWdpc3RyXHUwMGU5ZSIsIkVGRkVDVElWRV9SQVRFX0xPTkdfTEFCRUwiOiJ7JFJBVEV9IHRhdXggZWZmZWN0aWYiLCJFRkZFQ1RJVkVfUkFURV9MQUJFTCI6IlRhdXggeyRSQVRFfSIsIldFQl9TSVRFX1BSSUNFX0JSRUFLRE9XTl9MVVhVUllfVEFYX0xBQkVMIjoiVGF4ZSBkZSBsdXhlIn0sInNob3dPZW1JbWFnZXMiOmZhbHNlfSk7CgkJfTsKCgkJaW5pdFN0b3JlKCk7CgoJPC9zY3JpcHQ+CgkJCQkJCTxzdmcgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAwOyBoZWlnaHQ6IDA7IG92ZXJmbG93OiBoaWRkZW47IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgoJCQkJCTxzeW1ib2wgaWQ9Imljb24tY2hldnJvbi1yaWdodCIgdmlld2JveD0iMCAwIDMyMCA1MTIiPgoJCTxwYXRoIGQ9Ik0yODUuNDc2IDI3Mi45NzFMOTEuMTMyIDQ2Ny4zMTRjLTkuMzczIDkuMzczLTI0LjU2OSA5LjM3My0zMy45NDEgMGwtMjIuNjY3LTIyLjY2N2MtOS4zNTctOS4zNTctOS4zNzUtMjQuNTIyLS4wNC0zMy45MDFMMTg4LjUwNSAyNTYgMzQuNDg0IDEwMS4yNTVjLTkuMzM1LTkuMzc5LTkuMzE3LTI0LjU0NC4wNC0zMy45MDFsMjIuNjY3LTIyLjY2N2M5LjM3My05LjM3MyAyNC41NjktOS4zNzMgMzMuOTQxIDBMMjg1LjQ3NSAyMzkuMDNjOS4zNzMgOS4zNzIgOS4zNzMgMjQuNTY4LjAwMSAzMy45NDF6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi1jaGV2cm9uLWRvd24iIHZpZXdib3g9IjAgMCA0NDggNTEyIj4KCQk8cGF0aCBkPSJNMjA3LjAyOSAzODEuNDc2TDEyLjY4NiAxODcuMTMyYy05LjM3My05LjM3My05LjM3My0yNC41NjkgMC0zMy45NDFsMjIuNjY3LTIyLjY2N2M5LjM1Ny05LjM1NyAyNC41MjItOS4zNzUgMzMuOTAxLS4wNEwyMjQgMjg0LjUwNWwxNTQuNzQ1LTE1NC4wMjFjOS4zNzktOS4zMzUgMjQuNTQ0LTkuMzE3IDMzLjkwMS4wNGwyMi42NjcgMjIuNjY3YzkuMzczIDkuMzczIDkuMzczIDI0LjU2OSAwIDMzLjk0MUwyNDAuOTcxIDM4MS40NzZjLTkuMzczIDkuMzcyLTI0LjU2OSA5LjM3Mi0zMy45NDIgMHoiPjwvcGF0aD4KCTwvc3ltYm9sPgk8c3ltYm9sIGlkPSJpY29uLXN0ZWVyaW5nLXdoZWVsIiB2aWV3Ym94PSIwIDAgNTEyIDUxMiI+CgkJPHBhdGggZD0iTTAgMjU2QzAgMTE0LjYgMTE0LjYgMCAyNTYgMEMzOTcuNCAwIDUxMiAxMTQuNiA1MTIgMjU2QzUxMiAzOTcuNCAzOTcuNCA1MTIgMjU2IDUxMkMxMTQuNiA1MTIgMCAzOTcuNCAwIDI1NnpNMTY4LjkgMjg4SDY2LjY1QzgwLjE0IDM2OC40IDE0My42IDQzMS45IDIyNCA0NDUuM1YzNTguOUwxNjguOSAyODh6TTI4OCAzNTguOVY0NDUuM0MzNjguNCA0MzEuOSA0MzEuOSAzNjguNCA0NDUuMyAyODhIMzQzLjFMMjg4IDM1OC45ek0zNTIgMjI0SDQ0NS4zQzQzMC4xIDEzMy4yIDM1MS4xIDY0IDI1NiA2NEMxNjAuOSA2NCA4MS44OSAxMzMuMiA2Ni42NSAyMjRIMTYwTDE2Ny4yIDIwOS43QzE3Mi42IDE5OC44IDE4My43IDE5MiAxOTUuOCAxOTJIMzE2LjJDMzI4LjMgMTkyIDMzOS40IDE5OC44IDM0NC44IDIwOS43TDM1MiAyMjR6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi1jYXIiIHZpZXdib3g9IjAgMCA1MTIgNTEyIj4KCQk8cGF0aCBkPSJNNDk5Ljk5IDE3NmgtNTkuODdsLTE2LjY0LTQxLjZDNDA2LjM4IDkxLjYzIDM2NS41NyA2NCAzMTkuNSA2NGgtMTI3Yy00Ni4wNiAwLTg2Ljg4IDI3LjYzLTEwMy45OSA3MC40TDcxLjg3IDE3NkgxMi4wMUM0LjIgMTc2LTEuNTMgMTgzLjM0LjM3IDE5MC45MWw2IDI0QzcuNyAyMjAuMjUgMTIuNSAyMjQgMTguMDEgMjI0aDIwLjA3QzI0LjY1IDIzNS43MyAxNiAyNTIuNzggMTYgMjcydjQ4YzAgMTYuMTIgNi4xNiAzMC42NyAxNiA0MS45M1Y0MTZjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi0zMmgyNTZ2MzJjMCAxNy42NyAxNC4zMyAzMiAzMiAzMmgzMmMxNy42NyAwIDMyLTE0LjMzIDMyLTMydi01NC4wN2M5Ljg0LTExLjI1IDE2LTI1LjggMTYtNDEuOTN2LTQ4YzAtMTkuMjItOC42NS0zNi4yNy0yMi4wNy00OEg0OTRjNS41MSAwIDEwLjMxLTMuNzUgMTEuNjQtOS4wOWw2LTI0YzEuODktNy41Ny0zLjg0LTE0LjkxLTExLjY1LTE0Ljkxem0tMzUyLjA2LTE3LjgzYzcuMjktMTguMjIgMjQuOTQtMzAuMTcgNDQuNTctMzAuMTdoMTI3YzE5LjYzIDAgMzcuMjggMTEuOTUgNDQuNTcgMzAuMTdMMzg0IDIwOEgxMjhsMTkuOTMtNDkuODN6TTk2IDMxOS44Yy0xOS4yIDAtMzItMTIuNzYtMzItMzEuOVM3Ni44IDI1NiA5NiAyNTZzNDggMjguNzEgNDggNDcuODUtMjguOCAxNS45NS00OCAxNS45NXptMzIwIDBjLTE5LjIgMC00OCAzLjE5LTQ4LTE1Ljk1UzM5Ni44IDI1NiA0MTYgMjU2czMyIDEyLjc2IDMyIDMxLjktMTIuOCAzMS45LTMyIDMxLjl6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi10YWciIHZpZXdib3g9IjAgMCA1MTIgNTEyIj4KCQk8cGF0aCBkPSJNMCAyNTIuMTE4VjQ4QzAgMjEuNDkgMjEuNDkgMCA0OCAwaDIwNC4xMThhNDggNDggMCAwIDEgMzMuOTQxIDE0LjA1OWwyMTEuODgyIDIxMS44ODJjMTguNzQ1IDE4Ljc0NSAxOC43NDUgNDkuMTM3IDAgNjcuODgyTDI5My44MjMgNDk3Ljk0MWMtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMTguNzQ1LTY3Ljg4MiAwTDE0LjA1OSAyODYuMDU5QTQ4IDQ4IDAgMCAxIDAgMjUyLjExOHpNMTEyIDY0Yy0yNi41MSAwLTQ4IDIxLjQ5LTQ4IDQ4czIxLjQ5IDQ4IDQ4IDQ4IDQ4LTIxLjQ5IDQ4LTQ4LTIxLjQ5LTQ4LTQ4LTQ4eiI+PC9wYXRoPgoJPC9zeW1ib2w+CTxzeW1ib2wgaWQ9Imljb24taGFuZC1ob2xkaW5nLXVzZCIgdmlld2JveD0iMCAwIDU3NiA1MTIiPgoJCTxwYXRoIGQ9Ik0yNzEuMDYsMTQ0LjNsNTQuMjcsMTQuM2E4LjU5LDguNTksMCwwLDEsNi42Myw4LjFjMCw0LjYtNC4wOSw4LjQtOS4xMiw4LjRoLTM1LjZhMzAsMzAsMCwwLDEtMTEuMTktMi4yYy01LjI0LTIuMi0xMS4yOC0xLjctMTUuMywybC0xOSwxNy41YTExLjY4LDExLjY4LDAsMCwwLTIuMjUsMi42NiwxMS40MiwxMS40MiwwLDAsMCwzLjg4LDE1Ljc0LDgzLjc3LDgzLjc3LDAsMCwwLDM0LjUxLDExLjVWMjQwYzAsOC44LDcuODMsMTYsMTcuMzcsMTZoMTcuMzdjOS41NSwwLDE3LjM4LTcuMiwxNy4zOC0xNlYyMjIuNGMzMi45My0zLjYsNTcuODQtMzEsNTMuNS02My0zLjE1LTIzLTIyLjQ2LTQxLjMtNDYuNTYtNDcuN0wyODIuNjgsOTcuNGE4LjU5LDguNTksMCwwLDEtNi42My04LjFjMC00LjYsNC4wOS04LjQsOS4xMi04LjRoMzUuNkEzMCwzMCwwLDAsMSwzMzIsODMuMWM1LjIzLDIuMiwxMS4yOCwxLjcsMTUuMy0ybDE5LTE3LjVBMTEuMzEsMTEuMzEsMCwwLDAsMzY4LjQ3LDYxYTExLjQzLDExLjQzLDAsMCwwLTMuODQtMTUuNzgsODMuODIsODMuODIsMCwwLDAtMzQuNTItMTEuNVYxNmMwLTguOC03LjgyLTE2LTE3LjM3LTE2SDI5NS4zN0MyODUuODIsMCwyNzgsNy4yLDI3OCwxNlYzMy42Yy0zMi44OSwzLjYtNTcuODUsMzEtNTMuNTEsNjNDMjI3LjYzLDExOS42LDI0NywxMzcuOSwyNzEuMDYsMTQ0LjNaTTU2NS4yNywzMjguMWMtMTEuOC0xMC43LTMwLjItMTAtNDIuNiwwTDQzMC4yNyw0MDJhNjMuNjQsNjMuNjQsMCwwLDEtNDAsMTRIMjcyYTE2LDE2LDAsMCwxLDAtMzJoNzguMjljMTUuOSwwLDMwLjcxLTEwLjksMzMuMjUtMjYuNmEzMS4yLDMxLjIsMCwwLDAsLjQ2LTUuNDZBMzIsMzIsMCwwLDAsMzUyLDMyMEgxOTJhMTE3LjY2LDExNy42NiwwLDAsMC03NC4xLDI2LjI5TDcxLjQsMzg0SDE2QTE2LDE2LDAsMCwwLDAsNDAwdjk2YTE2LDE2LDAsMCwwLDE2LDE2SDM3Mi43N2E2NCw2NCwwLDAsMCw0MC0xNEw1NjQsMzc3YTMyLDMyLDAsMCwwLDEuMjgtNDguOVoiPjwvcGF0aD4KCTwvc3ltYm9sPgk8c3ltYm9sIGlkPSJpY29uLXRvb2xzIiB2aWV3Ym94PSIwIDAgNTEyIDUxMiI+CgkJPHBhdGggZD0iTTUwMS4xIDM5NS43TDM4NCAyNzguNmMtMjMuMS0yMy4xLTU3LjYtMjcuNi04NS40LTEzLjlMMTkyIDE1OC4xVjk2TDY0IDAgMCA2NGw5NiAxMjhoNjIuMWwxMDYuNiAxMDYuNmMtMTMuNiAyNy44LTkuMiA2Mi4zIDEzLjkgODUuNGwxMTcuMSAxMTcuMWMxNC42IDE0LjYgMzguMiAxNC42IDUyLjcgMGw1Mi43LTUyLjdjMTQuNS0xNC42IDE0LjUtMzguMiAwLTUyLjd6TTMzMS43IDIyNWMyOC4zIDAgNTQuOSAxMSA3NC45IDMxbDE5LjQgMTkuNGMxNS44LTYuOSAzMC44LTE2LjUgNDMuOC0yOS41IDM3LjEtMzcuMSA0OS43LTg5LjMgMzcuOS0xMzYuNy0yLjItOS0xMy41LTEyLjEtMjAuMS01LjVsLTc0LjQgNzQuNC02Ny45LTExLjNMMzM0IDk4LjlsNzQuNC03NC40YzYuNi02LjYgMy40LTE3LjktNS43LTIwLjItNDcuNC0xMS43LTk5LjYuOS0xMzYuNiAzNy45LTI4LjUgMjguNS00MS45IDY2LjEtNDEuMiAxMDMuNmw4Mi4xIDgyLjFjOC4xLTEuOSAxNi41LTIuOSAyNC43LTIuOXptLTEwMy45IDgybC01Ni43LTU2LjdMMTguNyA0MDIuOGMtMjUgMjUtMjUgNjUuNSAwIDkwLjVzNjUuNSAyNSA5MC41IDBsMTIzLjYtMTIzLjZjLTcuNi0xOS45LTkuOS00MS42LTUtNjIuN3pNNjQgNDcyYy0xMy4yIDAtMjQtMTAuOC0yNC0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMuMi0xMC43IDI0LTI0IDI0eiI+PC9wYXRoPgoJPC9zeW1ib2w+CTxzeW1ib2wgaWQ9Imljb24tbWFwLW1hcmtlci1hbHQiIHZpZXdib3g9IjAgMCAzODQgNTEyIj4KCQk8cGF0aCBkPSJNMTcyLjI2OCA1MDEuNjdDMjYuOTcgMjkxLjAzMSAwIDI2OS40MTMgMCAxOTIgMCA4NS45NjEgODUuOTYxIDAgMTkyIDBzMTkyIDg1Ljk2MSAxOTIgMTkyYzAgNzcuNDEzLTI2Ljk3IDk5LjAzMS0xNzIuMjY4IDMwOS42Ny05LjUzNSAxMy43NzQtMjkuOTMgMTMuNzczLTM5LjQ2NCAwek0xOTIgMjcyYzQ0LjE4MyAwIDgwLTM1LjgxNyA4MC04MHMtMzUuODE3LTgwLTgwLTgwLTgwIDM1LjgxNy04MCA4MCAzNS44MTcgODAgODAgODB6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi1nbG9iZSIgdmlld2JveD0iMCAwIDQ5NiA1MTIiPgoJCTxwYXRoIGQ9Ik0zMzYuNSAxNjBDMzIyIDcwLjcgMjg3LjggOCAyNDggOHMtNzQgNjIuNy04OC41IDE1MmgxNzd6TTE1MiAyNTZjMCAyMi4yIDEuMiA0My41IDMuMyA2NGgxODUuM2MyLjEtMjAuNSAzLjMtNDEuOCAzLjMtNjRzLTEuMi00My41LTMuMy02NEgxNTUuM2MtMi4xIDIwLjUtMy4zIDQxLjgtMy4zIDY0em0zMjQuNy05NmMtMjguNi02Ny45LTg2LjUtMTIwLjQtMTU4LTE0MS42IDI0LjQgMzMuOCA0MS4yIDg0LjcgNTAgMTQxLjZoMTA4ek0xNzcuMiAxOC40QzEwNS44IDM5LjYgNDcuOCA5Mi4xIDE5LjMgMTYwaDEwOGM4LjctNTYuOSAyNS41LTEwNy44IDQ5LjktMTQxLjZ6TTQ4Ny40IDE5MkgzNzIuN2MyLjEgMjEgMy4zIDQyLjUgMy4zIDY0cy0xLjIgNDMtMy4zIDY0aDExNC42YzUuNS0yMC41IDguNi00MS44IDguNi02NHMtMy4xLTQzLjUtOC41LTY0ek0xMjAgMjU2YzAtMjEuNSAxLjItNDMgMy4zLTY0SDguNkMzLjIgMjEyLjUgMCAyMzMuOCAwIDI1NnMzLjIgNDMuNSA4LjYgNjRoMTE0LjZjLTItMjEtMy4yLTQyLjUtMy4yLTY0em0zOS41IDk2YzE0LjUgODkuMyA0OC43IDE1MiA4OC41IDE1MnM3NC02Mi43IDg4LjUtMTUyaC0xNzd6bTE1OS4zIDE0MS42YzcxLjQtMjEuMiAxMjkuNC03My43IDE1OC0xNDEuNmgtMTA4Yy04LjggNTYuOS0yNS42IDEwNy44LTUwIDE0MS42ek0xOS4zIDM1MmMyOC42IDY3LjkgODYuNSAxMjAuNCAxNTggMTQxLjYtMjQuNC0zMy44LTQxLjItODQuNy01MC0xNDEuNmgtMTA4eiI+PC9wYXRoPgoJPC9zeW1ib2w+CgkJCTwvc3ZnPgoKCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImlzTW9iaWxlIiBuYW1lPSJpc01vYmlsZSIgdmFsdWU9IjEiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU2l0ZXNfUGFnZV9HZW5lcmFsX01lbnVfQlROIiB2YWx1ZT0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCgkJCTxoZWFkZXIgY2xhc3M9Im1vYmlsZS1oZWFkZXIgZmxleC1ib3ggZmxleC1iZXR3ZWVuIGFsaWduLWNlbnRlciAtLWZzMiB0aGluIiBoaWRkZW49IjEiPgoJCQkJCgkJCTxib3gtbGMgY2xhc3M9ImJ1cmdlci1tZW51LWNvbnRhaW5lciAtcGgiPgoJCQkJPGxhYmVsIGZvcj0iYm1fdG9nZ2xlIj48L2xhYmVsPgoJCQkJPGlucHV0IGlkPSJibV90b2dnbGUiIHR5cGU9ImNoZWNrYm94IiBoaWRkZW4+CgkJCQk8ZGl2IGlkPSJidXJnZXItbWVudS1idXR0b24iIGNsYXNzPSJzdGFjay1sYyBidXJnZXItbWVudS1idXR0b24gLS1zLTIiPgoJCQkJCTxzcGFuIGNsYXNzPSJidXJnZXJfdG9wIj48L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImJ1cmdlcl9taWRkbGUiPjwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iYnVyZ2VyX2JvdHRvbSI+PC9zcGFuPgoJCQkJPC9kaXY+CgoJCQkJPGFzaWRlIGNsYXNzPSJidXJnZXItbmF2Ij4KCQkJCQkJCQk8bmF2PgoJCQkJPHVsPgoJCQkJCQkJCQk8bGkgY2xhc3M9IiIgaHJlZj0iP3BhdGg9Ij4KCQkJCQkKCQkJCQk8YSBjbGFzcz0iTkVXICAtYm9sZCAgbWVudS1pdGVtIGZsZXgtYm94IiBocmVmPSI\/cGF0aD0vbmV1ZnMvbm91dmVhdS5odG1sIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tc3RlZXJpbmctd2hlZWwiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0Ij5ORVVGUzwvc3Bhbj4KCQkJCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtMyIgYXJpYS1sYWJlbD0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPgoJCQkJCTwvc3Bhbj4KCQkJCQk8L2E+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgoJCQkJCQk8c3RhY2stbGMgaWQ9Iml0ZW1fTkVXIiBjbGFzcz0iLS1zLTkiPgoJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgTkVXX0JVSUxEUFJJQ0UiIGhyZWY9Ij9wYXRoPS9jb25maWd1cmF0aW9uLWV0LXByaXgvY29uZmlndXJhdGlvbi5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj7DiXF1aXBlciBldCBvYnRlbmlyIHVuIHByaXg8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBORVdJTlYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9pbnZlbnRhaXJlL3JlY2hlcmNoZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5JbnZlbnRhaXJlIE5ldWYgKDYzKTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IE5FV19TRURBTiIgaHJlZj0iP3BhdGg9L25ldWZzL2F1dG9zLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkJlcmxpbmVzIC8gw4AgaGF5b25zPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgTkVXX1NVViIgaHJlZj0iP3BhdGg9L25ldWZzL1ZVUy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5WVVMgLyBNdWx0aXNlZ21lbnRzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgTkVXX1RSVUNLIiBocmVmPSI\/cGF0aD0vbmV1ZnMvY2FtaW9ucy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5DYW1pb25zPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgTkVXX1BIRVYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9QSEVWLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkh5YnJpZGVzIHJlY2hhcmdlYWJsZXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBORVdfSFlCUklEIiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHlicmlkZXMuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+SHlicmlkZXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBORVdfRUxFQ1RSSUMiIGhyZWY9Ij9wYXRoPS9uZXVmcy9lbGVjdHJpcXVlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPsOJbGVjdHJpcXVlczwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IE5FV19DT05WRVJUSUJMRSIgaHJlZj0iP3BhdGg9L25ldWZzL2RlY2Fwb3RhYmxlcy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Ew6ljYXBvdGFibGVzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgR1BfODg4ZDIwZTUxZjBlZTQ0NSIgaHJlZj0iP3BhdGg9L2FwcGxpY2F0aW9uLWZvcmQuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+QXBwbGljYXRpb24gRm9yZDwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEdQXzJiN2M0NTE0NDI0OTY2NSIgaHJlZj0iP3BhdGg9L3RlY2hub2xvZ2llLWZvcmQuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+VGVjaG5vbG9naWUgaW50ZWxsaWdlbnRlIEZvcmQ8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBHUF9kNGJkNTBlYThiOTA5OWIiIGhyZWY9Ij9wYXRoPS9yZWNvbXBlbnNlcy1mb3JkLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlLDqWNvbXBlbnNlcyBGb3JkPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CgkJCQkJCTwvc3RhY2stbGM+CgkJCQkJPC9kaXY+CgkJCQk8L2xpPgoKCQkJCQoJCQkJPGxpIGNsYXNzPSIiPgoJCQkJCQoJCQkJCTxhIGNsYXNzPSJVU0VEICAtYm9sZCAgbWVudS1pdGVtIGZsZXgtYm94IiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiIHRhcmdldD0iX3RvcCIgb25jbGljaz0iIj4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jYXIiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0IiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJVU0VEIj5PQ0NBU0lPTjwvc3Bhbj4KCQkJCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtMyIgYXJpYS1sYWJlbD0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPgoJCQkJCTwvc3Bhbj4KCQkJCQk8L2E+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgoJCQkJCQk8c3RhY2stbGMgaWQ9Iml0ZW1fVVNFRCIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFVTRURfQUxMSU5WIiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vcmVjaGVyY2hlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkludmVudGFpcmUgQ29tcGxldCAoMSk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VEX0NBVF9TVVYiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi90eXBlL1ZVUy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5WVVMgJmFtcDsgTXVsdGlzZWdtZW50cyAoMSk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VEX0NBVF9FTEVDVFJJQyIgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3R5cGUvRWxlY3RyaXF1ZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj7DiWxlY3RyaXF1ZXMgKDEpPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVVNFRF9PVEhFUiIgaHJlZj0iP3BhdGg9L29jY2FzaW9uL3JlY2hlcmNoZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5BdXRyZXMgbW9kw6hsZXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VEMSIgaHJlZj0iP3BhdGg9L29jY2FzaW9uL0ZvcmQtTXVzdGFuZ19NYWNoX0UuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+Rm9yZCBNdXN0YW5nIE1hY2gtRSAoMSk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4KCQkJCQkJPC9zdGFjay1sYz4KCQkJCQk8L2Rpdj4KCQkJCTwvbGk+CgoJCQkJCgkJCQk8bGkgY2xhc3M9IiI+CgkJCQkJCgkJCQkJPGEgY2xhc3M9IlBST01PICAtYm9sZCAgbWVudS1pdGVtIGZsZXgtYm94IiBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tdGFnIj48L3VzZT48L3N2Zz4KCQkJCQkJPHNwYW4gY2xhc3M9InNocmluay1ncm93IHNrZWxldG9uLXR4dCI+T0ZGUkVTPC9zcGFuPgoJCQkJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSJtZW51RXhwYW5kIC1wIC0tcy0zIiBhcmlhLWxhYmVsPSJNZW51IGTDqXJvdWxhbnQiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tZG93biI+PC91c2U+PC9zdmc+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InN1Ym1lbnVJdGVtQ29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CgkJCQkJCTxzdGFjay1sYyBpZD0iaXRlbV9QUk9NTyIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFBST01PX01BTlVGQUNUVVJFUiIgaHJlZj0iP3BhdGg9L3Byb21vdGlvbnMuaHRtbCNtYW51ZmFjdHVyZXIiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkluY2l0YXRpZnMgRm9yZDwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFBST01PX09FTVJFQkFURVNfRk9SRCIgaHJlZj0iP3BhdGg9L3Byb21vdGlvbnMuaHRtbCNmb3JkcmViYXRlcyIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+TW9kw6hsZXMgRm9yZCBlbiByYWJhaXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4KCQkJCQkJPC9zdGFjay1sYz4KCQkJCQk8L2Rpdj4KCQkJCTwvbGk+CgoJCQkJCgkJCQk8bGkgY2xhc3M9IiI+CgkJCQkJCgkJCQkJPGEgY2xhc3M9IkZJTkFOQ0UgIC1ib2xkICBtZW51LWl0ZW0gZmxleC1ib3giIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9maW5hbmNlbWVudC5odG1sIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24taGFuZC1ob2xkaW5nLXVzZCI+PC91c2U+PC9zdmc+CgkJCQkJCTxzcGFuIGNsYXNzPSJzaHJpbmstZ3JvdyBza2VsZXRvbi10eHQiPkZJTkFOQ0VNRU5UPC9zcGFuPgoJCQkJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSJtZW51RXhwYW5kIC1wIC0tcy0zIiBhcmlhLWxhYmVsPSJNZW51IGTDqXJvdWxhbnQiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tZG93biI+PC91c2U+PC9zdmc+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InN1Ym1lbnVJdGVtQ29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CgkJCQkJCTxzdGFjay1sYyBpZD0iaXRlbV9GSU5BTkNFIiBjbGFzcz0iLS1zLTkiPgoJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgNzc3OGY1N2YtZjVkOC1jYTg5LWViNzUtNSIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2ZpbmFuY2VtZW50Lmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkRlbWFuZGUgZGUgY3LDqWRpdDwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IDI1YjdhNTk3LWNmMmQtNmFjOS02YTNiLTQiIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy92ZWhpY3VsZS1lY2hhbmdlLW5ldWYuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+VmFsZXVyIGQnw6ljaGFuZ2U8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBlZTU5YjU4Zi02N2MzLTQ0YmUtNmVjMS05IiBocmVmPSI\/cGF0aD0vb2NjYXNpb24vY2FsY3VsYXRyaWNlLXByZXQtYXV0by5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Fc3RpbWF0ZXVyIGRlIHBhaWVtZW50czwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgoJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCTwvZGl2PgoJCQkJPC9saT4KCgkJCQkKCQkJCTxsaSBjbGFzcz0iIj4KCQkJCQkKCQkJCQk8YSBjbGFzcz0iU0VSVklDRSAgLWJvbGQgIG1lbnUtaXRlbSBmbGV4LWJveCIgaHJlZj0iP3BhdGg9L3NlcnZpY2VzLWZvcmQuaHRtbCIgdGFyZ2V0PSJfdG9wIiBvbmNsaWNrPSIiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLXRvb2xzIj48L3VzZT48L3N2Zz4KCQkJCQkJPHNwYW4gY2xhc3M9InNocmluay1ncm93IHNrZWxldG9uLXR4dCIgZGF0YS1tZW51LXRyYW5zbGF0ZT0iU0VSVklDRSI+U0VSVklDRSAmYW1wOyBQScOIQ0VTPC9zcGFuPgoJCQkJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSJtZW51RXhwYW5kIC1wIC0tcy0zIiBhcmlhLWxhYmVsPSJNZW51IGTDqXJvdWxhbnQiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tZG93biI+PC91c2U+PC9zdmc+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InN1Ym1lbnVJdGVtQ29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CgkJCQkJCTxzdGFjay1sYyBpZD0iaXRlbV9TRVJWSUNFIiBjbGFzcz0iLS1zLTkiPgoJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgR0FSQUdFIiBocmVmPSI\/cGF0aD0vc2VydmljZXMuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+RW50cmV0aWVuIGV0IG3DqWNhbmlxdWU8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBQSUVDRVMiIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9jb21tYW5kZS1waWVjZXMtYWNjZXNzb2lyZXMtYXV0b21vYmlsZXMuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+UGnDqGNlcyAmYW1wOyBBY2Nlc3NvaXJlczwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEFQUE9JTlQiIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy9yZW5kZXotdm91cy1hdS1zZXJ2aWNlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlJlbmRlei12b3VzIGF1IHNlcnZpY2U8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBUSVJFUyIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2NvbW1hbmRlLWRlLXBuZXVzLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkNvbW1hbmRleiB2b3MgcG5ldXMgaWNpITwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEJPRFkiIGhyZWY9Ij9wYXRoPS9jYXJyb3NzZXJpZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5DYXJyb3NzZXJpZTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEdQX2Y5MGQ1YmY3MjY3ZTg5NDAiIGhyZWY9Ij9wYXRoPS9mb3JkLW1haW50ZW5hbmNlLXBsYW4tZnIuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+UHJvZ3JhbW1lcyBGb3JkIFByb3RlY3Q8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4KCQkJCQkJPC9zdGFjay1sYz4KCQkJCQk8L2Rpdj4KCQkJCTwvbGk+CgoJCQkJCgkJCQk8bGkgY2xhc3M9IiI+CgkJCQkJCgkJCQkJPGEgY2xhc3M9IkNPTlRBQ1QgIC1ib2xkICBtZW51LWl0ZW0gZmxleC1ib3giIGhyZWY9Ij9wYXRoPS9jb250YWN0ZXpub3VzLmh0bWwiIHRhcmdldD0iX3RvcCIgb25jbGljaz0iIj4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1tYXAtbWFya2VyLWFsdCI+PC91c2U+PC9zdmc+CgkJCQkJCTxzcGFuIGNsYXNzPSJzaHJpbmstZ3JvdyBza2VsZXRvbi10eHQiPkNPTlRBQ1RFWi1OT1VTPC9zcGFuPgoJCQkJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSJtZW51RXhwYW5kIC1wIC0tcy0zIiBhcmlhLWxhYmVsPSJNZW51IGTDqXJvdWxhbnQiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tZG93biI+PC91c2U+PC9zdmc+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InN1Ym1lbnVJdGVtQ29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CgkJCQkJCTxzdGFjay1sYyBpZD0iaXRlbV9DT05UQUNUIiBjbGFzcz0iLS1zLTkiPgoJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgQ09OVEFDVFVTIiBocmVmPSI\/cGF0aD0vY29udGFjdGV6bm91cy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj7DgCBwcm9wb3M8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBKT0JPRkZFUiIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2VtcGxvaXMtYXV0b21vYmlsZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5DYXJyacOocmVzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CgkJCQkJCTwvc3RhY2stbGM+CgkJCQkJPC9kaXY+CgkJCQk8L2xpPgoKCQkJCQoJCQkJPGxpIGNsYXNzPSJtZW51LWdyb3VwIj4KCQkJCQkKCQkJCQk8YSBjbGFzcz0iTEFOR1VBR0UgIC1ib2xkICBtZW51LWl0ZW0gZmxleC1ib3giIGhyZWY9Ij9wYXRoPS9lbmcvIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tZ2xvYmUiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0Ij5FbmdsaXNoPC9zcGFuPgoJCQkJCQkKCQkJCQk8L2E+CgkJCQkJCgkJCQk8L2xpPgoKCQkJCQoKCQkJCTwvdWw+CgkJCTwvbmF2PgoJCQkJPC9hc2lkZT4KCQkJPC9ib3gtbGM+CgoKCQkJPHN0YWNrLWxjIGNsYXNzPSJsb2dvLWFjdGlvbiBzaHJpbmstZ3JvdyBhbGlnbi1jZW50ZXIgZmxleC1ldmVubHkiPgoJCQkJPGEgY2xhc3M9ImxvZ28iIGhyZWY9Ij9wYXRoPS8iIGl0ZW1wcm9wPSJ1cmwiPgoJCQkJCTxpbWcgYWx0PSJMb2dvIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1zY29kZXJlZj0iNTE5NzgtVCIgc3JjPSJodHRwczovL3NvcmVsLXRyYWN5Zm9yZC5jYS8vaW1hZ2VzL0xvZ29Nb2JpbGUvc29yZWwtdHJhY3ktZm9yZC1sb2dvLndlYnAiIHN0eWxlPSJ3aWR0aDogMTUwcHg7IGhlaWdodDogMzBweDsiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJCQoJCQk8L3N0YWNrLWxjPgoJCQk8ZGl2IHN0eWxlPSJwYWRkaW5nOiAwIDEwcHg7Ij4KCQkJCQoJCQk8L2Rpdj4KCgkJCTxhIGNsYXNzPSJwaG9uZS1hY3Rpb24iIHRpdGxlPSJDb250YWN0ZXotbm91cyIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyIgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgb25jbGljaz0ic2hvd1Bob25lUG9wdXAoKSI+CgkJCQk8c3ZnIGNsYXNzPSIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld2JveD0iMCAwIDUxMiA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik00OTcuMzkgMzYxLjhsLTExMi00OGEyNCAyNCAwIDAgMC0yOCA2LjlsLTQ5LjYgNjAuNkEzNzAuNjYgMzcwLjY2IDAgMCAxIDEzMC42IDIwNC4xMWw2MC42LTQ5LjZhMjMuOTQgMjMuOTQgMCAwIDAgNi45LTI4bC00OC0xMTJBMjQuMTYgMjQuMTYgMCAwIDAgMTIyLjYuNjFsLTEwNCAyNEEyNCAyNCAwIDAgMCAwIDQ4YzAgMjU2LjUgMjA3LjkgNDY0IDQ2NCA0NjRhMjQgMjQgMCAwIDAgMjMuNC0xOC42bDI0LTEwNGEyNC4yOSAyNC4yOSAwIDAgMC0xNC4wMS0yNy42eiI+PC9wYXRoPjwvc3ZnPgoJCQkJCgkJCTwvYT4KCgkJCTwvaGVhZGVyPgkKCQkJCgkJCTxkaXYgaWQ9InByb21vVG9wQnRuIj48IS0tIHNlbV9ib29zdCBvbmx5IC0tPjwvZGl2PgoKCQkJPGRpdiBpZD0icGhvbmVOdW1iZXJEaXYiIGNsYXNzPSJyZXZlYWwtbW9kYWwiIHN0eWxlPSJ3aWR0aDo4MCU7bWFyZ2luLWxlZnQ6MHB4O2xlZnQ6NSU7cGFkZGluZzo1JTt6LWluZGV4OiA5OTk5OTk5O3Zpc2liaWxpdHk6aGlkZGVuO3RvcDogLTEwMDBweDtwb3NpdGlvbjogYWJzb2x1dGU7Ij48L2Rpdj4KCgkJCQoJCQkKCQkJPCEtLSBPTzo6NmExNmQyY2Y2ZDE3NTRmY2M3N2U2MWYyNTQ4MDE0NWEgLS0+CgkJCTwhLS1lbmQgdG9wIC0tPgoKCiAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgICAgICA8ZGl2IGlkPSJuZXdjYXJDb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBNYWluQm94TGF5ZXIiPgogICAgICAgIDwhLS0gSU5JVElBTCBMT0NBVElPTkJBUiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBPdXRlckJveExheWVyIj4KICAgICAgICAJPGRpdiBjbGFzcz0iaGVhZGVySW1nIj4KDTwhLS0gVFJBREUgSU4gQkFSIERJU0FCTEVEIC0tPgoNPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0idW5kZXJCYW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIE91dGVyQm94TGF5ZXIiPgogICAgICAgIAk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CiAgICAgICAgCQk8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIj48aDEgY2xhc3M9ImRlZmF1bHQgSDFfMjA4NyAiPjxkaXY+PGRpdj5Gb3JkIG5ldWZzIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB2ZW5kcmXCoDwvZGl2PjxkaXY+w6AgU29yZWwtVHJhY3nCoDwvZGl2PjwvZGl2PjwvaDE+PC9kaXY+PGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciI+PC9kaXY+CQkJCQkJCQk8IS0tIE9QRU4gTU9CSUxFIEZJTFRFUiBCVVRUT04gKCcuX19MSU5FX18uJyktLT4KCQkJCTxkaXYgY2xhc3M9ImZpbHRlclRvZ2dsZVdyYXBwZXIiPgoJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0idG9nZ2xlRmlsdGVyQnRuIiBjbGFzcz0iZmlsdGVyVG9nZ2xlQnRuIj5GaWx0cmVyPC9idXR0b24+CgkJCQk8L2Rpdj4KCQkJCTwhLS0gQ0xPU0UgTU9CSUxFIEZJTFRFUiBCVVRUT04gKCcuX19MSU5FX18uJyktLT4KCQkJCTxkaXYgaWQ9InNpZGVTaWRlYmFyRmlsdGVyIiBjbGFzcz0ic2lkZVNpZGViYXIiPgoJCQkJCTxkaXYgY2xhc3M9InNpZGViYXJIZWFkZXIiPgoJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZGaWx0ZXJCb3hUaXRsZSI+CgkJCQkJCQlSYWZmaW5leiB2b3RyZSByZWNoZXJjaGUgOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJjbG9zZVNpZGViYXJCdG4iIGNsYXNzPSJjbG9zZUJ0biI+w5c8L2J1dHRvbj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGlkPSJmaWx0ZXJDb250ZW50Ij4KCQkJCQkJPGRpdiBpZD0iZmlsdGVyTWFpbkJveCIgY2xhc3M9IklubmVyQm94TGF5ZXIgYmxhY2stdGV4dCI+CgkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyT3V0ZXJCb3giPgoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5UeXBlIGRlIGNhcnJvc3NlcmllPC9kaXY+PHVsIGNsYXNzPSIiPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX2NhciIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJjYXIiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19jYXIiPkF1dG88L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfdHJ1Y2siIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0idHJ1Y2siIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc190cnVjayI+Q2FtaW9uPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX2NvbW1lcmNpYWwiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iY29tbWVyY2lhbCIgY2hlY2tlZD48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4gY2F0ZWdvcnkiIGZvcj0ic2hvd0NsYXNzX2NvbW1lcmNpYWwiPkNvbW1lcmNpYWw8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBjbGFzcz0iZmlsdGVyQ2hlY2sgY2F0ZWdvcnkiIGlkPSJzaG93Q2xhc3NfY29udmVydGlibGUiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iY29udmVydGlibGUiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19jb252ZXJ0aWJsZSI+RMOpY2Fwb3RhYmxlPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX3N1diIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSJzdXYiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIGNhdGVnb3J5IiBmb3I9InNob3dDbGFzc19zdXYiPlZVUzwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPk1vdHJpY2l0w6k8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMyIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMyIgZGF0YS1kcml2ZXRyYWluPSJBV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMyIgY2xhc3M9ImZpbHRlclNwYW4iPlF1YXRyZSByb3VlcyBtb3RyaWNlczwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2sxIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZHJpdmV0cmFpbiIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBkYXRhLWRyaXZldHJhaW49IkZXRCIgY2hlY2tlZD48bGFiZWwgZm9yPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2sxIiBjbGFzcz0iZmlsdGVyU3BhbiI+VHJhY3Rpb24gYXZhbnQ8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMiIgY2xhc3M9ImZpbHRlckNoZWNrIGRyaXZldHJhaW4iIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iMiIgZGF0YS1kcml2ZXRyYWluPSJSV0QiIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZmlsdGVyRHJpdmVUcmFpbkNoZWNrMiIgY2xhc3M9ImZpbHRlclNwYW4iPlByb3B1bHNpb24gYXJyacOocmU8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlR5cGUgZGUgY2FyYnVyYW50PC9kaXY+PHVsIGNsYXNzPSIiPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iZGllc2VsIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2syIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjIiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrMiIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQlEaWVzZWwKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9ImVsZWN0cmljIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2szIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjMiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrMyIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQnDiWxlY3RyaXF1ZQoJCTwvbGFiZWw+Cgk8L2xpPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iZ2FzIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2sxIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrMSIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQlFc3NlbmNlCgkJPC9sYWJlbD4KCTwvbGk+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJoeWJyaWQiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazQiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iNCIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2s0IiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUh5YnJpZGUKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9InBoZXYiIGNsYXNzPSJmaWx0ZXJDaGVjayBmdWVsdHlwZSIgaWQ9ImZpbHRlckVzc2VuY2VDaGVjazUiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iNSIgY2hlY2tlZD4KCQk8bGFiZWwgZm9yPSJmaWx0ZXJFc3NlbmNlQ2hlY2s1IiBjbGFzcz0iZmlsdGVyU3BhbiI+CgkJCUh5YnJpZGUgcmVjaGFyZ2VhYmxlCgkJPC9sYWJlbD4KCTwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+PGRpdiBjbGFzcz0iZGl2RmlsdGVyVGl0bGUiPlRyaWVyIHBhcjwvZGl2Pjx1bCBjbGFzcz0iIj48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb01vZGxlIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0ibW9kZWwiIGNoZWNrZWQ+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvTW9kbGUiPk1vZMOobGU8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9QcmljZSIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9InByaWNlIj48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4iIGZvcj0icmFkaW9QcmljZSI+UHJpeDwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJyYWRpb0NvbnNvIiBjbGFzcz0icmFkaW9Tb3J0IiB0eXBlPSJyYWRpbyIgbmFtZT0ic29ydGJ5IiB2YWx1ZT0iY29uc28iPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiIgZm9yPSJyYWRpb0NvbnNvIj5MLzEwMGttPC9sYWJlbD48L2xpPjwvdWw+PC9kaXY+CQkJCQoJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2UHJpY2VSYW5nZVNsaWRlciIgaWQ9InByaWNlUmFuZ2VTbGlkZXJGaWx0ZXJDb250YWluZXIiPgoJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyVGl0bGUiPgoJCQkJCUZvdXJjaGV0dGUgZGUgcHJpeAoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiByYW5nZS1zbGlkZXItcHJpY2VzIj4KCQkJCQk8c3BhbiBjbGFzcz0icHJpY2UtbWluIGZvcm1hdC1wcmljZSI+PC9zcGFuPsKgwqDDoMKgwqA8c3BhbiBjbGFzcz0icHJpY2UtbWF4IGZvcm1hdC1wcmljZSI+PC9zcGFuPgoJCQkJPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMSByYW5nZS1zbGlkZXItbGVmdCI+TWluPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuOSByYW5nZS1zbGlkZXIiIGF0dHItcHJpY2UtbWluPSIzNTI0NCIgYXR0ci1wcmljZS1tYXg9Ijg5Mjk1Ij48L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xIHJhbmdlLXNsaWRlci1yaWdodCI+TWF4PC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJCQkJCQkJCQk8L2Rpdj4KCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJPC9kaXY+CgkJCQkJCQk8L2Rpdj4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj48IS0tIE9QRU4gQ0FURUdPUklFU0JPWFdSQVBQRVIgKDIxMzEpLS0+PGRpdiBjbGFzcz0iSW5uZXJCb3hMYXllciBkaXZDYXRlZ29yaWVzQm94V3JhcHBlciI+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCkgLS0+PGRpdiBpZD0iY2xhc3NjYXJfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5BdXRvcyBuZXV2ZXMgRm9yZCAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBTb3JlbC1UcmFjeTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfY2FyIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8xIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NdXN0YW5nIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MSAzMjU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOCA5MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDMyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTk0NCw0NjE5NDUsNDYxOTQ2LDQ2MTk0Nyw0NjE5NDgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNdXN0YW5nIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NdXN0YW5nLzIwMjUvNDYxOTQ0L0JsYWNrL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NdXN0YW5nLzIwMjUvNDYxOTQ0L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2MTk0NCwidGl0bGUiOiJGb3JkIE11c3RhbmcgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLU11c3RhbmctMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NdXN0YW5nIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MSA0MjU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOCA5MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDQyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3OTUzNiw0Nzk1MzcsNDc5NTM4LDQ3OTUzOSw0Nzk1NDAsNDg2NzYxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTXVzdGFuZyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTXVzdGFuZy8yMDI2LzQ3OTUzNi9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0Nzk1MzYsInRpdGxlIjoiRm9yZCBNdXN0YW5nIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1NdXN0YW5nLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIyMDIpLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCkgLS0+PGRpdiBpZD0iY2xhc3Njb252ZXJ0aWJsZV9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkTDqWNhcG90YWJsZXMgbmV1dmVzIEZvcmQgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgU29yZWwtVHJhY3k8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2NvbnZlcnRpYmxlIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbnZlcnRpYmxlXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfQ29udmVydGlibGUtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ4IDIyNTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ1IDgzMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDggMjI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgQ29udmVydGlibGUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxOTQ5LDQ2MTk1MCw0NjE5NTEiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIETDqWNhcG90YWJsZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX0NvbnZlcnRpYmxlLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL011c3RhbmdfQ29udmVydGlibGUvMjAyNS80NjE5NDkvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb252ZXJ0aWJsZV8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIETDqWNhcG90YWJsZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX0NvbnZlcnRpYmxlLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIETDqWNhcG90YWJsZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40OCAzMjU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NSA4MzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ4IDMyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIENvbnZlcnRpYmxlIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3OTU0MSw0Nzk1NDIsNDc5NTQzIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBEw6ljYXBvdGFibGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19Db252ZXJ0aWJsZS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE11c3RhbmcgRMOpY2Fwb3RhYmxlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NdXN0YW5nX0NvbnZlcnRpYmxlLzIwMjYvNDc5NTQxL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMjAyKS0tPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxOTQpIC0tPjxkaXYgaWQ9ImNsYXNzc3V2X2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+VlVTIG5ldWZzIEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgU29yZWwtVHJhY3k8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3N1diI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMSI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjMgNTAwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGUtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVzY2FwZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzUgMjQ0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszMiA4NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM1IDI0NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zMSA3NDQ8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxMjA0LDQ2MTIwNSw0NjEyMDcsNDYxMjA4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXNjYXBlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEVzY2FwZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlLzIwMjUvNDYxMjA0L0JsYWNrL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Fc2NhcGUvMjAyNS80NjEyMDQvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDYxMjA0LCJ0aXRsZSI6IkZvcmQgRXNjYXBlIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1Fc2NhcGUtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXNjYXBlLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Fc2NhcGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM1IDg5NDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMzIDQ5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzUgODk0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg4MzUsNDc4ODM0LDQ3ODgzMiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGUtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFc2NhcGUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VzY2FwZS8yMDI2LzQ3ODgzNS9CbGFjay9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlLzIwMjYvNDc4ODM1L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ3ODgzNSwidGl0bGUiOiJGb3JkIEVzY2FwZSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRXNjYXBlLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMyI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYgMDAwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkJyb25jbyBTcG9ydCAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkJyb25jbyBTcG9ydCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgMTkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOCA3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDE5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zNiAxOTA8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28gU3BvcnQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYzODY3LDQ2Mzg2OSw0NjM4NjgsNDYzODcwLDQ2Mzg3MSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBCcm9uY28gU3BvcnQgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0Jyb25jb19TcG9ydC8yMDI1LzQ2Mzg2Ny9CbGFjay9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvQnJvbmNvX1Nwb3J0LzIwMjUvNDYzODY3L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2Mzg2NywidGl0bGUiOiJGb3JkIEJyb25jbyBTcG9ydCAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtQnJvbmNvX1Nwb3J0LTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNCI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQgNzUwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEJyb25jbyBTcG9ydCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Ccm9uY29fU3BvcnQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkJyb25jbyBTcG9ydCAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkJyb25jbyBTcG9ydCAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgODkwPC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszOSAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDg5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOCAxNDA8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28gU3BvcnQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxNzc4LDQ4MTc3OSw0ODE3ODAsNDgxNzgxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgQnJvbmNvIFNwb3J0IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jb19TcG9ydC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEJyb25jbyBTcG9ydCAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvQnJvbmNvX1Nwb3J0LzIwMjYvNDgxNzc4L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4MTc3OCwidGl0bGUiOiJGb3JkIEJyb25jbyBTcG9ydCAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtQnJvbmNvX1Nwb3J0LTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgQnJvbmNvIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jby0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iQnJvbmNvIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+QnJvbmNvIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MSA3NjA8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OSAzNjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUxIDc2MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY2NzkxLDQ2Njc5Miw0NjY3ODYsNDY2Nzg3LDQ2Njc4NSw0NjY3OTAsNDY2Nzg4LDQ3OTUwNSw0NjY3ODkiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBCcm9uY28gMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtQnJvbmNvLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgQnJvbmNvIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Ccm9uY28vMjAyNS80NjY3OTEvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDY2NzkxLCJ0aXRsZSI6IkZvcmQgQnJvbmNvIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1Ccm9uY28tMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl82Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBsb3JlciAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FeHBsb3JlciAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTMgOTgwPC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTEgNTg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MyA5ODAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU0MDQxLDQ1NDA0Miw0NTQwNDQsNDU0MDQzIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwbG9yZXIgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFeHBsb3JlciAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwbG9yZXIvMjAyNS80NTQwNDEvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDU0MDQxLCJ0aXRsZSI6IkZvcmQgRXhwbG9yZXIgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUV4cGxvcmVyLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgQnJvbmNvIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUJyb25jby0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iQnJvbmNvIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+QnJvbmNvIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NCA0NjA8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MSA3NjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU0IDQ2MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJCcm9uY28iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxODYyLDQ4MTg2NCw0ODE4NjUsNDgxODY2LDQ4MTg2Myw0ODE4NjcsNDgxODY5LDQ4MTg3MCw0ODE4NjgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBCcm9uY28gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtQnJvbmNvLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgQnJvbmNvIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9Ccm9uY28vMjAyNi80ODE4NjIvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDgxODYyLCJ0aXRsZSI6IkZvcmQgQnJvbmNvIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1Ccm9uY28tMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl84Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFeHBsb3JlciAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBsb3Jlci0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FeHBsb3JlciAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTQgOTk1PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTIgNTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1NCA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwbG9yZXIiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgzMTEzLDQ3OTUyOSw0Nzk1MzIsNDc5NTMxLDQ3OTUzMCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEV4cGxvcmVyIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUV4cGxvcmVyLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXhwbG9yZXIgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0V4cGxvcmVyLzIwMjYvNDgzMTEzL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4MzExMywidGl0bGUiOiJGb3JkIEV4cGxvcmVyIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1FeHBsb3Jlci0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzkiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEV4cGxvcmVyIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUV4cGxvcmVyLTIwMjcuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBsb3JlciAyMDI3Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkV4cGxvcmVyIDIwMjc8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NSAxOTU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiA3MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU1IDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFeHBsb3JlciIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODcwNDcsNDg3MDQzLDQ4NzA0NCw0ODcwNDYsNDg3MDQ1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwbG9yZXIgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwbG9yZXItMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFeHBsb3JlciAyMDI3IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwbG9yZXIvMjAyNy80ODcwNDcvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDg3MDQ3LCJ0aXRsZSI6IkZvcmQgRXhwbG9yZXIgMjAyNyIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUV4cGxvcmVyLTIwMjcuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMTAiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEV4cGVkaXRpb24gMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwZWRpdGlvbiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkV4cGVkaXRpb24gMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjg0IDgxNTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzgyIDEyMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODQgODE1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGVkaXRpb24iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY3MDY0LDQ2NzA3MSw0NjcwNjcsNDY3MDcwLDQ2NzA2NSw0NjcwNjYsNDY3MDY5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwZWRpdGlvbiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBlZGl0aW9uLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXhwZWRpdGlvbiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwZWRpdGlvbi8yMDI1LzQ2NzA2NC9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjcwNjQsInRpdGxlIjoiRm9yZCBFeHBlZGl0aW9uIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1FeHBlZGl0aW9uLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMTEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEV4cGVkaXRpb24gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwZWRpdGlvbiAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkV4cGVkaXRpb24gMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjg2IDA2NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzgzIDM3MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODYgMDY1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGVkaXRpb24iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxMTgzLDQ4MTE4OCw0ODExODUsNDgxMTg5LDQ4MTE4NCw0ODExODYsNDgxMTkwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwZWRpdGlvbiAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBlZGl0aW9uLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXhwZWRpdGlvbiAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwZWRpdGlvbi8yMDI2LzQ4MTE4My9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODExODMsInRpdGxlIjoiRm9yZCBFeHBlZGl0aW9uIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1FeHBlZGl0aW9uLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMTIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEV4cGVkaXRpb24gMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRXhwZWRpdGlvbi0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXhwZWRpdGlvbiAyMDI3Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkV4cGVkaXRpb24gMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjg5IDI5NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozg2IDUwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODkgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkV4cGVkaXRpb24iIGRhdGEteWVhcj0iMjAyNyIgZGF0YS1zdHlsZWlkcz0iNDg0ODA1LDQ4NDgwOSw0ODQ4MDQsNDg0ODA4LDQ4NDgwMiw0ODQ4MDMsNDg0ODA3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXhwZWRpdGlvbiAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FeHBlZGl0aW9uLTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXhwZWRpdGlvbiAyMDI3IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXhwZWRpdGlvbi8yMDI3LzQ4NDgwNS9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODQ4MDUsInRpdGxlIjoiRm9yZCBFeHBlZGl0aW9uIDIwMjciLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1FeHBlZGl0aW9uLTIwMjcuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIyMDIpLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCkgLS0+PGRpdiBpZD0iY2xhc3N0cnVja19jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkNhbWlvbnMgbmV1ZnMgRm9yZCAyMDI1LCAyMDI2ICZhbXA7IDIwMjc8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBTb3JlbC1UcmFjeTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfdHJ1Y2siPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2stMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TWF2ZXJpY2sgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ0IDI5NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDQgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2OTA2NSw0NjI4MzYsNDYyODM3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2stMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBNYXZlcmljayAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTWF2ZXJpY2svMjAyNS80NjkwNjUvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDY5MDY1LCJ0aXRsZSI6IkZvcmQgTWF2ZXJpY2sgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLU1hdmVyaWNrLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF90cnVja18yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNYXZlcmljayAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmljay0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2sgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NYXZlcmljayAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDQgNDk1PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA0OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NCA0OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTWF2ZXJpY2siIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxMTc2LDQ4MTE3Myw0ODExNzUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNYXZlcmljayAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmljay0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE1hdmVyaWNrIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NYXZlcmljay8yMDI2LzQ4MTE3Ni9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODExNzYsInRpdGxlIjoiRm9yZCBNYXZlcmljayAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtTWF2ZXJpY2stMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzMiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFJhbmdlciAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1SYW5nZXItMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlJhbmdlciAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlJhbmdlciAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDUgMzY1PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDIgODcwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NSAzNjUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iUmFuZ2VyIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NjY2Miw0NjY2NjMsNDY2NjY0LDQ2NjY2NSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFJhbmdlciAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1SYW5nZXItMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBSYW5nZXIgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1Jhbmdlci8yMDI1LzQ2NjY2Mi9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjY2NjIsInRpdGxlIjoiRm9yZCBSYW5nZXIgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVJhbmdlci0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgUmFuZ2VyIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVJhbmdlci0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iUmFuZ2VyIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+UmFuZ2VyIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NiAwNjU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MyAzNzAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ2IDA2NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJSYW5nZXIiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxNzgyLDQ4MTc4Myw0ODE3ODQsNDgxNzg1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgUmFuZ2VyIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVJhbmdlci0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFJhbmdlciAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvUmFuZ2VyLzIwMjYvNDgxNzgyL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4MTc4MiwidGl0bGUiOiJGb3JkIFJhbmdlciAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtUmFuZ2VyLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF90cnVja181Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5GLTE1MCAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTMgMzAwPC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTIgMzU1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MyAzMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY0MTUyLDQ2NDE1MCw0NjQxNTMsNDY0MTU0LDQ2NDE1NSw0NjQxNTYsNDY0MTUxLDQ2NDE2MCw0NjQxNjEsNDY0MTU3LDQ2NDE2Miw0NjQxNTgsNDY0MTU5LDQ2NDE2Myw0NjQxNjQsNDY0MTY1LDQ2NDE3MSw0NjQxNzIsNDY0MTY5LDQ2NDE2Niw0NjQxNzMsNDY0MTY3LDQ2NDE3NCw0NjQxNjgsNDY0MTc1LDQ2NDE3NyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRi0xNTAgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0ZfMTUwLzIwMjUvNDY0MTUyL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2NDE1MiwidGl0bGUiOiJGb3JkIEYtMTUwIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1GXzE1MC0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfNiI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYgNzUwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUZfMTUwLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkYtMTUwIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NSA0ODU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDY5MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTUgNDg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUxIDIzNTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTc5Nyw0ODE3OTUsNDgxNzk4LDQ4MTc5OSw0ODE4MDAsNDgxNzk2LDQ4MTgwMSw0ODE4MDUsNDgxODA2LDQ4MTgwMiw0ODE4MDMsNDgxODA3LDQ4MTgwOCw0ODE4MTAsNDgxODA0LDQ4MTgxMSw0ODE4MTYsNDgxODE4LDQ4MTgxNSw0ODE4MTIsNDgxODE5LDQ4MTgxMyw0ODE4MjAsNDgxODE0LDQ4MTgyMSw0ODE4MjIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEYtMTUwIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9GXzE1MC8yMDI2LzQ4MTc5Ny9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODE3OTcsInRpdGxlIjoiRm9yZCBGLTE1MCAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRl8xNTAtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzciPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MiA0NzQ8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1OSA5NzkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYyIDQ3NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMjUwIFNSVyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjUzNjcsNDY1MzY4LDQ2NTM3MCw0NjUzNzMsNDY1Mzc5LDQ2NTM3MSw0NjUzNzQsNDY1MzgwLDQ2NTM2OSw0NjUzNzIsNDY1Mzc1LDQ2NTM4MSw0NjUzNzYsNDY1MzgyLDQ2NTM3Nyw0NjUzNzgsNDY1MzgzLDQ2NTM4NCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8yNTBfU1JXLzIwMjUvNDY1MzY3L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2NTM2NywidGl0bGUiOiJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfOCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY0IDAzNDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYxIDIzOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjQgMDM0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0yNTAgU1JXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3OTQwNCw0Nzk0MjMsNDc5NDA1LDQ3OTQwNyw0Nzk0MTAsNDc5NDI0LDQ3OTQxNiw0Nzk0MjIsNDc5NDA4LDQ3OTQxMSw0Nzk0MTcsNDc5NDA2LDQ3OTQyNiw0Nzk0MjcsNDc5NDI5LDQ3OTQyNSw0Nzk0MDksNDc5NDEyLDQ3OTQxOCw0Nzk0MjgsNDc5NDMwLDQ3OTQxMyw0Nzk0MTksNDc5NDE0LDQ3OTQxNSw0Nzk0MjAsNDc5NDIxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzI1MF9TUlcvMjAyNi80Nzk0MDQvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDc5NDA0LCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl8yNTBfU1JXLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF90cnVja185Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTI1MCBTUlcgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjUgMDM0PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjIgMjM5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NSAwMzQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTI1MCBTUlciIGRhdGEteWVhcj0iMjAyNyIgZGF0YS1zdHlsZWlkcz0iNDg2MDQxLDQ4NjA0NSw0ODYwNDMsNDg2MDQ4LDQ4NjA1Miw0ODYwNDYsNDg2MDYwLDQ4NjA0Miw0ODYwNTAsNDg2MDU1LDQ4NjA2Myw0ODYwNDQsNDg2MDQ5LDQ4NjA1Myw0ODYwNjEsNDg2MDQ3LDQ4NjA1MSw0ODYwNTYsNDg2MDY0LDQ4NjA1NCw0ODYwNjIsNDg2MDU3LDQ4NjA2NSw0ODYwNTgsNDg2MDU5LDQ4NjA2Niw0ODYwNjciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMjUwX1NSVy0yMDI3Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi0yNTAgU1JXIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfMjUwX1NSVy8yMDI3LzQ4NjA0MS9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODYwNDEsInRpdGxlIjoiRm9yZCBTdXBlciBEdXR5IEYtMjUwIFNSVyAyMDI3IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtU3VwZXJfRHV0eV9GXzI1MF9TUlctMjAyNy5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzEwIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX0RSVy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjUgNzIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjMgMjI1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NSA3MjAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCBEUlciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY1MjI0LDQ2NTc3OCw0NjU3ODIsNDY1MjI1LDQ2NTc3OSw0NjU3ODMsNDY1NzgwLDQ2NTc4Niw0NjU3ODQsNDY1NzgxLDQ2NTc5MCw0NjU3ODcsNDY1Nzg1LDQ2NTIyOCw0NjUyMjYsNDY1Nzg4LDQ2NTc5MSw0NjU3OTIsNDY1Nzg5LDQ2NTc5Myw0NjUyMjksNDY1MjI3LDQ2NTc5NCw0NjUyMzAsNDY1MjMxLDQ2NTIzMiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfRFJXLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8zNTBfRFJXLzIwMjUvNDY1MjI0L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfMTEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX1NSVy0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42NiA1MzQ8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MyA3MzkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY2IDUzNCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIFNSVyIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzc1NzUsNDc3NTk0LDQ3Nzk5MCw0Nzc1NzYsNDc3NTc4LDQ3Nzk5MSw0Nzc1ODEsNDc3NTk1LDQ3NzU4Nyw0Nzc5OTIsNDc3OTk0LDQ3NzU5Myw0Nzc1NzksNDc3OTkzLDQ3Nzk5OCw0Nzc5OTUsNDc3NTgyLDQ3NzU4OCw0Nzc5OTYsNDc3OTk5LDQ3NzU3Nyw0Nzc1OTcsNDc3NTk4LDQ3ODAwMCw0Nzc5OTcsNDc3NjAwLDQ3NzU5Niw0NzgwMDEsNDc3NTgwLDQ3NzU4Myw0Nzc1ODksNDc3NTk5LDQ3NzYwMSw0NzgwMDIsNDc3NTg0LDQ3NzU5MCw0Nzc1ODUsNDc3NTg2LDQ3NzU5MSw0Nzc1OTIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8zNTBfU1JXLzIwMjYvNDc3NTc1L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfMTIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfRFJXLTIwMjcuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI3Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjc8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42OCAyODA8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NSA0ODUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDY5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY4IDI4MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIERSVyIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODU5MTMsNDg2NDM4LDQ4NjQ0Miw0ODY0MzksNDg2NDQzLDQ4NTkxNSw0ODY0NDAsNDg2NDQ2LDQ4NjQ0NCw0ODY0NDEsNDg2NDUwLDQ4NjQ0Nyw0ODU5MTQsNDg2NDQ1LDQ4NTkxNyw0ODY0NDgsNDg2NDUxLDQ4NTkyMCw0ODY0NTIsNDg2NDQ5LDQ4NTkxNiw0ODY0NTMsNDg1OTE4LDQ4NTkyMSw0ODY0NTQsNDg1OTE5LDQ4NTkyMiw0ODY0NTUsNDg1OTIzLDQ4NTkyNCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfRFJXLTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8zNTBfRFJXLzIwMjcvNDg1OTEzL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfdHJ1Y2tfMTMiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42OSA2NDk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NyAxNTQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY5IDY0OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNDUwIERSVyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjQ5NzYsNDY0OTgwLDQ2NDk4NCw0NjQ5ODgsNDY0OTc3LDQ2NDk4MSw0NjQ5ODUsNDY0OTkyLDQ2NDk4OSw0NjQ5NzgsNDY0OTgyLDQ2NTAwMCw0NjQ5OTMsNDY0OTg2LDQ2NTAwNSw0NjQ5OTAsNDY0OTc5LDQ2NDk4Myw0NjUwMDEsNDY0OTg3LDQ2NTAwNiw0NjQ5OTQsNDY0OTkxLDQ2NDk5OCw0NjUwMDIsNDY0OTk1LDQ2NTAwNyw0NjQ5OTksNDY1MDAzLDQ2NTAwOCw0NjU1OTYsNDY0OTk2LDQ2NTU5Nyw0NjQ5OTcsNDY1NTk5LDQ2NTU5OCw0NjU2MDAsNDY1NjAxLDQ2NTAwNCw0NjUwMDksNDY1NjAyLDQ2NTYwMyw0NjU2MDQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNDUwX0RSVy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9TdXBlcl9EdXR5X0ZfNDUwX0RSVy8yMDI1LzQ2NDk3Ni9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjQ5NzYsInRpdGxlIjoiRm9yZCBTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KSAtLT48ZGl2IGlkPSJjbGFzc2h5YnJpZF9jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkh5YnJpZGVzIChIeWJyaWRlIGzDqWdlcikgbmV1dmVzIEZvcmQgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgU29yZWwtVHJhY3k8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2h5YnJpZCI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIEh5YnJpZGUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NYXZlcmljayBIeWJyaWRlIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zNiA5OTU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNCA2MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM2IDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNYXZlcmljayBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYyODMxLDQ2MjgzMiw0NjI4MzMsNDYyODM0LDQ2MjgzNSIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE1hdmVyaWNrIEh5YnJpZGUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2tfSHlicmlkLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTWF2ZXJpY2tfSHlicmlkLzIwMjUvNDYyODMxL0JsYWNrL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NYXZlcmlja19IeWJyaWQvMjAyNS80NjI4MzEvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDYyODMxLCJ0aXRsZSI6IkZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtTWF2ZXJpY2tfSHlicmlkLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NYXZlcmlja19IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik1hdmVyaWNrIEh5YnJpZGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5NYXZlcmljayBIeWJyaWRlIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOCAxOTU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNSA2MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDQ5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM4IDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNYXZlcmljayBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxMTY5LDQ4MTE3MCw0ODExNzEsNDgxMTcyLDQ4MTE3NCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE1hdmVyaWNrIEh5YnJpZGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTWF2ZXJpY2tfSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvTWF2ZXJpY2tfSHlicmlkLzIwMjYvNDgxMTY5L0JsYWNrL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NYXZlcmlja19IeWJyaWQvMjAyNi80ODExNjkvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDgxMTY5LCJ0aXRsZSI6IkZvcmQgTWF2ZXJpY2sgSHlicmlkZSAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtTWF2ZXJpY2tfSHlicmlkLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfMyI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQgNTAwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBIeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWRlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIEh5YnJpZGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDM0NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDMgOTQ5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NiAzNDQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDEgODQ0PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjEyMDksNDYxMjExLDQ2MTIxMCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBIeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFc2NhcGUgSHlicmlkZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlX0h5YnJpZC8yMDI1LzQ2MTIwOS9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjEyMDksInRpdGxlIjoiRm9yZCBFc2NhcGUgSHlicmlkZSAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRXNjYXBlX0h5YnJpZC0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzQiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEVzY2FwZSBIeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIEh5YnJpZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDk5NDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ0IDU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgOTk0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkVzY2FwZSBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4ODMxLDQ3ODgzMyw0Nzg4MzAiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgSHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXNjYXBlIEh5YnJpZGUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VzY2FwZV9IeWJyaWQvMjAyNi80Nzg4MzEvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDc4ODMxLCJ0aXRsZSI6IkZvcmQgRXNjYXBlIEh5YnJpZGUgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVzY2FwZV9IeWJyaWQtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KSAtLT48ZGl2IGlkPSJjbGFzc3BoZXZfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5IeWJyaWRlcyByZWNoYXJnZWFibGUgbmV1ZnMgRm9yZCAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBTb3JlbC1UcmFjeTwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfcGhldiI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9waGV2XzEiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4xMCAxMDg8L3NwYW4+PC9zcGFuPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXNjYXBlIFZIUiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfUEhFVi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIFZIUiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVzY2FwZSBWSFIgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQzIDg5NDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDEgNDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MyA4OTQmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzMgNzg2PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRXNjYXBlIFBIRVYiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxMjA2IiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRXNjYXBlIFZIUiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1Fc2NhcGVfUEhFVi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEVzY2FwZSBWSFIgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VzY2FwZV9QSEVWLzIwMjUvNDYxMjA2L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ2MTIwNiwidGl0bGUiOiJGb3JkIEVzY2FwZSBWSFIgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVzY2FwZV9QSEVWLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9waGV2XzIiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj44IDYwODwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgVkhSIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgVkhSIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RXNjYXBlIFZIUiAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDMgOTk0PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MSA1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDI5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQzIDk5NCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zNSAzODY8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFc2NhcGUgUEhFViIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg4MzYiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFc2NhcGUgVkhSIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVzY2FwZV9QSEVWLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRXNjYXBlIFZIUiAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRXNjYXBlX1BIRVYvMjAyNi80Nzg4MzYvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDc4ODM2LCJ0aXRsZSI6IkZvcmQgRXNjYXBlIFZIUiAyMDI2IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRXNjYXBlX1BIRVYtMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KSAtLT48ZGl2IGlkPSJjbGFzc2VsZWN0cmljX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+w4lsZWN0cmlxdWVzIG5ldXZlcyBGb3JkIDIwMjUgJmFtcDsgMjAyNjwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIFNvcmVsLVRyYWN5PC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19lbGVjdHJpYyI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY18xIj4KCQkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NyA1ODc8L3NwYW4+PC9zcGFuPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtTXVzdGFuZ19NYWNoX0UtMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgTWFjaC1FIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+TXVzdGFuZyBNYWNoLUUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ4IDA5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDQgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0OCAwOTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDAgNTAzPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iTXVzdGFuZyBNYWNoLUUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxNjk3LDQ4MTY5NSw0ODE2OTgsNDgxNjk2LDQ4MTY5OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgTWFjaC1FIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgTXVzdGFuZyBNYWNoLUUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL011c3RhbmdfTWFjaF9FLzIwMjYvNDgxNjk3L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4MTY5NywidGl0bGUiOiJGb3JkIE11c3RhbmcgTWFjaC1FIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1NdXN0YW5nX01hY2hfRS0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfMiI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgNzM5PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIE11c3RhbmcgTWFjaC1FIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLU11c3RhbmdfTWFjaF9FLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJNdXN0YW5nIE1hY2gtRSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPk11c3RhbmcgTWFjaC1FIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NSA2OTA8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTUgNjkwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUzIDk1MTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9Ik11c3RhbmcgTWFjaC1FIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NzQ4OCw0Njc0OTAsNDY3NDg5LDQ2NzQ5MSw0Njc0OTIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBNdXN0YW5nIE1hY2gtRSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1NdXN0YW5nX01hY2hfRS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIE11c3RhbmcgTWFjaC1FIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9NdXN0YW5nX01hY2hfRS8yMDI1LzQ2NzQ4OC9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0Njc0ODgsInRpdGxlIjoiRm9yZCBNdXN0YW5nIE1hY2gtRSAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtTXVzdGFuZ19NYWNoX0UtMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzMiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40IDM0ODwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCBMaWdodG5pbmcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJGLTE1MCBMaWdodG5pbmcgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5GLTE1MCBMaWdodG5pbmcgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYyIDg5MDwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTkgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MiA4OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMjc2YjM7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjEgMTUxPC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAgTGlnaHRuaW5nIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MzY4MCw0NjM2ODEsNDYzNjgyLDQ2MzY4Myw0NjM2ODQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCBMaWdodG5pbmcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9GXzE1MF9MaWdodG5pbmcvMjAyNS80NjM2ODAvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDYzNjgwLCJ0aXRsZSI6IkZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzQiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEYtMTUwIExpZ2h0bmluZyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkYtMTUwIExpZ2h0bmluZyAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkYtMTUwIExpZ2h0bmluZyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzMgODkwPC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzAgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA3OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MyA4OTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRi0xNTAgTGlnaHRuaW5nIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTg4Myw0ODE4ODcsNDgxODg0LDQ4MTg4NSw0ODE4ODYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBGLTE1MCBMaWdodG5pbmcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRl8xNTBfTGlnaHRuaW5nLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9GXzE1MF9MaWdodG5pbmcvMjAyNi80ODE4ODMvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDgxODgzLCJ0aXRsZSI6IkZvcmQgRi0xNTAgTGlnaHRuaW5nIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1GXzE1MF9MaWdodG5pbmctMjAyNi5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KSAtLT48ZGl2IGlkPSJjbGFzc2NvbW1lcmNpYWxfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5Ob3V2ZWF1eCBjYW1pb25zIGNvbW1lcmNpYXV4IEZvcmQgMjAyNSwgMjAyNiAmYW1wOyAyMDI3PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgU29yZWwtVHJhY3k8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2NvbW1lcmNpYWwiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19TdHJpcHBlZF9DaGFzc2lzLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlPDqXJpZSBFIGNow6Jzc2lzIG51IDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MyA0ODU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MSAwOTAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDM5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQzIDQ4NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ1MDkzOSw0NTA5NDAsNDUwOTQxLDQ1MDk0Miw0NTA5NDMiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19TdHJpcHBlZF9DaGFzc2lzLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU8OpcmllIEUgY2jDonNzaXMgbnUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfU2VyaWVzX1N0cmlwcGVkX0NoYXNzaXMvMjAyNS80NTA5MzkvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzIiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFPDqXJpZSBFIHRyb25xdcOpIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlPDqXJpZSBFIHRyb25xdcOpIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U8OpcmllIEUgdHJvbnF1w6kgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDkzMDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ0IDQzNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDYgOTMwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtU2VyaWVzIEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDUwOTMyLDQ1MDkzMyw0NTA5MzYsNDUwOTM0LDQ1MDkzNSw0NTA5MzcsNDUwOTM4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU8OpcmllIEUgdHJvbnF1w6kgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFPDqXJpZSBFIHRyb25xdcOpIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FX1Nlcmllc19DdXRhd2F5LzIwMjUvNDUwOTMyL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19TdHJpcHBlZF9DaGFzc2lzLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlPDqXJpZSBFIGNow6Jzc2lzIG51IDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40OCA2MzU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0NiAwNDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDU5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ4IDYzNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVNlcmllcyBTdHJpcHBlZCBDaGFzc2lzIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ2Njc4MCw0NjY3ODEsNDY2NzgyLDQ2Njc4MyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFPDqXJpZSBFIGNow6Jzc2lzIG51IDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX1N0cmlwcGVkX0NoYXNzaXMtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTw6lyaWUgRSBjaMOic3NpcyBudSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9TZXJpZXNfU3RyaXBwZWRfQ2hhc3Npcy8yMDI2LzQ2Njc4MC9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU8OpcmllIEUgdHJvbnF1w6kgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU8OpcmllIEUgdHJvbnF1w6kgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Tw6lyaWUgRSB0cm9ucXXDqSAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTIgMDgwPC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDkgMzg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA1OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MiAwODAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1TZXJpZXMgQ3V0YXdheSIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODE5MTMsNDgxOTE0LDQ4MTkxNyw0ODE5MTUsNDgxOTE2LDQ4MTkxOCw0ODE5MTkiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTw6lyaWUgRSB0cm9ucXXDqSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1Nlcmllc19DdXRhd2F5LTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU8OpcmllIEUgdHJvbnF1w6kgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfU2VyaWVzX0N1dGF3YXkvMjAyNy80ODE5MTMvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzUiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFPDqXJpZSBFIHRyb25xdcOpIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfU2VyaWVzX0N1dGF3YXktMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlPDqXJpZSBFIHRyb25xdcOpIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U8OpcmllIEUgdHJvbnF1w6kgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUyIDA4MDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQ5IDM4NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTIgMDgwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtU2VyaWVzIEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDY2NzczLDQ2Njc3NCw0NjY3NzcsNDY2Nzc1LDQ2Njc3Niw0NjY3NzgsNDY2Nzc5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU8OpcmllIEUgdHJvbnF1w6kgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9TZXJpZXNfQ3V0YXdheS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFPDqXJpZSBFIHRyb25xdcOpIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FX1Nlcmllc19DdXRhd2F5LzIwMjYvNDY2NzczL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF82Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU4IDg5NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU1IDgwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTggODk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgQ3V0YXdheSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0Njc0NzMsNDY3NDc0LDQ2Njk0OSw0NjY5NTAsNDY2OTUxLDQ2Njk1OSw0NjY5NTIsNDY2OTUzLDQ2Njk2MSw0NjY5NjMsNDY3NDc1LDQ2NzQ3Niw0NjY5NTQsNDY2OTU1LDQ2Njk1Niw0NjY5NjUsNDY2OTU3LDQ2Njk1OCw0NjY5NjAsNDY2OTY3LDQ2Njk2Miw0NjY5NjksNDY2OTY0LDQ2Njk2Niw0NjY5NjgsNDY2OTcwIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ3V0YXdheS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvVHJhbnNpdF9DdXRhd2F5LzIwMjUvNDY3NDczL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF83Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYwIDU0NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU3IDQ1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjAgNTQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgQ3V0YXdheSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzk1NDQsNDc5NTQ1LDQ3OTM4MCw0NzkzODEsNDc5Mzg2LDQ3OTM4Miw0NzkzODgsNDc5MzkwLDQ3OTU0Niw0Nzk1NDcsNDc5MzgzLDQ3OTM4NCw0NzkzOTIsNDc5Mzg1LDQ3OTM4Nyw0NzkzOTQsNDc5Mzg5LDQ3OTM5Niw0NzkzOTEsNDc5MzkzLDQ3OTM5NSw0NzkzOTciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9UcmFuc2l0X0N1dGF3YXkvMjAyNi80Nzk1NDQvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzgiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0N1dGF3YXktMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjAgNjQ1PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTcgNDUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MyAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MCA2NDUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NjU4Niw0ODY1ODcsNDg1OTcyLDQ4NTk3Myw0ODU5NzgsNDg1OTc0LDQ4NTk4MCw0ODU5ODIsNDg2NTg4LDQ4NjU4OSw0ODU5NzUsNDg1OTc2LDQ4NTk4NCw0ODU5NzcsNDg1OTc5LDQ4NTk4Niw0ODU5ODEsNDg1OTg4LDQ4NTk4Myw0ODU5ODUsNDg1OTg3LDQ4NTk4OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0N1dGF3YXktMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1RyYW5zaXRfQ3V0YXdheS8yMDI3LzQ4NjU4Ni9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfOSI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQgMDAwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgZm91cmdvbiB1dGlsaXRhaXJlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ2FyZ29fVmFuLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlRyYW5zaXQgZm91cmdvbiB1dGlsaXRhaXJlIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MSA1OTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzU4IDUwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjEgNTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU3IDU5NTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgQ2FyZ28gVmFuIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NzE2NSw0NjcxNjYsNDY3MTcxLDQ2NzE2Nyw0NjcxNzIsNDY3MTgxLDQ2NzE3Myw0NjcxODIsNDY3MTgzLDQ2NzE2OCw0NjcxNzQsNDY3MTg0LDQ2NzE4NSw0NjcxNjksNDY3MTc2LDQ2NzE3NSw0NjcxNzAsNDY3MTg3LDQ2NzE4Niw0NjcxNzcsNDY3MTkyLDQ2NzE4OSw0NjcxODgsNDY3MTc4LDQ2NzE5Myw0NjcxOTQsNDY3MTkwLDQ2NzE3OSw0NjcxOTUsNDY3MTk2LDQ2NzE4MCw0NjcxOTcsNDY3MTk4LDQ2NzE5OSw0NjcyMDAsNDY3MTkxLDQ2NzIwMSw0NjcyMDIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0NhcmdvX1Zhbi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFRyYW5zaXQgZm91cmdvbiB1dGlsaXRhaXJlIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9UcmFuc2l0X0NhcmdvX1Zhbi8yMDI1LzQ2NzE2NS9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjcxNjUsInRpdGxlIjoiRm9yZCBUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI1IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtVHJhbnNpdF9DYXJnb19WYW4tMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMTAiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yIDAwMDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjIgOTk1PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1OSA5MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAyNzZiMzsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj42MCA5OTU8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJUcmFuc2l0IENhcmdvIFZhbiIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0Nzg0NjksNDc4NDcwLDQ3ODQ3NSw0Nzg0NzEsNDc4NDc2LDQ3ODQ4NSw0Nzg0NzcsNDc4NDg2LDQ3ODQ4Nyw0Nzg0NzIsNDc4NDc4LDQ3ODQ4OCw0Nzg0ODksNDc4NDczLDQ3ODQ4MCw0Nzg0NzksNDc4NDc0LDQ3ODQ5MSw0Nzg0OTAsNDc4NDgxLDQ3ODQ5Niw0Nzg0OTMsNDc4NDkyLDQ3ODQ4Miw0Nzg0OTcsNDc4NDk4LDQ3ODQ5NCw0Nzg0ODMsNDc4NDk5LDQ3ODUwMCw0Nzg0ODQsNDc4NTAxLDQ3ODUwMiw0Nzg1MDMsNDc4NTA0LDQ3ODQ5NSw0Nzg1MDUsNDc4NTA2IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9DYXJnb19WYW4tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvVHJhbnNpdF9DYXJnb19WYW4vMjAyNi80Nzg0NjkvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDc4NDY5LCJ0aXRsZSI6IkZvcmQgVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNiIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVRyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzExIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBUcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X0NhcmdvX1Zhbi0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IGZvdXJnb24gdXRpbGl0YWlyZSAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjMgMDk1PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTkgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MyAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2MyAwOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCBDYXJnbyBWYW4iIGRhdGEteWVhcj0iMjAyNyIgZGF0YS1zdHlsZWlkcz0iNDg2MjcyLDQ4NjI3Myw0ODYyNzgsNDg2Mjc0LDQ4NjI3OSw0ODYyODgsNDg2Mjc1LDQ4NjI4MCw0ODYyODksNDg2MjkwLDQ4NjI3Niw0ODYyODEsNDg2MjkxLDQ4NjI5Miw0ODYyODMsNDg2MjgyLDQ4NjI3Nyw0ODYyOTQsNDg2MjkzLDQ4NjI4NCw0ODYyOTksNDg2Mjk2LDQ4NjI5NSw0ODYyODUsNDg2MzAwLDQ4NjMwMSw0ODYyOTcsNDg2Mjg2LDQ4NjMwMiw0ODYzMDMsNDg2Mjg3LDQ4NjMwNCw0ODYzMDUsNDg2MzA2LDQ4NjMwNyw0ODYyOTgsNDg2MzA4LDQ4NjMwOSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgZm91cmdvbiB1dGlsaXRhaXJlIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVRyYW5zaXRfQ2FyZ29fVmFuLTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgVHJhbnNpdCBmb3VyZ29uIHV0aWxpdGFpcmUgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1RyYW5zaXRfQ2FyZ29fVmFuLzIwMjcvNDg2MjcyL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4NjI3MiwidGl0bGUiOiJGb3JkIFRyYW5zaXQgZm91cmdvbiB1dGlsaXRhaXJlIDIwMjciLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1UcmFuc2l0X0NhcmdvX1Zhbi0yMDI3Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfU1JXLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY0IDk3NDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYyIDQ3OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjQgOTc0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgU1JXIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NTIzMyw0NjU3OTUsNDY1MjM0LDQ2NTIzNiw0NjU3OTYsNDY1MjM5LDQ2NTI0NSw0NjU3OTcsNDY1Nzk5LDQ2NTIzNyw0NjU3OTgsNDY1ODAzLDQ2NTgwMCw0NjUyNDAsNDY1MjQ2LDQ2NTgwMSw0NjU4MDQsNDY1MjM1LDQ2NTgwNSw0NjU4MDIsNDY1ODA2LDQ2NTIzOCw0NjUyNDEsNDY1MjQ3LDQ2NTgwNyw0NjUyNDIsNDY1MjQ4LDQ2NTI0Myw0NjUyNDQsNDY1MjQ5LDQ2NTI1MCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX1NSVy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUgc2ltcGxlcyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzM1MF9TUlcvMjAyNS80NjUyMzMvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzEzIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfMzUwX0RSVy0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIGp1bWVsw6llcyAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjcgMjgwPC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjQgNDg1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2NyAyODAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTM1MCBEUlciIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc3NjAyLDQ3ODAwMyw0NzgwMDcsNDc3NjAzLDQ3ODAwNCw0NzgwMDgsNDc4MDA1LDQ3NzYxMSw0NzgwMTEsNDc4MDA5LDQ3ODAwNiw0NzgwMTUsNDc4MDEyLDQ3ODAxMCw0Nzc2MDYsNDc3NjA0LDQ3ODAxMyw0NzgwMTYsNDc4MDE3LDQ3ODAxNCw0NzgwMTgsNDc3NjA3LDQ3NzYwNSw0Nzc2MTIsNDc4MDE5LDQ3NzYwOCw0Nzc2MTMsNDc3NjA5LDQ3NzYxMCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi0zNTAgw6Agcm91ZXMgYXJyacOocmUganVtZWzDqWVzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfRFJXLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBqdW1lbMOpZXMgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8zNTBfRFJXLzIwMjYvNDc3NjAyL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTM1MCDDoCByb3VlcyBhcnJpw6hyZSBzaW1wbGVzIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl8zNTBfU1JXLTIwMjcuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY3IDUzNDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY0IDczOSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjcgNTM0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi0zNTAgU1JXIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NTkyNSw0ODY0NTYsNDg1OTI5LDQ4NjQ1Nyw0ODU5MjcsNDg1OTMyLDQ4NjQ1OCw0ODY0NjAsNDg1OTM2LDQ4NTkzMCw0ODU5NDQsNDg2NDU5LDQ4NjQ2NCw0ODY0NjEsNDg1OTI2LDQ4NTkzNCw0ODY0NjIsNDg2NDY1LDQ4NTkzOSw0ODU5NDcsNDg2NDY2LDQ4NjQ2Myw0ODU5MjgsNDg1OTMzLDQ4NjQ2Nyw0ODU5MzcsNDg1OTQ1LDQ4NTkzMSw0ODU5MzUsNDg1OTQwLDQ4NTk0OCw0ODU5MzgsNDg1OTQ2LDQ4NjQ2OCw0ODU5NDEsNDg1OTQ5LDQ4NjQ2OSw0ODU5NDIsNDg1OTQzLDQ4NTk1MCw0ODU5NTEiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzM1MF9TUlctMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtMzUwIMOgIHJvdWVzIGFycmnDqHJlIHNpbXBsZXMgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl8zNTBfU1JXLzIwMjcvNDg1OTI1L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xNSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcxIDIxMDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY4IDQxNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzEgMjEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi00NTAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3Nzg2Miw0Nzc4NjYsNDc3ODcwLDQ3Nzg3NCw0Nzc4NjMsNDc3ODY3LDQ3Nzg3MSw0Nzc4NzgsNDc3ODc1LDQ3Nzg2NCw0Nzc4NjgsNDc3ODg2LDQ3Nzg3OSw0Nzc4NzIsNDc3ODkxLDQ3Nzg3Niw0Nzc4NjUsNDc3ODY5LDQ3Nzg4Nyw0Nzc4NzMsNDc3ODkyLDQ3Nzg4MCw0Nzc4NzcsNDc3ODg0LDQ3Nzg4OCw0Nzc4ODEsNDc3ODkzLDQ3Nzg4NSw0Nzc4ODksNDc3ODk0LDQ3NzkxNSw0Nzc4ODIsNDc3ODgzLDQ3NzkxNiw0Nzc5MjQsNDc3OTE4LDQ3NzkxNyw0Nzc5MTksNDc3OTI1LDQ3NzkyMCw0Nzc4OTAsNDc3ODk1LDQ3NzkyNiw0Nzc5MjEsNDc3OTIyLDQ3NzkyMyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl80NTBfRFJXLzIwMjYvNDc3ODYyL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ3Nzg2MiwidGl0bGUiOiJGb3JkIFN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfNDUwX0RSVy0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xNiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0N1dGF3YXktMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcxIDM5NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY4IDMwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzEgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NjgwMSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DdXRhd2F5LzIwMjUvNDY2ODAxL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8xNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi00NTAgRFJXIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcxIDcxMDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY4IDkxNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzEgNzEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi00NTAgRFJXIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NjIzMSw0ODYyMzUsNDg2MjM5LDQ4NjI0Myw0ODYyMzIsNDg2MjM2LDQ4NjI0MCw0ODYyNDcsNDg2MjQ0LDQ4NjIzMyw0ODYyMzcsNDg2MjU1LDQ4NjI0OCw0ODYyNDEsNDg2MjYwLDQ4NjI0NSw0ODYyMzQsNDg2MjM4LDQ4NjI1Niw0ODYyNDIsNDg2MjYxLDQ4NjI0OSw0ODYyNDYsNDg2MjUzLDQ4NjI1Nyw0ODYyNTAsNDg2MjYyLDQ4NjI1NCw0ODYyNTgsNDg2MjYzLDQ4NjI1MSw0ODYwMjEsNDg2MjUyLDQ4NjAyMyw0ODYwMjIsNDg2MDI1LDQ4NjAyNCw0ODYwMjgsNDg2MDI2LDQ4NjAyOSw0ODYyNTksNDg2MjY0LDQ4NjAyNyw0ODYwMzAsNDg2MjY1LDQ4NjI2Niw0ODYwMzEsNDg2MDMyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzQ1MF9EUlctMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtNDUwIERSVyAyMDI3IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzQ1MF9EUlcvMjAyNy80ODYyMzEvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDg2MjMxLCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTQ1MCBEUlcgMjAyNyIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl80NTBfRFJXLTIwMjcuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzE4Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtNTUwIERSVyAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzEgODQ5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjkgMzU0Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzOTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MSA4NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iU3VwZXIgRHV0eSBGLTU1MCBEUlciIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDY1NjM5LDQ2NTY0Myw0NjU2NDcsNDY1NjUxLDQ2NTY0MCw0NjU2NDQsNDY1NjQ4LDQ2NTY1NSw0NjU2NTIsNDY1NjQxLDQ2NTY0NSw0NjU2NjMsNDY1NjU2LDQ2NTY0OSw0NjU2NjgsNDY1NjUzLDQ2NTY0Miw0NjU2NDYsNDY1NjY0LDQ2NTY1MCw0NjU2NjksNDY1NjU3LDQ2NTY1NCw0NjU2NjEsNDY1NjY1LDQ2NTY1OCw0NjU2NzAsNDY1NjYyLDQ2NTY2Niw0NjU2NzEsNDY1NjU5LDQ2NTY2MCw0NjU2NjcsNDY1NjcyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzU1MF9EUlctMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBTdXBlciBEdXR5IEYtNTUwIERSVyAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzU1MF9EUlcvMjAyNS80NjU2MzkvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDY1NjM5LCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLVN1cGVyX0R1dHlfRl81NTBfRFJXLTIwMjUuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzE5Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ3V0YXdheS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzIgMDQ1PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjggOTUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3MiAwNDUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IEN1dGF3YXkiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4NTk5LDQ3ODU5OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DdXRhd2F5LTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DdXRhd2F5LzIwMjYvNDc4NTk5L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yMCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0N1dGF3YXktMjAyNy5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IGZvdXJnb24gdHJvbnF1w6kgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcyIDE0NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY4IDk1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzIgMTQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDdXRhd2F5IiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NTg0Nyw0ODU4NDgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbiB0cm9ucXXDqSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ3V0YXdheS0yMDI3Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEUtVHJhbnNpdCBmb3VyZ29uIHRyb25xdcOpIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FX1RyYW5zaXRfQ3V0YXdheS8yMDI3LzQ4NTg0Ny9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIj4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMjEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBjaMOic3NpcyAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2hhc3Npcy0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IGNow6Jzc2lzIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43MiAxOTU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs2OSAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDk5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcyIDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgQ2hhc3NpcyIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjY4MDAiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DaGFzc2lzLzIwMjUvNDY2ODAwL0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yMiI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQgMDAwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgdG91cmlzbWUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IHRvdXJpc21lIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43MiA0OTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY5IDQwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzIgNDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY4IDQ5NTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2Njg2Miw0NjY4NjQsNDY2ODY2LDQ2Njg3MCw0NjY4NjgsNDY2ODYzLDQ2Njg3Miw0NjY4NjUsNDY2ODc0LDQ2Njg2Nyw0NjY4NzEsNDY2ODY5LDQ2Njg3Myw0NjY4NzYsNDY2ODc1LDQ2Njg3NyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi8yMDI1LzQ2Njg2Mi9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjY4NjIsInRpdGxlIjoiRm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DaGFzc2lzLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgY2jDonNzaXMgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVRyYW5zaXQgY2jDonNzaXMgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcyIDg0NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY5IDc1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzIgODQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDaGFzc2lzIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODU5Nyw0Nzg1OTYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DaGFzc2lzLzIwMjYvNDc4NTk3L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGNow6Jzc2lzIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DaGFzc2lzLTIwMjcuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgY2jDonNzaXMgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FLVRyYW5zaXQgY2jDonNzaXMgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjcyIDk0NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzY5IDc1MCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzIgOTQ1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDaGFzc2lzIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NTgzNSw0ODU4MzYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NoYXNzaXMtMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgY2jDonNzaXMgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DaGFzc2lzLzIwMjcvNDg1ODM1L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yNSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtU3VwZXJfRHV0eV9GXzU1MF9EUlctMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjczIDQxMDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcwIDYxNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzMgNDEwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi01NTAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3NzkyNyw0Nzc5MzEsNDc3OTM1LDQ3NzkzOSw0Nzc5MjgsNDc3OTMyLDQ3NzkzNiw0Nzc5NDMsNDc3OTQwLDQ3NzkyOSw0Nzc5MzMsNDc3OTUxLDQ3Nzk0NCw0Nzc5MzcsNDc3OTU2LDQ3Nzk0MSw0Nzc5MzAsNDc3OTM0LDQ3Nzk1Miw0Nzc5MzgsNDc3OTU3LDQ3Nzk0NSw0Nzc5NDIsNDc3OTQ5LDQ3Nzk1Myw0Nzc5NDYsNDc3OTU4LDQ3Nzk1MCw0Nzc5NTQsNDc3OTU5LDQ3Nzk0Nyw0Nzc5NDgsNDc3OTU1LDQ3Nzk2MCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl81NTBfRFJXLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgU3VwZXIgRHV0eSBGLTU1MCBEUlcgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL1N1cGVyX0R1dHlfRl81NTBfRFJXLzIwMjYvNDc3OTI3L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ3NzkyNywidGl0bGUiOiJGb3JkIFN1cGVyIER1dHkgRi01NTAgRFJXIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfNTUwX0RSVy0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yNiI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjIgMDAwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNi5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgdG91cmlzbWUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UcmFuc2l0IHRvdXJpc21lIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NSAzOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzcyIDMwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzUgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjczIDM5NTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODY2Nyw0Nzg2NjksNDgzMzc3LDQ3ODY3Myw0Nzg2NzEsNDc4Njc1LDQ3ODY2OCw0ODMzNzksNDc4NjcwLDQ4MzM3OCw0Nzg2NzcsNDc4Njc0LDQ3ODY3Miw0Nzg2NzYsNDgzMzgwLDQ3ODY3OCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi8yMDI2LzQ3ODY2Ny9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0Nzg2NjcsInRpdGxlIjoiRm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8yNyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DYXJnb19WYW4tMjAyNS5odG1sIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkUtVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NzUgNjk1PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzIgNjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA5OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3NSA2OTUmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IENhcmdvIFZhbiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjcyMDUsNDY3MjA2LDQ2NzIwNyw0NjcyMDgiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIEUtVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvRV9UcmFuc2l0X0NhcmdvX1Zhbi8yMDI1LzQ2NzIwNS9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0NjcyMDUsInRpdGxlIjoiRm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNSIsImhyZWYiOiJcL25ldWZzXC9Gb3JkLUVfVHJhbnNpdF9DYXJnb19WYW4tMjAyNS5odG1sIiwibGlua3N0eWxlIjoiIiwibGlua2NsYXNzIjoiIiwiY29udGFpbmVyY2xhc3MiOiIiLCJwcm9tb3RleHQiOiJPZmZyZSBhZGRpdGlvbm5lbGxlISJ9Jz4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2NvbW1lcmNpYWxfMjgiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zIDAwMDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NyAwOTU8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc0IDAwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzcgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDI3NmIzOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjc0IDA5NTwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IkUtVHJhbnNpdCBDYXJnbyBWYW4iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDc4NDY1LDQ3ODQ2Niw0Nzg0NjcsNDc4NDY4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLUVfVHJhbnNpdF9DYXJnb19WYW4tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9Gb3JkL0VfVHJhbnNpdF9DYXJnb19WYW4vMjAyNi80Nzg0NjUvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDc4NDY1LCJ0aXRsZSI6IkZvcmQgRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1FX1RyYW5zaXRfQ2FyZ29fVmFuLTIwMjYuaHRtbCIsImxpbmtzdHlsZSI6IiIsImxpbmtjbGFzcyI6IiIsImNvbnRhaW5lcmNsYXNzIjoiIiwicHJvbW90ZXh0IjoiT2ZmcmUgYWRkaXRpb25uZWxsZSEifSc+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jb21tZXJjaWFsXzI5Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iRm9yZCBFLVRyYW5zaXQgZm91cmdvbm5ldHRlIHV0aWxpdGFpcmUgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjciPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+Rm9yZDwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjc8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NyAxOTU8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs3NCAwMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszIDA5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc3IDE5NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJFLVRyYW5zaXQgQ2FyZ28gVmFuIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NjI2OCw0ODYyNjksNDg2MjcwLDQ4NjI3MSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIEUtVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1FX1RyYW5zaXRfQ2FyZ29fVmFuLTIwMjcuaHRtbCI+CgkJCQkJPGltZyBhbHQ9IkZvcmQgRS1UcmFuc2l0IGZvdXJnb25uZXR0ZSB1dGlsaXRhaXJlIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9FX1RyYW5zaXRfQ2FyZ29fVmFuLzIwMjcvNDg2MjY4L0JsYWNrL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSd7InN0eWxlaWQiOjQ4NjI2OCwidGl0bGUiOiJGb3JkIEUtVHJhbnNpdCBmb3VyZ29ubmV0dGUgdXRpbGl0YWlyZSAyMDI3IiwiaHJlZiI6IlwvbmV1ZnNcL0ZvcmQtRV9UcmFuc2l0X0NhcmdvX1Zhbi0yMDI3Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8zMCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgVHJhbnNpdCB0b3VyaXNtZSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iRm9yZCIgZGF0YS1tb2RlbD0iVHJhbnNpdCB0b3VyaXNtZSAyMDI3Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkZvcmQ8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlRyYW5zaXQgdG91cmlzbWUgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjc3IDk5NTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozc0IDgwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzMgMDk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzcgOTk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlRyYW5zaXQgUGFzc2VuZ2VyIFdhZ29uIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NjEwMSw0ODYxMDMsNDg2MTA1LDQ4NjEwOSw0ODYxMDcsNDg2MTExLDQ4NjEwMiw0ODYxMTMsNDg2MTA0LDQ4NjEwNiw0ODYxMTUsNDg2MTEwLDQ4NjEwOCw0ODYxMTIsNDg2MTE0LDQ4NjExNiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFRyYW5zaXQgdG91cmlzbWUgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0ZvcmQtVHJhbnNpdF9QYXNzZW5nZXJfV2Fnb24tMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iRm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvRm9yZC9UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi8yMDI3LzQ4NjEwMS9CbGFjay9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0neyJzdHlsZWlkIjo0ODYxMDEsInRpdGxlIjoiRm9yZCBUcmFuc2l0IHRvdXJpc21lIDIwMjciLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1UcmFuc2l0X1Bhc3Nlbmdlcl9XYWdvbi0yMDI3Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8zMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTYwMCBSQVJKIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl82MDBfRFJXLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjg2IDcyMDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozg0IDIyNSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMzk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODYgNzIwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi02MDAgRFJXIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NTQ4Nyw0NjU0OTEsNDY1NDk1LDQ2NTQ5OSw0NjU0ODgsNDY1NDkyLDQ2NTQ5Niw0NjU1MDAsNDY1NDg5LDQ2NTQ5Myw0NjU0OTcsNDY1NTAxLDQ2NTQ5MCw0NjU0OTQsNDY1NDk4LDQ2NTUwMiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNjAwX0RSVy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzYwMF9EUlcvMjAyNS80NjU0ODcvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDY1NDg3LCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTYwMCBSQVJKIDIwMjUiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfNjAwX0RSVy0yMDI1Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY29tbWVyY2lhbF8zMiI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9IkZvcmQgU3VwZXIgRHV0eSBGLTYwMCBSQVJKIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9Gb3JkLVN1cGVyX0R1dHlfRl82MDBfRFJXLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJGb3JkIiBkYXRhLW1vZGVsPSJTdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5Gb3JkPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5TdXBlciBEdXR5IEYtNjAwIFJBUkogMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjg5IDI4MDwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0Ozg2IDQ4NSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNjk1Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7ODkgMjgwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9IkZvcmQiIGRhdGEtbW9kZWw9IlN1cGVyIER1dHkgRi02MDAgRFJXIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3ODEwMCw0NzgxMDQsNDc4MTA5LDQ3ODExMyw0NzgxMDEsNDc4MTA2LDQ3ODExMCw0NzgxMTQsNDc4MTAyLDQ3ODEwNyw0NzgxMTEsNDc4MTE1LDQ3ODEwMyw0NzgxMDgsNDc4MTEyLDQ3ODExNiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJGb3JkIFN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvRm9yZC1TdXBlcl9EdXR5X0ZfNjAwX0RSVy0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJGb3JkIFN1cGVyIER1dHkgRi02MDAgUkFSSiAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0ZvcmQvU3VwZXJfRHV0eV9GXzYwMF9EUlcvMjAyNi80NzgxMDAvQmxhY2svcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9J3sic3R5bGVpZCI6NDc4MTAwLCJ0aXRsZSI6IkZvcmQgU3VwZXIgRHV0eSBGLTYwMCBSQVJKIDIwMjYiLCJocmVmIjoiXC9uZXVmc1wvRm9yZC1TdXBlcl9EdXR5X0ZfNjAwX0RSVy0yMDI2Lmh0bWwiLCJsaW5rc3R5bGUiOiIiLCJsaW5rY2xhc3MiOiIiLCJjb250YWluZXJjbGFzcyI6IiIsInByb21vdGV4dCI6Ik9mZnJlIGFkZGl0aW9ubmVsbGUhIn0nPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2PjwvZGl2PjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUllCT1hXUkFQUEVSICgyMjAyKS0tPjwvZGl2PjwhLS0gQ0xPU0UgQ0FURUdPUklFU0JPWFdSQVBQRVIgKDIyMDkpLS0+PGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkZvcmQiIGlkPSJpc0JyYW5kUGFnZSI+CiAgICAgICAgCTwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RGlzY2xhaW1lckJsb2NrIj4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXZEaXNjbGFpbWVyQmxvY2tDb250ZW50Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZGl2RGlzY2xhaW1lckJsb2NrVGl0bGUiPgogICAgICAgICAgICAgICAgQ2xhdXNlIGRlIG5vbi1yZXNwb25zYWJpbGl0w6kKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdkRpc2NsYWltZXJCbG9ja1RleHQiPgogICAgICAgICAgICAgICAgTGVzIHBob3RvcyBzb250IMOgIGRlcyBmaW5zIGQnaWxsdXN0cmF0aW9uIHVuaXF1ZW1lbnQgZXQgcGV1dmVudCBuZSBwYXMgcmVmbMOpdGVyIGxlIHbDqWhpY3VsZSBleGFjdCAoeSBjb21wcmlzIGxhIGNvdWxldXIgZHUgdsOpaGljdWxlLCBsJ2hhYmlsbGFnZSwgbGVzIG9wdGlvbnMgb3UgZCdhdXRyZXMgc3DDqWNpZmljYXRpb25zKS4gQ2VydGFpbnMgdsOpaGljdWxlcyBwZXV2ZW50IMOqdHJlIG1vbnRyw6lzIGF2ZWMgZGVzIMOpcXVpcGVtZW50cyBlbiBvcHRpb24gb3UgZGVzIMOpcXVpcGVtZW50cyBub24gZGlzcG9uaWJsZXMgYXUgQ2FuYWRhLiBMZXMgc3DDqWNpZmljYXRpb25zLCBsJ8OpcXVpcGVtZW50LCBsZXMgb3B0aW9ucyBldCBsZXMgcHJpeCBwZXV2ZW50IMOqdHJlIG1vZGlmacOpcyBzYW5zIHByw6lhdmlzLiBCaWVuIHF1ZSBub3VzIG5vdXMgZWZmb3JjaW9ucyBkZSBub3VzIGFzc3VyZXIgcXVlIGxlcyByZW5zZWlnbmVtZW50cyBjb250ZW51cyBzdXIgY2Ugc2l0ZSBXZWIgc29udCBleGFjdHMsIGxlIGZvdXJuaXNzZXVyIFdlYiBldCBsZSBjb25jZXNzaW9ubmFpcmUgbmUgcGV1dmVudCDDqnRyZSB0ZW51cyByZXNwb25zYWJsZXMgZW4gY2FzIGQnZXJyZXVyIG91IGQnb21pc3Npb24gcG91dmFudCBzZSBwcm9kdWlyZSBkZSB0ZW1wcyDDoCBhdXRyZS4gQ2VydGFpbmVzIGRvbm7DqWVzIGV0IGNlcnRhaW5zIHByaXggc29udCBmb3VybmlzIHBhciB1biB0aWVycyBwYXJ0aSBldCBub3VzIG5lIHBvdXZvbnMgZW4gZ2FyYW50aXIgbCdleGFjdGl0dWRlLiBWZXVpbGxleiBjb21tdW5pcXVlciBhdmVjIHZvdHJlIGNvbmNlc3Npb25uYWlyZSBwb3VyIG9idGVuaXIgbGVzIHbDqXJpZmljYXRpb25zIG91IHNpIHZvdXMgc291aGFpdGV6IG9idGVuaXIgZGUgcGx1cyBhbXBsZXMgaW5mb3JtYXRpb25zIHN1ciBjZSB2w6loaWN1bGUuCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgkJCTwvZGl2PgoKICAgICAgIAkKCgk8ZGl2IGNsYXNzPSJ1aS1sb2FkZXItYmFja2dyb3VuZCI+PGltZyBjbGFzcz0idWktbG9hZGVyLWJhY2tncm91bmQtZ2lmIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL3NvcmVsLXRyYWN5Zm9yZC5jYS8vaW1hZ2VzL2FqYXgtbG9hZGVyMi5naWYiIGFsdD0iYWpheCBsb2FkZXIyIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+PC9kaXY+CgoJCgkKCgoKCQoJCgkKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50SXRlbVR5cGUiIHZhbHVlPSJjYXIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRJdGVtVHlwZVVSTFNhZmVFTiIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudFN0YXR1cyIgdmFsdWU9Im5ldyI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idHh0VXNlckFnZW50IiB2YWx1ZT0iICAiPgoJCTxzY3JpcHQgYXN5bmMgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vc3RhdHMuZDJjbWVkaWEuY2Evc2VydmljZS9kMmMuaW5pdC5qcyI+PC9zY3JpcHQ+CgoJPGRpdiBpZD0iY29udmVyc2lvblRhZ3NXcmFwcGVyIj48L2Rpdj4KCgk8ZGl2IGlkPSJkMmNfdmFycyI+PGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgaWQ9InNvN3l1cWFqNGR3Y2M4cyIgZGF0YS1mb3J2YXI9IlNJVEVfQ0FSX1NFQ1RJT05fVFlQRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJuZXdjYXJzLmh0bWwiIGlkPSIxNmQ3dnd0NjZwbW93bzBrIiBkYXRhLWZvcnZhcj0iQ1VSUkVOVFBBR0UiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMGRjOTgwNTEzMzgzYjBlNWYwODBhZGFhNWMxYmNiMWN8MTMxMDA4MzAwNiIgaWQ9IjEzZHF0c25jZDgxd2s4NDQiIGRhdGEtZm9ydmFyPSJGSU5BTkNFX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9IjVjY3lnazkyNW1nd2cwIiBkYXRhLWZvcnZhcj0iRklOQU5DRV9BREZfRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ibGl2ZSIgaWQ9IjJlamhiYzB5eW9nMHd3dyIgZGF0YS1mb3J2YXI9IkRFUExPWU1FTlRUWVBFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Imdvb2dsZSIgaWQ9IjE0MDRyYTA0Yndya280d2ciIGRhdGEtZm9ydmFyPSJNQVBUT1VTRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJzb3JlbC10cmFjeWZvcmQuY2EiIGlkPSJ1NnRocnc5b2xjZzh3OHciIGRhdGEtZm9ydmFyPSJET01BSU5OQU1FIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Imh0dHBzOi8vd3d3LnNvcmVsLXRyYWN5Zm9yZC5jYSIgaWQ9ImNvdTlobTQyOTFjMGtvYyIgZGF0YS1mb3J2YXI9Ik5PUk1BTFNJVEVVUkkiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iMWVyaXY5MDBwZGE4OHd3OCIgZGF0YS1mb3J2YXI9Ik1BS0VGT1JFTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSIxMHBhN3YzcWVsZGNvc2siIGRhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9InI4Mnpma3hhMmR3c3MwMCIgZGF0YS1mb3J2YXI9IllFQVIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iaTNnc2F4Z3M1ams4d2NrIiBkYXRhLWZvcnZhcj0iUkVGRVJFUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJyZXNldCIgaWQ9IjZqeXA0NjY0dmd3czgwdyIgZGF0YS1mb3J2YXI9IlBPUFVQV0lER0VUVE9BQ1RJVkUiPgo8L2Rpdj48IS0tICMjRU5ET0ZQQUdFIyMgLS0+Cgk8ZGl2IGlkPSJjb25maXJtX2Zvcm1zIj48L2Rpdj4KCgk8IS0tIE9POjpiMTQ0ZGMxN2E1MDE0MDVmYTFmZmQ5NmM3ZmYyZDg0ZiAtLT4KCgkKCgk8IS0tIERXUC0yNDM5IC0tPgoJPCEtLSBPTzo6MzE0Y2FhNWJmNTkwOTJjNmY3Y2Y2YTJmYzcyZTk1MTMgLS0+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgaWQ9ImlzbW9iaWxlIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJGUkVOQ0giIGlkPSJhY3RpdmVzaXRlbGFuZ3VhZ2UiPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BzaXRlaWQiIG5hbWU9InRvcHNpdGVpZCIgdmFsdWU9IjE0NDYiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGNhcmlkIiBuYW1lPSJ0b3BjYXJpZCIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idG9wY2FyaWRNdWx0aXN0ZXBGb3JtIiBuYW1lPSJ0b3BjYXJpZE11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGlzbW9iaWxlIiBuYW1lPSJ0b3Bpc21vYmlsZSIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGRlcGxveW1lbnR0eXBlIiBuYW1lPSJ0b3BkZXBsb3ltZW50dHlwZSIgdmFsdWU9ImxpdmUiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImVNb2RlbCIgbmFtZT0iZU1vZGVsIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cG1ha2UiIG5hbWU9InBvcHVwbWFrZSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtb2RlbCIgbmFtZT0icG9wdXBtb2RlbCIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHllYXIiIG5hbWU9InBvcHVweWVhciIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB0cmltIiBuYW1lPSJwb3B1cHRyaW0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwc3RvY2tudW1iZXIiIG5hbWU9InBvcHVwc3RvY2tudW1iZXIiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZG1ha2UiIG5hbWU9Imxhc3R2aWV3ZWRtYWtlIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkbW9kZWwiIG5hbWU9Imxhc3R2aWV3ZWRtb2RlbCIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHllYXIiIG5hbWU9Imxhc3R2aWV3ZWR5ZWFyIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2VkdHJpbSIgbmFtZT0ibGFzdHZpZXdlZHRyaW0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRzdG9ja251bWJlciIgbmFtZT0ibGFzdHZpZXdlZHN0b2NrbnVtYmVyIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoYXNNdWx0aXBsZURlYWxlcnMiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlbmRFbWFpbFRvQWxsRGVhbGVycyIgdmFsdWU9IjAiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlYXJjaGVkVmVoaWNsZSIgdmFsdWU9IiAgIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5bWFrZSIgbmFtZT0ic2VhcmNoZWRxdWVyeW1ha2UiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlYXJjaGVkcXVlcnltb2RlbCIgbmFtZT0ic2VhcmNoZWRxdWVyeW1vZGVsIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5eWVhciIgbmFtZT0ic2VhcmNoZWRxdWVyeXllYXIiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImltZ3N2cnBvb2xhY3RpdmUiIG5hbWU9ImltZ3N2cnBvb2xhY3RpdmUiIHZhbHVlPSJUUlVFIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpc0FWR01hcmtldFByaWNlQWN0aXZlIiB2YWx1ZT0iMCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZWNvbXBpbGVpZCIgbmFtZT0ic2l0ZWNvbXBpbGVpZCIgdmFsdWU9IjZhNTE1YzhjYzdmNWQiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImVtYWlsTGlzdFN1ZmZpeCIgbmFtZT0iZW1haWxMaXN0U3VmZml4IiB2YWx1ZT0iMTMxMDA4MzAwNiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGlzYWJsZVBvcHVwcyIgbmFtZT0iZGlzYWJsZVBvcHVwcyIgdmFsdWU9IjAiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkFETUlOX0dFTkVSQUxfQkxPQ0tfRlJfRE9NQUlOX0NIRUNLIiBuYW1lPSJBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIgdmFsdWU9IjEiPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0YXJnZXRQYWdlIiBuYW1lPSJ0YXJnZXRQYWdlIiB2YWx1ZT0iTkVXQ0FSUyI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icGFnZVNlY3Rpb24iIG5hbWU9InBhZ2VTZWN0aW9uIiB2YWx1ZT0iTkVXIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cE90aGVyUGFnZXMiIG5hbWU9IkRpc2NvdW50UG9wdXBPdGhlclBhZ2VzIiB2YWx1ZT0iSE9NRVBBR0U7UFJPTU87U0VSVklDRVM7RklOQU5DRTtURUFNO0NPTlRBQ1QiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBEZWxheVNob3dPdGhlciIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd090aGVyIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBEZWxheVNob3dOZXciIG5hbWU9IkRpc2NvdW50UG9wdXBEZWxheVNob3dOZXciIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE8iIG5hbWU9IlNIT1dfUE9QVVBfQVVUTyIgdmFsdWU9ImRlbGF5Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJTSE9XX1BPUFVQX0FVVE9fVVNFRCIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX1VTRUQiIHZhbHVlPSJkZWxheSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPX05FVyIgbmFtZT0iU0hPV19QT1BVUF9BVVRPX05FVyIgdmFsdWU9ImRlbGF5Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVAiIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUCIgdmFsdWU9Ijc1Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBVVRPX1BFUkNFTlRfUE9QVVBfVVNFRCIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX1VTRUQiIHZhbHVlPSI3NSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgbmFtZT0iQVVUT19QRVJDRU5UX1BPUFVQX05FVyIgdmFsdWU9Ijc1Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJHRU5FUkFMX1VTRURfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfVVNFRF9QQUdFX1BPUFVQX1NFTEVDVCIgdmFsdWU9IklOQ0xVRElORyI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR0VORVJBTF9ORVdfUEFHRV9QT1BVUF9TRUxFQ1QiIG5hbWU9IkdFTkVSQUxfTkVXX1BBR0VfUE9QVVBfU0VMRUNUIiB2YWx1ZT0iSU5DTFVESU5HIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJVU0VEX0xPR09fT05fQ0hFQ0siIG5hbWU9IlVTRURfTE9HT19PTl9DSEVDSyIgdmFsdWU9IiI+CgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNFTV9CT09TVEVSX0FDVElWRSIgbmFtZT0iU0VNX0JPT1NURVJfQUNUSVZFIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iUEFHRUlEIiBuYW1lPSJQQUdFSUQiIHZhbHVlPSJuZXdjYXJzLmh0bWwiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBDaGVja2JveE90aGVyIiBuYW1lPSJEaXNjb3VudFBvcHVwQ2hlY2tib3hPdGhlciIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBDaGVja2JveCIgbmFtZT0iRGlzY291bnRQb3B1cENoZWNrYm94IiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cENoZWNrYm94TmV3IiBuYW1lPSJEaXNjb3VudFBvcHVwQ2hlY2tib3hOZXciIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJDUk1fV1NTX0FDVElWRSIgbmFtZT0iQ1JNX1dTU19BQ1RJVkUiIHZhbHVlPSJubyI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idHh0QnVpbGRBbmRQcmljZUVtYWlsTGluayIgdmFsdWU9IkRlcm5pZXIgdsOpaGljdWxlIGNvbmZpZ3Vyw6kgKG1vZHVsZSBDb25maWd1cmF0aW9uICZhbXA7IFByaXgpIGxlIHskQkFOUExJTkt9Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRCdWlsZEFuZFByaWNlRm9sZGVyUGF0aCIgdmFsdWU9Ii9jb25maWd1cmF0aW9uLWV0LXByaXgvIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibmV3U2VjdGlvbm5hYmxlZCIgbmFtZT0ibmV3U2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InVzZWRTZWN0aW9ubmFibGVkIiBuYW1lPSJ1c2VkU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImZpbmFuY2VTZWN0aW9ubmFibGVkIiBuYW1lPSJmaW5hbmNlU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNlcnZpY2VTZWN0aW9ubmFibGVkIiBuYW1lPSJzZXJ2aWNlU2VjdGlvbm5hYmxlZCIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InByb21vU2VjdGlvbm5hYmxlZCIgbmFtZT0icHJvbW9TZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQ0FNUEFJR05JRCIgbmFtZT0iQ0FNUEFJR05JRCIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iSVNWTSIgbmFtZT0iSVNWTSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRU1BSUxfRkFJTF9NRVNTQUdFIiB2YWx1ZT0iVW5lIGVycmV1ciBlc3Qgc3VydmVudWUgbG9ycyBkZSBsJ2Vudm9pIGRlIHZvdHJlIG1lc3NhZ2UuIFZldWlsbGV6IHLDqWVzc2F5ZXIuIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJoaWRkZW5EZWFsZXJOYW1lIiB2YWx1ZT0iU29yZWwtVHJhY3kgRm9yZCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJDQkJDaGVja1VzZXIiIHZhbHVlPSJNVGd1T1RjdU1UUXVPRFU9Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcm1fZW1haWxzIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIwIiBpZD0iaGFzVkJEQ0VuYWJsZWQiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImZmZEwxIiB2YWx1ZT0iNmE1OWJhNmE0MjI5MDE2MTkyMWJiMDUyYzM2ZTJjODVkYzAxMzQ5ZiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR1JXTCIgbmFtZT0iR1JXTCIgdmFsdWU9ImIyZTM1MGI3MWMxNjQ2YjdlZWVjOWUxYWY2Yzg1NGIxM2NiMWRiNTE7YmE2Yjg2MTFjYmExMTc4MDMxYjE3ZmE3ZTM1MGFjZjJjZTEzNWFhNTswOWMzNTgwN2JhNDdhODI1OTJlZjg4ZTVkNjMwNGVhNjk5YjhjYmUyIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSQlJBTkQiIG5hbWU9IkRFQUxFUkJSQU5EIiB2YWx1ZT0iRm9yZCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iREVBTEVSUEFDT0RFIiBuYW1lPSJERUFMRVJQQUNPREUiIHZhbHVlPSJCMjU0OSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRklOQU5DRUZPUk1UWVBFIiBuYW1lPSJGSU5BTkNFRk9STVRZUEUiIHZhbHVlPSIxc3RlcCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cE5ld1JlYmF0ZVNob3dUZXh0VXMiIHZhbHVlPSIwIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwVXNlZFJlYmF0ZVNob3dUZXh0VXMiIHZhbHVlPSIwIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ib2VtQ2VydGlmaWNhdGlvbiIgdmFsdWU9IjEwMDUiPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjb29raWVMb2dUb2tlbiIgdmFsdWU9Ik1qVTNPVEkyTnpnNU1qZzRNZz09Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjb29raWVUb0NoZWNrIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZGlzYWJsZUludGVybmFsU2Vzc2lvbiIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRlYWxlclByb3ZpbmNlQ29kZSIgdmFsdWU9IlFDIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlSUQiIHZhbHVlPSIxNDQ2Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlYXBpdXJsIiB2YWx1ZT0iaHR0cHM6Ly9zaXRlYXBpLmQyY21lZGlhLmNhIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJGaW5hbmNlX0Zvcm1UeXBlIiB2YWx1ZT0iMXN0ZXAiPgoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2UiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+Vm90cmUgZGVtYW5kZSBhIMOpdMOpIGVudm95w6llIGF2ZWMgc3VjY8Oocy4gVW4gcmVwcsOpc2VudGFudCB2b3VzIGNvbnRhY3RlcmEgc291cyBwZXUuPC9wPgogICAgICA8cCBjbGFzcz0ic2VydmljZVN1Y2Nlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YnI+TWVyY2kgcG91ciB2b3RyZSBkZW1hbmRlLiBVbiBtZW1icmUgZGUgbm90cmUgw6lxdWlwZSBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIiBvbmNsaWNrPSIkKCcuY2xvc2UtcmV2ZWFsLW1vZGFsOnZpc2libGUnKS50cmlnZ2VyKCdjbGljaycpO3JldHVybiBmYWxzZTsiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybSIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSIxMDk4MjY4NTAxMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9IjU4bFZDS0t3bU9RREVOUHktZlFvIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9InNvcmVsLXRyYWN5Zm9yZC5jYSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjEiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MXB4O2hlaWdodDoxcHg7Ij48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2UiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCgkJPGRpdiBpZD0iZDJjRm9vdGVyQ29va2llRGVsZXRlIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjMyMHB4O2hlaWdodDoyNTBweDtwYWRkaW5nOjMwcHggMTBweCA4MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX2QyY2Zvb3RlcmNvb2tpZWRlbGV0ZSI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjpjMWNkYmNiNTI1Mzg2NzM2Yjc0YzcwM2JhNDllM2Y3YSAtLT4KCgkJCgkJCQkJCgoJCQkKCQk8c3R5bGU+CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqewoJCQkJd2lkdGg6IGNsYW1wKDIwLjVyZW0sIG1heCg5MHZ3LCAyMC41cmVtKSwgNjByZW0pOwoJCQkJZGlyZWN0aW9uOiBydGw7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICogPiAqewoJCQkJZGlyZWN0aW9uOiBpbml0aWFsOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqID46bGFzdC1jaGlsZHsKCQkJCXdpZHRoOiAyMHJlbTsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjewoJCQkJLS1zaWRlYmFyLWJwOiA0MCU7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc3dpdGNoZXItbGN7CgkJCQktLXN3aXRjaC1icDogMzVyZW07CgkJCX0KCgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IGxhYmVsewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQkJZGlzcGxheTogZmxleDsKCQkJCWZsZXgtd3JhcDogd3JhcDsKCQkJCWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKCQkJfQoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBsYWJlbCBzcGFuewoJCQkJd2lkdGg6NHJlbTsKCQkJfQoKCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgW3R5cGU9InN1Ym1pdCJdewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQl9CgoJCQkuY29udGFjdE1hcENvbnRhaW5lcnsKCQkJCWhlaWdodDoxMDAlOwoJCQkJbWluLWhlaWdodDptaW4oNzV2aCwgMzhyZW0pOwoJCQl9CgoJCQkuY29udGFjdEZvcm17CgkJCQlib3JkZXItY29sb3I6I2JiYjsKCQkJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmNvbnRhY3RGb3JtIGlucHV0ewoJCQkJbWF4LXdpZHRoOiAxMHJlbTsKCQkJfQoKCgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkewoJCQkJYmFja2dyb3VuZC1jb2xvcjojMDAwOwoJCQkJYm9yZGVyLWNvbG9yOiMwMDA7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmZsYXRwaWNrci10aW1lIDppcyhpbnB1dDpob3ZlcixpbnB1dDpmb2N1cyl7CgkJCQliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKCQkJfQoKCQkJLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoLCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzewoJCQkJdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOwoJCQl9CgoJCQkvKiAuZHAtbGFyZ2UgLmZsYXRwaWNrci1jYWxlbmRhcnsKCQkJCXdpZHRoOjMwcmVtOwoJCQkJZm9udC1zaXplOjEuMXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIC5mbGF0cGlja3Itd2Vla2RheXN7CgkJCQloZWlnaHQ6Mi41cmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgLmZsYXRwaWNrci1kYXl7CgkJCQltYXgtd2lkdGg6IDRyZW07CgkJCQloZWlnaHQ6IDIuNXJlbTsKCQkJCWxpbmUtaGVpZ2h0OiAyLjVyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSA6aXMoLmZsYXRwaWNrci1kYXlzLC5kYXlDb250YWluZXIpIHsKCQkJCXdpZHRoOjEwMCU7CgkJCQltYXgtd2lkdGg6IDMwcmVtOwoJCQl9ICovCgkJPC9zdHlsZT4KCgkJCTxkaXYgaWQ9ImxlYWREZWFsZXJBcHBvaW50bWVudCIgaGlkZGVuPgoJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIj4KCQkJCTxzaWRlYmFyLWxjPgoJCQkJCTxkaXY+IDwhLS0gaW50ZXJtZWRpYXJ5IHdyYXBwZXIgLS0+CgoJCQkJCQk8Ym94LWxjPgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCTx1bCBjbGFzcz0iY2hlY2tsaXN0IC1mcy0xIC0tcyI+CgkJCQkJCQkJCTxsaT5VbmUgZXhww6lyaWVuY2UgcGVyc29ubmFsaXPDqWUgZMOocyB2b3RyZSBhcnJpdsOpZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgYXR0ZW50ZSBjaGV6IGxlIGNvbmNlc3Npb25uYWlyZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgcGFwZXJhc3NlIGludXRpbGU6IGNvbmNlbnRyZXotdm91cyBzdXIgbGUgdsOpaGljdWxlPC9saT4KCQkJCQkJCQk8L3VsPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtY2VudGVyIj4KCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJkYXRlcGlja2VyIGZsYXRwaWNrci1pbnB1dCIgaGlkZGVuIHR5cGU9InRleHQiIHRpdGxlPSJTZWxlY3QgRGF0ZS4uLiIgcGxhY2Vob2xkZXI9IlNlbGVjdCBEYXRlLi4uIiBkYXRhLWlkPSJpbmxpbmUiIHJlYWRvbmx5PgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImNvbnRhY3RGb3JtIC1iIC13LTEwMCBmbGV4LWNlbnRlciAtLXMyIj4KCQkJCQkJCQkJPGZvcm0gaWQ9ImZvcm1EZWFsZXJBcHBvaW50bWVudCIgY2xhc3M9Ii13LTEwMCIgbm92YWxpZGF0ZT4KCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMiBhbGlnbi1jZW50ZXIiPgoKCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQgdHh0LWNlbnRlciB0eHQtdXBwZXIgc2VsZWN0ZWRUaW1lIj48L3NwYW4+CgkJCQkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0ZSI+CgoJCQkJCQkJCQkJCTxzd2l0Y2hlci1sYz4KCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIiPiA8IS0tIGludGVybWVkaWFyeSB3cmFwcGVyIC0tPgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+Tm9tICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IHJlcXVpcmVkIGNsYXNzPSItcGgiIG5hbWU9Im5hbWUiIHR5cGU9InRleHQiPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Db3VycmllbCAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Uw6lsw6lwaG9uZSAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBkYXRhLXByaXN0aW5lLXBob25lIG5hbWU9InBob25lbnVtIiB0eXBlPSJ0ZWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCQkJPC9zd2l0Y2hlci1sYz4KCgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0icmVjYXB0Y2hhLWRpc2NsYWltZXIiPldFQl9TSVRFX0dFTkVSQVRPUl9SRUNBUFRDSEFfRElTQ0xBSU1FUjwvZGl2PgoJCQkJCQkJCQkJCTxidXR0b24gb25zdWJtaXQ9ImphdmFzY3JpcHQ6dm9pZCgpIiBjbGFzcz0iYnRuIGJ0bi1wcm9tbyAtZnMtbHIgLXctMTAwIHR4dC11cHBlciAtYm9sZCIgdHlwZT0ic3VibWl0Ij4KCQkJCQkJCQkJCQkJUHJlbmRyZSByZW5kZXotdm91cwoJCQkJCQkJCQkJCTwvYnV0dG9uPgoKCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0iZGF0YSIgdHlwZT0iaGlkZGVuIiBkYXRhLW1ha2U9IiIgZGF0YS1tb2RlbD0iIiBkYXRhLXllYXI9IiIgZGF0YS10cmltPSIiIGRhdGEtY29uZGl0aW9uPSIiIGRhdGEta209IiIgZGF0YS12aW49IiIgZGF0YS1zdG9jay1udW1iZXI9IiI+CgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJzZW5kVG8iIHZhbHVlPSIwZGM5ODA1MTMzODNiMGU1ZjA4MGFkYWE1YzFiY2IxY3wxMzEwMDgzMDA2IiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJzZW5kVG9BREZGb3JtYXQiIHZhbHVlPSIiIHR5cGU9ImhpZGRlbiI+CgkJCQkJCQkJCQkJPGlucHV0IG5hbWU9Im1haWxJRCIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50IiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJwb3B1cE9mZmVyVHlwZSIgdmFsdWU9IkRlYWxlckFwcG9pbnRtZW50QWxsIiB0eXBlPSJoaWRkZW4iPgoKCQkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJsZWFkRW1haWwiIGhpZGRlbj4KCQkJCQkJCQkJCQkJPHNwYW4gZGF0YS1zdWJqZWN0PkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzPC9zcGFuPgoJCQkJCQkJCQkJCQk8c3BhbiBkYXRhLWJvZHk+Qm9uam91ciw8YnI+PGJyPlVuIGNsaWVudCBwb3RlbnRpZWwgYXlhbnQgdmlzaXTDqSB2b3RyZSBzaXRlIHdlYiwgYWltZXJhaXQgcHJlbmRyZSB1biByZW5kZXotdm91czo8YnI+PGJyPjx1PlJlbnNlaWduZW1lbnRzIHN1ciBsZSB2w6loaWN1bGU8L3U+Ojxicj5Nb2TDqGxlOiA8c3Ryb25nPiAgPC9zdHJvbmc+PGJyPk5JVjogPHN0cm9uZz57JFZJTn08L3N0cm9uZz48YnI+TnVtw6lybyBkZSBzdG9jazogPHN0cm9uZz57JFNUT0NLTlVNQkVSfTwvc3Ryb25nPjxicj5LaWxvbcOodHJlczogPHN0cm9uZz57JEtNfTwvc3Ryb25nPjxicj48YnI+PHU+RGF0ZSBkdSByZW5kZXotdm91cyBzb3VoYWl0w6k8L3U+IDogPHN0cm9uZz57JERBVEV9PC9zdHJvbmc+PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdmlzaXRldXI8L3U+Ojxicj5Ob206IDxzdHJvbmc+eyROQU1FfTwvc3Ryb25nPjxicj5Db3VycmllbDogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD1tYWlsdG86JTdCJTI0RU1BSUwlN0QiPnskRU1BSUx9PC9hPjwvc3Ryb25nPjxicj5Uw6lsw6lwaG9uZTogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD10ZWw6JTdCJTI0UEhPTkVOVU0lN0QiPnskUEhPTkVOVU19PC9hPjwvc3Ryb25nPiB7JFBIT05FX1ZBTElEQVRJT05fQVRURU1QVFN9PGJyPjxicj48dT5Db25jZXNzaW9uPC91Pjo8YnI+Tm9tIDogPHN0cm9uZz57JERFQUxFUk5BTUV9PC9zdHJvbmc+PGJyPjxicj48ZGl2IHN0eWxlPSIjI1NFT0JMT0NLRElTUExBWSMjIj5Tb3VyY2UgTcOpZGlhOiA8c3Ryb25nPnskVVRNREVUQUlMU308L3N0cm9uZz48YnI+TmF2aWdhdGV1cjogPHN0cm9uZz57JFVTRVJBR0VOVH0gLSA8L3N0cm9uZz48YnI+SGlzdG9yaXF1ZSBkZSBuYXZpZ2F0aW9uOiA8c3Ryb25nPjxhIGhyZWY9Ij9wYXRoPSU3QiUyNFVVTElOSyU3RCIgcmVsPSJub2ZvbGxvdyB1Z2Mgc3BvbnNvcmVkIG5vaW5kZXgiIHN0eWxlPSJjb2xvcjpibGFjazsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyI+Q2xpcXVleiBpY2k8L2E+PC9zdHJvbmc+PGJyPjwvZGl2PkNvbnNlbnRlbWVudDogPHN0cm9uZz57JENPTlNFTlRfREVUQUlMU308L3N0cm9uZz57JFBVUkNIQVNFX0lOVEVOVH08L3NwYW4+CgkJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJPC9mb3JtPgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJPC9ib3gtbGM+CgoJCQkJCQk8ZGl2PgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJjb250YWN0TWFwQ29udGFpbmVyIC0tcy04IC1iZy1saWdodCIgaWQ9ImZvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyIj4KCgkJCQkJCQkJCgkJCTxpZnJhbWUgdGl0bGU9Ikdvb2dsZSBNYXAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZyYW1lYm9yZGVyPSIwIiBjbGFzcz0iIGxhenlsb2FkZWQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlP3E9cGxhY2VfaWQlM0FDaElKTXpFSnA0LVB5RXdSV3NMd2dNQWY3REUmYW1wO2tleT1BSXphU3lBR1JOc0VzR091ald6b2xmNDZEYTZzSDYzT01KQ3ZaNjAmYW1wO3pvb209MTQmYW1wO3JlZ2lvbj1DQSZhbXA7bGFuZ3VhZ2U9ZnIiIGFsbG93ZnVsbHNjcmVlbj0iIj48L2lmcmFtZT4KCgkJCQkJCQkJPGJveC1sYyBjbGFzcz0iY29udGFjdEJsb2NrIC0tczIgLW0wIj4KCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMzIj4KCQkJCQkJCQkJCTxkaXY+CgkJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMtOCI+CgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItLWZzMCI+U29yZWwtVHJhY3kgRm9yZDwvc3Bhbj4KCQkJCQkJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNhL21hcHMvZGlyLz9hcGk9MSZhbXA7ZGVzdGluYXRpb249U29yZWwtVHJhY3klMkJGb3JkJTJDMjMyNStydWUrTGFwcmFkZSUyQ1NvcmVsLVRyYWN5JTJDUUMlMkNKM1IrMkMxJmFtcDtobD1mciZhbXA7dD1tJmFtcDt6PTE2JmFtcDtpZT1VVEY4JmFtcDtkZXN0aW5hdGlvbl9wbGFjZV9pZD1DaElKTXpFSnA0LVB5RXdSV3NMd2dNQWY3REUiIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iLS1mcy0xIj4KCQkJCQkJCQkJCQkJCTxzcGFuPjIzMjUgcnVlIExhcHJhZGU8L3NwYW4+CgkJCQkJCQkJCQkJCQk8c3Bhbj5Tb3JlbC1UcmFjeSwgUUM8L3NwYW4+CgkJCQkJCQkJCQkJCQk8c3Bhbj5KM1IgMkMxPC9zcGFuPgoJCQkJCQkJCQkJCQk8L2E+CgkJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCTxkaXY+CgkJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMtOCI+CgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItYm9sZCI+VMOpbMOpcGhvbmU8L3NwYW4+CgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItLWZzLTEiPgoJCQkJCQkJCQkJCQkJPGEgaHJlZj0iP3BhdGg9dGVsOjQ1MCUyMDc0Mi0yNzQzIiBkYXRhLWRlcGFydG1lbnQ9IlNhbGVzIiB0aXRsZT0iQ29udGFjdCBQaG9uZSI+NDUwIDc0Mi0yNzQzPC9hPgoJCQkJCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCTxkaXY+CgkJCQkJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSItLXMtOCI+CgkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItYm9sZCI+SGV1cmVzPC9zcGFuPgoJCQkJCQkJCQkJCQkJCQk8ZGl2IGlkPSJpdGVtX25ldyI+CgkJCQk8c3RhY2stbGMgY2xhc3M9ImhvdXJzTGlzdCI+CgkJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMTk6MzAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5MdW5kaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMTk6MzA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwOTowMCIgZGF0YS1tYXhob3VyPSIxOTozMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPk1hcmRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDk6MDAgLSAxOTozMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA5OjAwIiBkYXRhLW1heGhvdXI9IjE5OjMwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+TWVyY3JlZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wOTowMCAtIDE5OjMwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMTk6MzAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5KZXVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMTk6MzA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwOTowMCIgZGF0YS1tYXhob3VyPSIxNzowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPlZlbmRyZWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDk6MDAgLSAxNzowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjAiIGRhdGEtbWF4aG91cj0iMCIgZGF0YS1jbG9zZWQ9IjEiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPlNhbWVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPkZlcm3DqTwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjAiIGRhdGEtbWF4aG91cj0iMCIgZGF0YS1jbG9zZWQ9IjEiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPkRpbWFuY2hlPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+RmVybcOpPC9zcGFuPgoJCQkJPC9ib3gtbGM+CgkJCQk8L3N0YWNrLWxjPgoJCQk8L2Rpdj4KCQkJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCQkJPC9kaXY+CgoJCQkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQkJCTwvYm94LWxjPgoKCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCTwvZGl2PgoKCQkJCQk8L2Rpdj4KCQkJCTwvc2lkZWJhci1sYz4KCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgoJCQkJCgoJCQkJPCEtLSBPTzo6YmQzNzVlY2VjMDk4YmQzYjE2YmM4NGU1ZmJkYzg0NWQgLS0+CgogICAgICAgPCEtLSBNQUlOIFBPUFVQIG5ldyBNdWx0aWZvcm1Qb3B1cCAtLT4KCQkKCQk8ZGl2IGlkPSJtdWx0aWZvcm1Qb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDozMDBweDtoZWlnaHQ6NDgwcHg7cGFkZGluZzowcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfbXVsdGlmb3JtcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6YzdjOWZlZTFlMTA3NjJkNGQzNDc1MjVjNTg3MDg2YWIgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfbXVsdGlmb3JtUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgZGVtYW5kZSBhIGJpZW4gw6l0w6kgZW52b3nDqWUhPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+Vm90cmUgZGVtYW5kZSBhIMOpdMOpIGVudm95w6llIGF2ZWMgc3VjY8Oocy4gVW4gcmVwcsOpc2VudGFudCB2b3VzIGNvbnRhY3RlcmEgc291cyBwZXUuPC9wPgogICAgICA8cCBjbGFzcz0ic2VydmljZVN1Y2Nlc3MiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48YnI+Vm90cmUgZGVtYW5kZSBhIMOpdMOpIGVudm95w6llIGF2ZWMgc3VjY8Oocy4gVW4gcmVwcsOpc2VudGFudCB2b3VzIGNvbnRhY3RlcmEgc291cyBwZXUuPC9wPgogICAgICA8IS0tIDxhIGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPiYjMjE1OzwvYT4gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWNvbnNlbnQtYnRucyAtcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSIgLXVwcGVyY2FzZSBidG4tZGVmYXVsdCAiIG9uY2xpY2s9IiQoJy5jbG9zZS1yZXZlYWwtbW9kYWw6dmlzaWJsZScpLnRyaWdnZXIoJ2NsaWNrJyk7cmV0dXJuIGZhbHNlOyI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX211bHRpZm9ybVBvcHVwQ29udGFpbmVyIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IkJlc3Qgb2ZmZXIgKE5ldykiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSIxMDk4MjY4NTAxMSI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9IjU4bFZDS0t3bU9RREVOUHktZlFvIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9InNvcmVsLXRyYWN5Zm9yZC5jYSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjEiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MXB4O2hlaWdodDoxcHg7Ij48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2VfbXVsdGlmb3JtUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjpiMTkyNWMyZDNkM2E4ZDM4ZjY0YzRmMDgyNDM4NDkxMyAtLT4KCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBDUkVESVQgU0NPUkUgUE9QVVAgLS0+CgkJCgkJPGRpdiBpZD0iY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDozMjBweDtoZWlnaHQ6NjAwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY3JlZGl0c2NvcmVwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjo5NDE0MjUwOGM3M2Q0Yjg5OGI0MWJjMGNlMGU0YmZmOSAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIiBvbmNsaWNrPSIkKCcuY2xvc2UtcmV2ZWFsLW1vZGFsOnZpc2libGUnKS50cmlnZ2VyKCdjbGljaycpO3JldHVybiBmYWxzZTsiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9IjEwOTgyNjg1MDExIj4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNsYWJlbGlkIiB2YWx1ZT0iNThsVkNLS3dtT1FERU5QeS1mUW8iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nY29uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nYWN0aW9uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nZG9tYWluaWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsQWR2IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsUGl4IiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29rQ29uSWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0ic29yZWwtdHJhY3lmb3JkLmNhIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVmZXJyZXIiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZXBhcnRtZW50IiB2YWx1ZT0iTkVXIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZF9kZXBhcnRtZW50IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNleHByZXNzIiBjbGFzcz0iaXNleHByZXNzIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcHJvbW8iIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNob21lcGFnZSIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0ZXN0bW9kZSIgY2xhc3M9InRlc3Rtb2RlIiB2YWx1ZT0iMCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkVHlwZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VJRCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbnRVUkwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0NvbmZpcm1Qb3B1cCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2VtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9sYXN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX3Bob25lX251bWJlciIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0Z1bGxXaWR0aCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlck5hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXR0b25Qb3NpdGlvbiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzTW9iaWxlTmV3VkRQIiB2YWx1ZT0iMSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxcHg7aGVpZ2h0OjFweDsiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxzcGFuIGNsYXNzPSJmYWlsIj5VbmUgZXJyZXVyIHMnZXN0IHByb2R1aXRlPC9zcGFuPgogICAgICA8cD5Ob3VzIG4nYXZvbnMgcGFzIHB1IGVudm95ZXIgdm90cmUgbWVzc2FnZS4gUydpbCB2b3VzIHBsYcOudCByYWZyYcOuY2hpciBldCBlc3NheWV6IMOgIG5vdXZlYXUuPC9wPgogICAgICA8ZGl2IGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPjxlbSBjbGFzcz0iZmEgZmEtdGltZXMtY2lyY2xlIj48L2VtPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSItcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIGNsYXNzPSIgLXVwcGVyY2FzZSBidG4tZGVmYXVsdCAiIG9uY2xpY2s9IiQoJyNlbWFpbEZhaWxNZXNzYWdlJykudHJpZ2dlcigncmV2ZWFsOmNsb3NlJyk7IiB2YWx1ZT0iRmVybWVyIj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCgoJCQkJPCEtLSBPTzo6ZDY2ZjVkOTQ4NTk3NDJjNmE1MWY4YmFkOWMwZGZhZTAgLS0+CgkJCjwhLS0gRU5EIENSRURJVCBTQ09SRSBQT1BVUCAtLT4KCjwhLS0gQ1JFRElUIFNDT1JFIENPTkZJUk0gUE9QVVAgLS0+Cgo8IS0tIEVORCBDUkVESVQgU0NPUkUgQ09ORklSTSBQT1BVUCAtLT4KCgkJCgkJPGRpdiBpZD0iY29udGFjdHBvcHVwIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjgwJTsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19jb250YWN0cG9wdXAiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6YmJjMTdlMWFmNTBlZThiMDZjMGEyMjVlY2VlOGYzYjUgLS0+CgoJCQoKICAgIDxkaXYgaWQ9ImVtYWlsU3VjY2Vzc01lc3NhZ2VfY29udGFjdHBvcHVwIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIG1lc3NhZ2UgYSBiaWVuIMOpdMOpIGVudm95w6khPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPHAgY2xhc3M9ImRlZmF1bHRTdWNjZXNzIj48YnI+TWVyY2khIFVuIG1lbWJyZSBkZSBub3RyZSDDqXF1aXBlIHZvdXMgY29udGFjdGVyYSBzb3VzIHBldS48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIiBvbmNsaWNrPSIkKCcuY2xvc2UtcmV2ZWFsLW1vZGFsOnZpc2libGUnKS50cmlnZ2VyKCdjbGljaycpO3JldHVybiBmYWxzZTsiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jb250YWN0cG9wdXAiIGNsYXNzPSJjb25maXJtX2h0bWwiIHRhcmdldD0iaWZyYW1lIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFiZWwiIGNsYXNzPSJsYWJlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbiIgY2xhc3M9ImxhYmVsc2VjdGlvbiIgdmFsdWU9Ik9jY2FzaW9uIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgY2xhc3M9InllYXJlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWRkMmNtZWRpYSIgdmFsdWU9IiI+CgkJCQkJCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2NvbmlkIiB2YWx1ZT0iMTA5ODI2ODUwMTEiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSI1OGxWQ0tLd21PUURFTlB5LWZRbyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJzb3JlbC10cmFjeWZvcmQuY2EiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIxIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NvbnRhY3Rwb3B1cCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCIgc3R5bGU9IndpZHRoOjYwJTsiPgogICAgICA8c3BhbiBjbGFzcz0iZmFpbCI+VW5lIGVycmV1ciBzJ2VzdCBwcm9kdWl0ZTwvc3Bhbj4KICAgICAgPHA+Tm91cyBuJ2F2b25zIHBhcyBwdSBlbnZveWVyIHZvdHJlIG1lc3NhZ2UuIFMnaWwgdm91cyBwbGHDrnQgcmFmcmHDrmNoaXIgZXQgZXNzYXlleiDDoCBub3V2ZWF1LjwvcD4KICAgICAgPGRpdiBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj48ZW0gY2xhc3M9ImZhIGZhLXRpbWVzLWNpcmNsZSI+PC9lbT48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIiBvbmNsaWNrPSIkKCcjZW1haWxGYWlsTWVzc2FnZScpLnRyaWdnZXIoJ3JldmVhbDpjbG9zZScpOyIgdmFsdWU9IkZlcm1lciI+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgoKCQkJCTwhLS0gT086OjNkNzg1NDI3NDEyNWVhNjliMDI0NTc1NjQ2YTY5OGRjIC0tPgoJCQoKCjwhLS0gRklOQU5DRSBNVUxUSVNURVAgUE9QVVAgbmV3IC0tPgoJCQoJCTxkaXYgaWQ9ImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDozMjBweDtoZWlnaHQ6NDk1cHg7cGFkZGluZzozMHB4IDEwcHggODBweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19maW5hbmNlbXVsdGlzdGVwcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6ZjcyZGFjZjljYzMxMGJhZmYwMTFlOGRlY2FkZGYxN2EgLS0+CgoJCQoJCQo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIEZJTkFOQ0UgTVVMVElTVEVQIElOU1RBTlQgLS0+Cgo8IS0tIEVORCBGSU5BTkNFIE1VTFRJU1RFUCBJTlNUQU5UIC0tPgoKPCEtLSBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIEVORCBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIFNFQ09ORCBDSEFOQ0UgUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBSRVRVUk4gUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBFWElUIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gQkVTVCBQUkFDVElDRSBQT1BVUCBuZXcgLS0+Cgo8IS0tIEVORCBuZXcgLS0+CiAgICAgICAJCQoJCTxkaXYgaWQ9InBheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBzdHlsZT0id2lkdGg6ODIlO21pbi1oZWlnaHQ6NzMwcHg7bWluLXdpZHRoOjM1MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX3BheW1lbnRjYWxjdWxhdG9ycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6OGIzYzNjNmY3YjFiNTlkMWYwMjFjZDk2ZjQwYmQ0NDcgLS0+CgoJCQoJCQogICAgICAgCiAgICAgIDxzY3JpcHQgZGF0YS1zY29kZXJlZj0iMjExMS1CIiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgYXN5bmM9InRydWUiPjwvc2NyaXB0Pgo8c2NyaXB0IGRhdGEtc2NvZGVyZWY9IjIxMTEtQiIgc3JjPSJodHRwczovL3NvcmVsLXRyYWN5Zm9yZC5jYS9qcy9tYXBzLmpzLnBocD8mYW1wO2xhbmc9ZnIiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgYXN5bmM9InRydWUiPjwvc2NyaXB0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBpZD0iZGVmYXVsdERlcGFydG1lbnQiPgogICAgCgk8L2Rpdj4=","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/sorel-tracyford.ca\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVPRbtswDPyhJUG7YT_QIhiGdiiQDXs0GIm2GcuiJ1HJ0q8f3cKSnSbYQxDrKJHH43FziJvDn4ThvD7ET5tyMswd4QQewZNzoF_veNS4j-jl2gUvGnhisBhuv19W20PEr18uQAuhE2YnNFxEjuDIkmTOPZCfvh28niO9aom-gKW-DY8UjQPqMXzfLfOuEq1qMMLhvLlb331e35fA9WxR72aRUGm4b-CtK40fWoitwN7lWx5PBsKlAFpAOJl2NSRv2nmxAc696vkAziQHWu8jC-ohdtcJ1hz6CW3QYyDzrCxzch7SoGKVpDOxTzsTQEz7AnaC4qletJzNkrxYPmUCFgR_Cbncpr03lXKxlUDTkG_mOERTNXA5_YBHhEI0cM-VPXvoSTORw6rOpJfu0ZRiuk3SJ-O9dU1e88zU6cy6hv104gF9y6lMpGFunM5yyEjNLBh-k21QqucJFYYomYNVshh2ffyR-n3Rs0F-YgNCXAYayMvPluJiCNnKSf2-1am9zNHB1ouzx70aYvx7VKW3_iP-ULQ7Jhx_C4O8QytpcfVmnqlT1cobrN5YRMFc0GT7bdWgYzuZ_rjwujQLfsWAPdsZkww7LKYqKPwlvrG3qloU8njD5kptINOF_4WLaWKHDkXHMvIP7GZLm0N7rGdm17fT8pJ3I5dD_Ac&jsrpl=&wswidth=0&device=mobile&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}